Looker データソースのエージェントの回答をレンダリングする

このガイドでは、Looker データソースを使用してユーザー インターフェース(UI)で Conversational Analytics API の出力をレンダリングする推奨アプローチについて説明します。

ユーザーが API をクエリすると、レスポンスには最終的な回答に加えて、中間的な推論ステップが含まれることがあります。このガイドでは、メインの回答ビュー詳細ビューを実装して、さまざまな詳細レベルで API レスポンスをレンダリングする方法について説明します。

  • メインの回答ビューには、ユーザーの質問に対する回答が直接表示されます。このビューは簡潔なプレゼンテーションを提供し、エージェントの推論に関する詳細は事前に表示されません。
  • 詳細ビューには、エージェントが最終的な回答に到達するためにたどる推論プロセス全体が表示されます。これには、メインの回答ビューのすべての要素が含まれます。

推奨される UI パターンは、デフォルトでメインの回答ビューを表示し、ユーザーが詳細ビューに切り替えられるように、ボタンや切り替えなどの UI コントロールを提供することです。推論の詳細はロジックの検証に役立ちますが、最終的な回答に関心があるユーザーにとっては、デフォルトで表示されると不要な詳細が追加される可能性があります。

メインの回答ビュー

ユーザーの質問に対する最終的な直接回答のみを表示するには、このセクションの手順に沿って操作します。このビューは最終出力に焦点を当てており、中間ステップは除外されています。

システム メッセージのレンダリングに関するガイダンス

次の表に、最終的な直接回答と見なされるシステム メッセージと、これらのメッセージをレンダリングする方法に関する推奨事項を示します。

システム メッセージ レンダリングのガイダンス
DataQuery 関連付けられた結果とともにレンダリングします。このメッセージは、対応する DataResult メッセージをレンダリングする場合にのみレンダリングします。

次の場合、DataQuery メッセージはレンダリングしないでください。
  • DataQuery メッセージの name フィールドが _sample_values で終わる(例: products_brand_sample_values)。
  • 対応する DataResult メッセージの name フィールドは _sample_values で終わります。
  • 対応する DataResult メッセージの data フィールドが空です。
クエリテキストは、オンデマンドでソースクエリを表示する切り替えの中に配置することをおすすめします。たとえば、Looker の会話分析では、「どのように計算されましたか?」というコントロールが使用されています。
DataResult 中間結果と空の結果を除く、すべての DataResult メッセージをレンダリングします。

次の場合、DataResult メッセージはレンダリングしないでください。
  • name フィールドは _sample_values で終わります。これは、特定のフィールドのサンプル値を取得する中間ステップです。
  • data フィールドが空です。これらの結果は、最終的な TextMessage レスポンスに要約されます。
ChartResult すべてのグラフをレンダリングします。API レスポンス内のすべての ChartResult メッセージをレンダリングします。
TextMessage 最終的なレスポンスのみをレンダリングします。TextType の値が FINAL_RESPONSE の場合にのみ TextMessage メッセージをレンダリングします。

例: メインの回答ビューをレンダリングする

[理由を表示] などの切り替えを実装して、ユーザーがメインの回答ビューから詳細ビューに切り替えられるようにすることができます。

[理由を表示] というラベルの付いた切り替えボタンが折りたたまれた状態で表示されています。

次の文字起こしは、メインの回答ビューを示しています。DataQuery メッセージの場合、基盤となるクエリ ロジックへのアクセスを任意で提供するため、クエリの詳細をインライン切り替えの背後に隠すことをおすすめします。トランスクリプトでは、折りたたみアイコン()で示されます。

ユーザー: 2022 年と 2023 年の Cymbal Group の総売上高を比較してください。結果をグラフにプロットします。

エージェント:

Total Sales Cymbal Group 2022 2023 のクエリ結果は次のとおりです。

Created Year Total Sales
2023 $96,627.00
2022 $93,095.50

Cymbal Group の 2022 年と 2023 年の総売上高

2022 年と 2023 年の売上を比較する棒グラフ。

Cymbal Group の 2022 年の総売上高は $93,095.50 で、2023 年は $96,627.00 でした。

次の表に、サンプル インタラクションの要素と、対応する API システム メッセージのマッピングを示します。

要素 ソース メッセージ
生成されたクエリ(デフォルトでは 切り替えの背後に JSON が隠されています) DataQuery
データ表 DataResult
棒グラフ ChartResult
最終的なテキスト回答 TextMessageFINAL_RESPONSE

詳細ビュー

このガイダンスを使用して、完全な推論プロセスをレンダリングします。このビューには、メインの回答ビューのすべての内容が含まれており、コンテンツと手順はエージェントによって生成された順序で表示されます。このビューには、エージェントが最終的な回答に到達するために実行するすべてのステップ(推論や中間データを含む)が表示されます。

推論と粒度の細かいデータ取得のレンダリング ガイダンス

次の表に、エージェントの推論と詳細な取得手順を表すシステム メッセージと、これらのメッセージをレンダリングする方法に関する推奨事項を示します。

システム メッセージ レンダリングのガイダンス
TextType の値が THOUGHTTextMessage 推論ステップをレンダリングします。これらのメッセージを表示して、エージェントの内部思考プロセスを示します。これらのメッセージは 2 つの部分で構成されています。
  • parts[0] は思考の要約です。思考の全文を簡潔に要約します。
  • parts[1] は思考の全文です
アプリケーションでステータスの更新(読み込みインジケーターや進行状況バーなど)を表示する場合は、一時的なステータス インジケーターとして思考の要約(parts[0])を表示することをおすすめします。
TextType の値が PROGRESSTextMessage PROGRESS メッセージを表示します。これらのメッセージを表示して、エージェントの動作に関する分析情報を提供します。これらは、呼び出されているツールなど、エージェントの進行状況に関する情報メッセージです。これは、エージェントの内部思考プロセス(THOUGHT)とユーザーへの最終的な回答(FINAL_RESPONSE)とは異なります。これらのメッセージには 2 つの部分が含まれています。
  • parts[0] は概要です。
  • parts[1] は進行状況の全文です。
DataQueryDataResult(名前の末尾が _sample_values 中間 DataQuery メッセージと DataResult メッセージを表示します。DataQuery メッセージと DataResult メッセージの両方で、_sample_values で終わる name フィールドは、きめ細かいデータ取得の中間ステップであり、メインの回答ビューには表示されません。エージェントが行う手順を示すため、これらの情報を完全な回答ビュー(切り替えの背後)に含めます。
data フィールドが空の DataResult 関連する DataQuery メッセージのみを表示します。空の data フィールドを含む DataResult メッセージは、どのビューにも表示しないでください。詳細表示で、空の結果につながった DataQuery メッセージを表示します(切り替えの背後)。これにより、クエリの結果がなくても、実行されたクエリを確認できます。最終的な回答の概要(タイプ FINAL_RESPONSETextMessage)で、クエリがデータを返さなかったことがすでにユーザーに通知されています。

例: 詳細ビュー全体をレンダリングする

ユーザーが [理由を表示] 切り替えをオンにすると、エージェントのステップごとの理由が UI に表示されます。

[理由を表示] というラベルの付いた切り替えボタンがオンになっている状態。

次の文字起こしは、推論ステップを含む詳細ビューを示しています。DataQuery メッセージの場合、クエリの詳細はデフォルトで表示できます。また、トランスクリプトに示すように、展開アイコン()で示されるインライン切り替えの背後に表示することもできます。

ユーザー: 2022 年と 2023 年の Cymbal Group の総売上高を比較してください。結果をグラフにプロットします。

エージェント:

スキーマについて

2022 年と 2023 年の「シンバル グループ」の合計販売額を比較するには、「注文アイテム」の Explore をクエリする必要があります。プロダクト名「Cymbal Group」と 2022 年と 2023 年でフィルタします。次に、Total Sales フィールドと Created Year フィールドを取得します。

Total Sales Cymbal Group 2022 2023 のクエリ結果は次のとおりです。

[
 {"model":"thelook","view":"order_items","fields":["order_items.total_sale_price","order_items.created_year"],
 "filters":{"order_items.created_year":"2022,2023","products.brand":"Cymbal Group"}}
]
Created Year Total Sales
2023 $96,627.00
2022 $93,095.50

販売分布をプロットする

2022 年と 2023 年の「シンバル グループ」の合計売上高を取得しました。この比較を可視化するグラフを生成し、最終的な回答を提供します。

2022 年と 2023 年の「シンバル グループ」の合計売上高を比較する棒グラフを生成します。x 軸は年、y 軸は総売上高を表す必要があります。

2022 年と 2023 年の売上を比較する棒グラフ。

Cymbal Group の 2022 年の総売上高は $93,095.50 で、2023 年は $96,627.00 でした。

次の表に、サンプル インタラクションの手順と、対応する API システム メッセージのマッピングを示します。

要素 ソース メッセージ
「スキーマの理解」(思考の要約) TextMessageTHOUGHT 型、parts[0]
「総売上高を比較するには...」(思考テキスト全文) TextMessageTHOUGHT 型、parts[1]
生成されたクエリ( 切り替えを開くと JSON が表示されます) DataQuery
データ表 DataResult
「売上分布をプロットする」(思考の要約) TextMessageTHOUGHT 型、parts[0]
「...を取得しました。」(思考テキスト全文) TextMessageTHOUGHT 型、parts[1]
棒グラフ ChartResult
最終的なテキスト回答 TextMessageFINAL_RESPONSE