注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

アプリケーションの状態

AIP Chatbot に文字列型またはオブジェクトセット型のアプリケーション変数を複数設定して、以前はパラメーターと呼ばれていたアプリケーションの状態を設定できます。アプリケーション変数を持つ AIP Chatbot を Workshop の AIP Chatbot ウィジェットに埋め込むと、変数の一覧が表示されます。その後、各アプリケーション変数を対応するデータ型の Workshop 変数にマッピングして、ほかのウィジェットに出力を表示できます。

AIP Chatbot Studio でアプリケーションの状態を設定する

AIP Chatbot のアプリケーションの状態を設定する際は、次の項目を設定します。

  • アプリケーション変数を特定する: LLM が操作するオブジェクトセット型または文字列型の変数を特定します。LLM が結果を書き込む新しい変数の場合もあれば、ユーザーの現在の選択を表す変数など、ワークフローにすでに存在する変数の場合もあります。
  • 変数に名前と説明を付ける: 各変数について、その役割を説明する説明を記述します。この説明はチャットボットのプロンプトに挿入され、特定の変数をいつ使用するかについてのコンテキストを LLM に提供します。
  • 値の表示設定を設定する: 値の表示設定によって、チャットボットが値を参照できるかどうかを選択できます。混乱を減らすため、必要な場合にのみ LLM に値の読み取りを許可することを推奨します。たとえば、オブジェクトセット変数をオントロジーコンテキストの入力として使用する場合、その変数を LLM に表示する必要はありません。オブジェクトセットの値のうち関連する内容は、各ループのシステムプロンプトに含まれます。ただし、システムプロンプトの動的な部分を含む文字列変数がある場合は、LLM がその変数の内容を読み取れるように、変数を必ず表示に設定する必要があります。
  • 変数を入力として追加する: 変数をオントロジー取得コンテキストの入力として設定すると、セマンティック検索に決定論的な入力を渡したり、オブジェクトセット全体を LLM に渡したりできます。また、関数ベースのコンテキストは複数の入力変数を受け取ることができ、関数の実行時に状態に関する情報を含められます。オブジェクトクエリツールも、オブジェクトタイプごとに初期オブジェクトセット変数を受け取り、LLM が追加のフィルターや集計を適用するための開始点として使用できます。

アプリケーションの状態の設定パネルの表示例。

キーボードでスラッシュコマンド / を使用すると、ユーザー定義のシステムプロンプト内でもアプリケーションの状態を参照できます。

プロンプト内でアプリケーション変数を参照する例。

アプリケーションの状態は、アプリケーションの状態のデバッグセクションでテストできます。各変数の値を手動で上書きでき、チャットボットが変数の値を更新すると、デバッグセクションに視覚的なフィードバックが表示されます。

アプリケーションの状態のデバッグセクションの表示例。

チャットボットでアプリケーション変数を更新する

設定したアプリケーション変数は、チャットボットのツールや、アプリケーションの状態の設定に追加した取得コンテキストを通じて変更できます。変数は、ツールやコンテキストの出力から決定論的に更新することも、アプリケーション変数を更新ツールを通じて非決定論的に更新することもできます。

自動変数更新

オブジェクトクエリツール、関数ベースのコンテキスト、またはオントロジーコンテキストが出力する値で、変数を決定論的に更新するように設定できます。コンテキストまたはツールが実行されるたびに、Chatbot Studio は最新の出力を記録し、LLM がストリーミングを終了すると、マッピングされたアプリケーション変数を出力値に更新します。LLM の混乱を避けるため、非決定論的な更新ではなく、決定論的な更新を適用することを推奨します。場合によっては、変数の値を LLM から完全に非表示にすることもできます。

オブジェクトクエリツール用に AIP Chatbot の出力変数を設定する。

決定論的なツール入力

アクションおよび関数ツールは、LLM が動的に生成する入力の代わりに、アプリケーション変数からの入力を使用するように設定できます。この機能により、事前に決めた値をツールに直接渡すことができ、一貫性の向上とトークン使用量の削減につながります。

この機能がサポートする入力のデータ型は、文字列とオブジェクトセットのみです。渡される値は、推論ループの開始時点での変数の初期値に固定されます。そのため、同じクエリ内の以前のツール呼び出しによる更新は、決定論的な入力として渡される値には反映されません。

決定論的なツール入力を設定する。

LLM で変数を更新する

LLM に更新対象の新しい変数を設定させたい場合や、現在のユーザークエリに基づいて条件付きで更新を適用させたい場合は、アプリケーション変数を更新ツールを追加します。このツールでは、LLM が更新できる変数の一覧を指定できます。

AIP Chatbot のアプリケーション変数を更新ツールを設定する。

引用としての変数

ユーザーが引用を選択したときに、オブジェクトセット変数を更新するように設定することもできます。設定したオブジェクトセット変数は、引用されたオブジェクトを含む静的オブジェクトセットに更新されます。

AIP Chatbot のオントロジーコンテキストの引用用出力変数を設定する。

Workshop での設定

AIP Chatbot にアプリケーションの状態が設定されている場合は、Workshop でチャットボットのアプリケーション変数を設定できます。詳細については、AIP Chatbot ウィジェットのドキュメントを参照してください。

チャットボットのアプリケーションの状態セクションで、AIP Chatbot のアプリケーション変数を Workshop 変数にマッピングするように設定する。