メインコンテンツまでスキップ

DOCS

ヘルプとコミュニティ

よくある質問、関連資料、クォータ、リリースノート、用語集。

会話の文脈を取得する方法

Asgard で AI チャットボットや対話型のフローを作るとき、メッセージの文脈を理解することが応答の質を左右します。過去のやり取りをもとに大規模言語モデル(LLM)に回答させる場合でも、記憶を持つ対話フローを作る場合でも、会話履歴にアクセスできることは欠かせません。

Asgard には利用者の会話内容を取得する方法が 2 つあります。prevMessage と history(start, end) です。どちらも会話を読み取れますが、使いどころと柔軟さが異なります。

このページでは prevMessage と history(start, end) の構文を追いながら、会話履歴を取得することがなぜ重要なのかを説明し、ワークフローの中でどう効いてくるかを例で示します。

  1. prevMessage​

    Expression で Echo ボットを作るチュートリアルでは、式として prevMessage を使っています。ボットがひとつ前のメッセージを読み取り、それを Echo Message の出力内容にするという意味です。

    • 用途: 「ひとつ前のメッセージ」の内容を取得します
    • 構文が単純: 使いやすく、単一ターンの会話に向いています
    • 構文の例:
    prevMessage
    • 向いている場面:
      • Echo bot がひとつ前のメッセージを返す
      • 単一のコマンドや 1 回のやり取りへの素早い応答
  2. history(start, end)​

    AI チャットボットを作るチュートリアルでは、Prompt(プロンプト) の Template モードで history(0, -1) を使い、そのフローにおける過去のメッセージを最初のものから最新のものまで取得して、後続の処理ノードに会話の文脈をまとめて渡しています。AI に返信を生成させる、会話の筋を一貫させる、利用者の入力を記録して後で分析する、といった用途に使えます。

    • 用途: 会話履歴の全体、または特定の範囲を取得します
    • 構文が柔軟: 開始位置と終了位置を指定できます。複数ターンの会話や文脈を踏まえた推論に向いています
    • 構文の例:
    // 履歴の全体を取得
    history(0, -1)

    // 直近 3 件を取得
    history(-3, -1)

    // ひとつ前の発言を参照し、その感情を判定する
    history(-1, -1)
    引数内容
    0最初のメッセージ(最も古いもの)から開始します
    -1最後のメッセージ(最新のもの)までを指します

    つまり history(0, -1) は、現在の会話にあるすべての履歴メッセージ、最初から最後までの完全な記録を取得するという意味になります。

    • 向いている場面:
      • LLM チャットボットが文脈に基づいて回答を生成する場合
      • 複数ターンのやり取り、記憶が必要なタスク、要約、分析など
  3. 使いどころの例​

    • LLM のプロンプトを書くとき、history(0, -1) で会話全体をモデルに渡すと、AI は文脈を踏まえて応答できます。
    • システムプロンプトと組み合わせると次の形になります。
    You are a helpful assistant. Here is the conversation so far:
    {{ history(0, -1) }}
    • 直近の 1 件だけでよければ prevMessage または history(-1) を使います
    Bot: hello!User: 1 年は何か月ですかBot: 1 年は 12…User: クラシック…Bot: 日本
    01234
    -5-4-3-2-1

始める準備はできましたか?

Asgard をチームでどう活用できるか、お気軽にご相談ください。

お問い合わせ