ユースケース開発Chatbot Studioリトリーバルコンテキスト引用

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

引用

ドキュメントコンテキストまたはオントロジーコンテキストを持つ AIP Chatbot は、選択するとソース資料にリンクする引用を出力します。これらの引用は各メッセージの下部にあるソースドロップダウンメニューにも表示されるため、ユーザーは各レスポンスで使用および参照された具体的なコンテキストを明確に把握できます。

引用を出力する、オントロジーコンテキストを持つチャットボットのスクリーンショット。

関数ベースのコンテキストやツールなど、ほかの種類のコンテキストでは、デフォルトで引用は提供されません。ただし、ユーザーは引用を含めるようチャットボットに指示できます。LLM が正しい引用形式で応答すると、会話のユーザーインターフェースに引用が表示されます。形式の完全な一覧については、以下の引用形式を参照してください。また、チャットボットでこれらを使用する方法の例については、引用用のカスタムプロンプトを参照してください。

引用形式

AIP Chatbot のインターフェースは、現在、次の引用形式をサポートしています。

  • オントロジーオブジェクトの引用は、以下の2つの形式のいずれかで返すことができます。引用バブルを選択すると、そのオブジェクトの Object Explorer の表示にリンクします。

    Copied!
    1 <citation><key>ri.phonograph2-objects.main.object....</key></citation>

    <key></key> タグでオブジェクトの RID を囲みます。

    Copied!
    1 <citation><objectTypeId>...</objectTypeId><primaryKey>...</primaryKey></citation>

    <objectTypeId></objectTypeId> タグで、Ontology Manager で確認できるオブジェクトタイプIDを囲み、<primaryKey></primaryKey> タグで、そのオブジェクトの主キーの値を囲みます。

  • ドキュメント (PDF) の引用は、次の形式で返す必要があります。

    Copied!
    1 <citation><mediaSetKey>ri.mio.main.media-set...</mediaSetKey><mediaItemKey>ri.mio.main.media-item...</mediaItemKey></citation>

    引用バブルを選択すると、ドキュメントの最初のページを表示するダイアログが開きます。引用でドキュメントのページを指定する場合は、次のように page タグを指定できます。

    Copied!
    1 <citation><mediaSetKey>ri.mio.main.media-set...</mediaSetKey><mediaItemKey>ri.mio.main.media-item...</mediaItemKey><page>12</page></citation>

    これにより、ドキュメントダイアログにそのページが表示されます。

  • 外部 URL の引用は、次の形式で返す必要があります。

    Copied!
    1 <citation><name>My Website</name><href>www.mywebsite.com</href></citation>

    引用バブルには、たとえば My website のように指定された名前が表示され、それを選択すると、たとえば www.mywebsite.com のように指定された URL にリンクします。

オントロジーコンテキストの設定パネルにある引用タブに移動すると、上記の3つの形式のいずれかでオブジェクトを引用するように、オントロジーコンテキストを持つチャットボットを設定できます。

引用の設定

引用の設定では、引用を全体で有効または無効にし、デフォルトのクリック動作をオーバーライドできます。

引用の設定で、引用が全体で無効になっているスクリーンショット。

オントロジーとドキュメントの引用をクリックしたときのデフォルトの動作は、対応するドキュメントまたはオントロジーオブジェクトを開くことです。デフォルトのオントロジーコンテキストは、オブジェクトタイプごとに細かくオーバーライドできます。次の方法を使用できます。

引用による変数の更新

オントロジーオブジェクトの引用を持つチャットボットは、オブジェクトの引用が選択されたときにアプリケーション変数を更新するように設定することもできます。これにより、AIP Chatbot の利用者は、引用されたオブジェクトに関する追加情報を会話パネルの外に表示できます。

この一般的な例として、Workshop の AIP Chatbot ウィジェットがあります。アプリケーションの状態を使用して、選択時にポップアップオーバーレイを表示するように設定できます。設定方法のウォークスルーについては、以下の Workshop オーバーレイと統合するセクションを参照してください。

関数ベースのコンテキストを使用するチャットボットでは、カスタムプロンプトのいずれかを使用して、オブジェクトの引用を返すようにチャットボットに指示できます。

関数が複数のオブジェクトタイプを扱う場合、オブジェクトタイプ A に対応する引用やオブジェクトタイプ B に対応する引用などが返されることがあります。このようなケースに対応するために、引用の設定で関数の引用変数を複数作成できます。引用が選択されると、オブジェクトタイプに一致する引用変数には、参照されたオブジェクトを含むオブジェクトセットが設定され、それ以外のすべての引用変数には空のオブジェクトセットが設定されます。この方法により、常に最も関連性の高い引用変数だけに値が設定されます。

変数の更新をサポートするように2個のオブジェクトタイプがオーバーライドされた引用の設定のスクリーンショット。

Workshop オーバーレイと統合する

AIP Chatbot で変数の更新を設定したら、それらを Workshop の AIP Chatbot ウィジェットに接続できます。AIP Chatbot ウィジェットの詳細については、アプリケーションの状態のセクションを参照してください。

  1. Workshop で、チャットボットに設定した引用変数ごとに空のオブジェクトセット変数を作成します。これらの変数には、AIP Chatbot ウィジェットの引用が選択されるたびに値が設定されます。
  2. Workshop モジュールにオーバーレイを作成します。
  3. オーバーレイを変数ベースの表示設定に設定し、ステップ1で設定した Workshop 変数が空かどうかを確認するブール変数を作成します。引用変数が複数ある場合は、複数のオーバーレイを作成することも、複数のブール変数の和集合によって表示設定が決まる単一のオーバーレイを作成することもできます。
Workshop オーバーレイの設定パネルのスクリーンショット。

引用の選択時に表示されるポップアップオーバーレイは、多くの場合、AIP Chatbot ウィジェットのユーザーにとって最も優れたユーザーエクスペリエンスを提供します。ただし、Workshop のドキュメントに移動して、ほかのオプションを探索することもできます。

引用の選択時に表示されるポップアップオーバーレイが設定された AIP Chatbot ウィジェットのスクリーンショット。

引用用のカスタムプロンプト

AIP Chatbot のユーザーインターフェースに引用が表示されるようにするには、基盤となる LLM のレスポンスに引用が含まれている必要があります。そのためには、上記の形式のいずれかを使用するように LLM に指示する必要があります。このプロンプトは、ドキュメントコンテキストとオントロジーコンテキストを持つチャットボットには自動的に提供されます。ただし、それ以外のチャットボットには、具体的なユースケースに合わせたカスタムプロンプトが必要です。

チャットボットにカスタムプロンプトを指定するには、いくつかの方法があります。1つ目は、チャットボットの LLM 設定を使用して指示を指定する方法です。以下のチャットボットでは、運転手のオブジェクトクエリツールを使用するたびに引用付きで応答するように LLM に指示する例を確認できます。

オブジェクトクエリツールから引用を出力するために使用するカスタムプロンプトのスクリーンショット。

以下は、上の画像の例で、オブジェクトクエリツールを持つチャットボットからオブジェクトの引用を出力するために使用されているプロンプトです。

Copied!
1 2 3 4 5 6 7 8 9 Whenever the user asks a question about support tickets, use the object query tool to answer it. After using the object query tool, respond to the user query with inline citations that link to the objects returned by the object query tool. WHENEVER you mention a support ticket, output a citation in the format below: "<citation><objectTypeId>titan-technologies-support-ticket</objectTypeId><primaryKey>...</primaryKey></citation>" For example, if I wanted to cite the ticket titled Office Dress Code, I would get the primary key of the ticket, which is TICKET-015 (since the Ticket Id is TICKET-015), and then output the citation like so: "The ticket about the office dress code says ... <citation><objectTypeId>titan-technologies-support-ticket</objectTypeId><primaryKey>TICKET-015</primaryKey></citation>.""

もう1つの方法は、関数ベースのコンテキストを使用することです。コンテキスト取得関数の出力は、LLM のシステムプロンプトに直接貼り付けられるためです。以下の例では、コンテキスト取得関数がプロンプトを生成し、レスポンスに含める関連オブジェクトと、引用を提供するために使用する形式を LLM に渡します。

関数ベースのコンテキストから引用を出力するために使用するカスタムプロンプトのスクリーンショット

以下は、上の画像の例で、関数ベースのコンテキストを持つチャットボットからオブジェクトの引用を出力するために使用されているプロンプトです。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 Incorporate a citation from the context source in your answer whenever the context content is used. For example, if the message asks "What is X?" A valid response would be "X is Y, according to <citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.abc-123</key></citation>, ..." Another example: if the message asks "Why is X?" A valid response would be: "X is Y because ... For more details or further clarification, please refer to the following sources: <citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.def-456</key></citation> <citation><name>Source 3</name><key>ri.phonograph2-objects.main.object.abc-123</key></citation>" Remember, always include a citation in your answer by using the provided context sources. Example context sources: <citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.0c94f9b2-e0c5-4e90-a054-96e570cd11dd</key></citation> Consistency is key when teaching commands to your dog. <citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.0c94f9b2-e0c5-4e90-a054-96e570cd11dd</key></citation> <citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.8c6adc92-cfc6-4b76-b729-2744e369dac3</key></citation> Socialization is important for a dog's development and behavior. <citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.8c6adc92-cfc6-4b76-b729-2744e369dac3</key></citation> Example response with citation: "Maintaining consistency is essential when training your dog to follow commands <citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.0c94f9b2-e0c5-4e90-a054-96e570cd11dd</key></citation>. Socializing your dog is crucial for its behavioral development <citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.8c6adc92-cfc6-4b76-b729-2744e369dac3</key></citation>." [Context Sources Sorted by Relevancy] <citation><key>ri.phonograph2-objects.main.object.60599f54-c745-412b-98a0-2c7f5f0fa9bf</key></citation> .... The Titan Technologies dress code is business casual .... <citation><key>ri.phonograph2-objects.main.object.60599f54-c745-412b-98a0-2c7f5f0fa9bf</key></citation> <citation><key>ri.phonograph2-objects.main.object.35910c26-8a87-4eb5-8243-52afb88bba11</key></citation> .... Titan Technologies Employee Handbook .... <citation><key>ri.phonograph2-objects.main.object.35910c26-8a87-4eb5-8243-52afb88bba11</key></citation> <citation><key>ri.phonograph2-objects.main.object.3f21b8a6-536b-4374-aaf5-cae641ca836c</key></citation> .... At Titan Technologies, flexible work hours may be possible ..... <citation><key>ri.phonograph2-objects.main.object.3f21b8a6-536b-4374-aaf5-cae641ca836c</key></citation> <citation><key>ri.phonograph2-objects.main.object.10b2d64a-4043-438d-894a-80c001ff26e2</key></citation> .... The dress code for the office is business casual .... <citation><key>ri.phonograph2-objects.main.object.10b2d64a-4043-438d-894a-80c001ff26e2</key></citation> [/Context Sources Sorted by Relevancy] REMINDER: ALWAYS include citations in the correct format <citation><name>sourceName</name><key>sourceKey</key></citation> in all responses. ALWAYS include the source name and the source key in all citations. Valid examples are <citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.0c94f9b2-e0c5-4e90-a054-96e570cd11dd</key></citation>, <citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.8c6adc92-cfc6-4b76-b729-2744e369dac3</key></citation>.