効果的な Genie エージェントをキュレーションする

Genie エージェントをキュレーションして、ビジネス ユーザーがデータの自然言語の質問をするときに正確で一貫した回答を得るようにします。 学芸員の仕事は、Genieの一般的な世界の知識と、特定のドメインや会社で使用される専門言語とのギャップを埋めるものです。 Genie が質問を解釈して正しい結果を生成できるように、適切に文書化されたデータセット、ビジネス セマンティクス用の SQL 式、SQL クエリの例、クリア テキスト命令を提供します。

Note

Genie Agents は、以前は Genie Spaces として知られていました。

Note

既存の Genie エージェントをダッシュボードにリンクした場合、ダッシュボード フィルターはチャット コンテキストに引き継がされません。 ダッシュボード フィルターは、ダッシュボードを発行するときに Databricks によって自動的に作成される Genie エージェントで期待どおりに機能します。 ダッシュボード付きの Genie エージェントを参照してください。

新しいエージェントを定義するためのベスト プラクティス

Genie は、会社に入社する新しいデータ アナリストと考えてください。 新しいチーム メンバーと同様に、Genie は明確なコンテキストを有効にする必要があります。 データが何を表しているかを理解するには、品質テーブルと列の説明、一般的な問題を解決する方法を学習する SQL クエリの例、ビジネス用語を定義する SQL 式、および他のメソッドが適用されない場合にのみテキスト命令を使用します。 メタデータと例を使用して提供する構造化されたコンテキストが多いほど、Genie は質問を解釈して正しい結果を生成できます。

Genie エージェントを構築するときは、次の基本原則に留意してください。

  • 簡潔で文書化されたデータセットを提供する: Unity カタログの品質テーブルと列の説明は、Genie の精度にとって非常に重要です。 ビューまたは メトリック ビューを使用して、列のあいまいさを解決し、テーブルの事前結合または正規化解除を行います。 適切に文書化されたシンプルなデータセットにより、Genie がデータの質問に正確に回答する能力が向上します。
  • テキスト命令よりも SQL 式と SQL の例に優先順位を付ける: SQL 式を使用して、メトリックやフィルターなどのビジネス セマンティクスを定義します。 SQL の例を使用して、一般的なあいまいなプロンプトの処理方法を Genie に教えます。 SQL の式と例がニーズに対応できない場合は、最後の手段としてのみテキスト命令を使用してください。 SQL を介した構造化された定義は、プレーン テキスト ガイダンスよりも信頼性と保守性が高くなります。
  • 明確で具体的なテキスト命令を記述する: あいまいな命令は避けてください。 たとえば、"販売に関して質問されたときに明確な質問をする" の代わりに、「ユーザーが製品名や販売チャネルを指定せずに売上指標について質問する場合は、販売分析を続行するには、製品名と販売チャネルを指定してください」と入力します。
  • 命令の競合を避ける: すべての命令の種類で一貫性を確保します。 たとえば、テキスト命令で小数点を 2 桁に丸める場合、SQL クエリの例では 2 桁に丸める必要もあります。

以下のセクションでは、エージェントの構築や精度に関する課題の解決について、詳細な推奨事項を説明します。

小さく始める

Genie エージェントのキュレーションは反復的なプロセスです。 新しいエージェントを作成するときは、最小限の手順と回答する限られた質問セットを使用して、できるだけ小さく始めます。 その後、フィードバックやモニタリングに基づいて繰り返し改善していきます。 このアプローチは、エージェントの作成と保守を効率化するのに役立ち、実際のユーザーのニーズに応じて効果的にキュレーションすることができます。

小規模な Genie エージェントを作成するには、次のガイドラインを使用します。

  • 集中: エージェントが処理する質問に回答するために必要なテーブルのみを含めます。 テーブル数は 5 つ以下を目安にします。 選択範囲が絞られているほど効果的です。 エージェントを少量のデータに絞り込むのが理想的なので、含まれるテーブルの列数を制限します。
  • 30 個のテーブル制限内で作業する: Genie Agents では、最大 30 個のテーブルまたはビューがサポートされます。 データトピックに 30 個を超えるテーブルが必要な場合は、関連するテーブルをエージェントに追加する前に、ビューまたはメトリックビューとして事前に結合してください。 メトリック ビューは、メトリック、ディメンション、集計を事前に定義するため、Genie エージェントに特に有効です。 このアプローチは、制限内に留まり、データ モデルを簡素化し、Genie の応答精度を向上させるのに役立ちます。 エージェントへの データ オブジェクト の追加の詳細については、「データ オブジェクトの管理」を参照してください。
  • 反復的に進めることを前提にする: エージェントの設定は最小限の構成から始め、必要不可欠なテーブルと基本的な指示に重点を置きます。 最初は完璧を目指すのではなく、時間の経過と同時にエージェントを調整する際に、より詳細なガイダンスと例を追加します。
  • 適切に注釈が付けられたテーブルを活用する: Genie は Unity Catalog の列名と説明を使用して応答を生成します。 わかりやすい列名と説明は、高品質な応答の生成に役立ちます。 列の説明には、正確なコンテキスト情報を記載してください。 あいまいな情報や不要な詳細は避けましょう。 AI によって生成された説明の正確性と明確性を調べ、手動で提供する内容に合わせる場合にのみ使用します。

ドメイン エキスパートにエージェントを定義してもらう

効果的なエージェント作成者は、そこから収集できるデータと分析情報を理解する必要があります。 SQL に習熟しているデータ アナリストは、通常、エージェントをキュレーションするための知識とスキルを持っています。

エージェントの目的を定義する

エージェントの特定の対象ユーザーと目的を特定すると、使用するデータ、手順、テストの質問を決定するのに役立ちます。 エージェントは、さまざまなドメインにわたる一般的な質問ではなく、特定のトピックと対象ユーザーに関する質問に回答する必要があります。 エージェントにデータを追加する前にテーブルを事前に結合し、不要な列を削除することで、データセットを簡略化できます。 エージェントにデータを追加するときは、エージェントの定義された目的に厳密に焦点を当てておく必要があります。 混乱を招く、または重要ではない可能性がある列を非表示にします。 関連する列を非表示または表示するを参照してください。

メタデータとシノニムを追加する

Genie エージェントのデータに列シノニムとカスタム説明を追加できます。 このメタデータのスコープは Genie エージェントであり、Unity カタログに格納されているメタデータは上書きされません。 品質列の説明とシノニムは、Genie が列をよりよく理解し、関連する質問に対して列を選択し、より正確な SQL を記述するのに役立ちます。 列メタデータの編集を参照してください。

Genie プロンプトの照合を使用する

プロンプト照合を使用すると、Genie はユーザーの質問に最も関連する値を照合し、ユーザー プロンプトでスペルの問題を修正できます。 これにより、Genie の精度が向上します。これにより、ユーザーのプロンプトが正しい列と値に一致しやすくなります。 Genie は、エージェントにテーブルを追加するときに、プロンプトマッチングを自動的に提供します。 プロンプト照合が有効になっている列を管理できます。 データ オブジェクトの管理Genie エージェントの品質の調整に関するページを参照してください。

重点的な例と手順を提供する

Genie Agents は、限られた集中した一連の命令で最高のパフォーマンスを発揮します。 Databricks では、SQL クエリの例を利用して、エージェントに指示を提供することをお勧めします。 SQL クエリの例を使用すると、Genie はユーザー プロンプトと検証済み SQL クエリを照合し、例から学習して関連する質問に回答できます。 SQL クエリと関数の例を追加するを参照してください。

Genie エージェントでグローバルに適用する必要があるコンテキストの場合、簡潔で整理された一連のプレーンテキスト命令も、関連性の維持と応答品質の向上に役立ちます。 命令が多すぎると、特に長い会話では、Genie が最も重要なガイダンスに優先順位を付けるのに苦労する可能性があるため、有効性が低下する可能性があります。 詳細については、「 手順を指定する」を参照してください。

適切な命令の種類を選択する

次のガイドラインを使用して、SQL 式、SQL クエリの例、およびテキスト命令を決定します。

  • 一般的なビジネス用語に SQL 式を使用する: 標準的なビジネス概念を表す頻繁に使用されるメトリック、フィルター、またはディメンションを定義する場合は、ナレッジ ストアで SQL 式を使用します。 SQL 式は、Genie がビジネス ロジックを理解するのに役立つ、効率的で再利用可能な定義です。 たとえば、SQL 式を使用して、 revenueactive_customersgross_margin、または recent_salesを定義します。 「SQL 式の定義」を参照してください。
  • 複雑な質問には SQL クエリの例を使用します。解釈が困難な質問、マルチパート質問、または複雑な質問に対処する場合は、完全な SQL クエリの例を示します。 これらの例は、複雑なクエリ パターンとマルチステップ ロジックを処理する方法を Genie に示しています。 たとえば、"チームのパフォーマンスの内訳" や "最近参加したお客様の場合、どの製品が最善を尽くしているか" などのプロンプトに対して SQL クエリを作成できます。 SQL クエリと関数の例を追加するを参照してください。
  • テキスト命令は、最後の手段としてのみ使用します。テキスト命令は、SQL 式と例が必要に対処できない場合にのみ、慎重に使用する必要があります。 "時間範囲を指定せずにユーザーが顧客のパフォーマンスについて質問する場合は、期間を明確にするように求める" や "常にパーセンテージを小数点以下 2 桁に丸める" など、自然言語の説明を必要とするガイダンスには、テキスト命令を使用します。テキスト命令を使用して、SQL で表現できるメトリック、フィルター、またはクエリ パターンを定義することは避けてください。

Genie に明確化の質問を求める

Genie に特定のシナリオで明確化の質問を求めるメッセージを表示するには、説明を求めるタイミングとフォローアップ方法について明示的に説明してください。 トリガー条件と予想される明確化動作の両方を定義する明確で具体的な命令を使用します。

たとえば、次の種類の命令をエージェントに追加します。

ユーザーが販売実績の内訳について質問しても、時間範囲、販売チャネル、またはプロンプトにどの KPI が含まれていない場合は、まず明確な質問をして必要な情報を収集する必要があります。 例: "探している時間範囲と販売チャネルを指定してください"。

次のコンポーネントを使用して、説明手順を構成します。

  • トリガー条件: 説明が必要なトピックまたはシナリオを定義します (例: "ユーザーが X トピックについて質問したとき....")
  • 不足している詳細: 存在する必要がある情報を指定します (例: ...ただし、Y の詳細は含めないでください。...")
  • 必須アクション: Genie が明確化を要求する必要があることを示します (例: ...最初に明確な質問をする必要があります。..."
  • 説明の例: Genie が質問する必要がある具体的な質問を入力します (例: "Please specify...")

一般的な手順の最後に明確な質問の指示を追加して、あいまいな質問に答えるときに Genie がこの動作に優先順位を付けるのに役立ちます。

概要をカスタマイズする

Genie では、自然言語の概要とクエリ結果が提供され、ユーザーがデータを理解するのに役立ちます。 Genie がこれらの概要を生成する方法をカスタマイズするには、エージェントのテキスト命令に特定の手順を追加します。 概要のカスタマイズ手順は、エージェント内のすべての応答に適用されます。

概要の動作をカスタマイズするには、テキストの指示の末尾に「概要を指定するときに従う必要がある手順」という見出しを含む専用セクションを追加します。

概要のカスタマイズ手順の例:

概要を指定するときに従う必要がある手順

  • サマリーを指定する場合は常にフランス語で応答する
  • 分析で使用するテーブルと列名を引用する
  • 箇条書きを使用してマルチパートの概要を構成する
  • 結果に含まれる日付範囲を含める

Note

  • 概要の生成にはテキスト命令のみが影響します。 SQL の例と SQL 式は、Genie による概要の作成方法には影響しません。
  • 概要の長さと詳細レベルの制御など、一部のカスタマイズは使用できません。

テストと調整

あなたは自分のエージェントの最初のユーザーになるべきです。 新しいエージェントを作成したら、質問を開始します。 質問に対して生成される SQL を注意深く確認してください。 Genie がデータ、質問、または業務用語を誤解している場合は、生成された SQL を編集するか、その他の具体的な指示を提供して介入できます。 信頼性の高い応答が得られるまで、テストと編集を続けます。

質問を確認したら、それをベンチマークの質問として追加できます。これを使用して、エージェントの全体的な精度を体系的にテストおよびスコア付けできます。 バリエーションやさまざまな質問のフレージングを使用して、Genie の回答をテストできます。 ベンチマークを参照してください。

誤った応答を修正する方法については、「 Genie エージェントのトラブルシューティング」を参照してください。

宣言型オートメーション バンドルを使用してエージェントをデプロイおよびバージョン管理する

宣言型オートメーション バンドルを使用して、Genie エージェントをコードとして定義、デプロイ、およびバージョン管理します。 エージェント構成をバンドル リポジトリに格納すると、再現可能なデプロイ、変更履歴、環境 (開発、ステージング、運用) 間でエージェントを昇格できます。 宣言型オートメーション バンドルのリソースを参照してください。

ユーザー テストを実施する

テストを通じて応答品質を確認した後、Genie エージェントを試すビジネス ユーザーを募集します。 スムーズなユーザー体験を提供し、継続的な改善のためのフィードバックを収集するには、以下のガイドラインを使用してください。

  • 自分たちの役割は、エージェントの改善を支援することだという認識を持たせます。
  • エージェントが回答するように設計されている特定のトピックと質問にテストを集中するように依頼します。
  • 誤った応答を受け取った場合は、チャットで追加の指示や補足を行い、回答の精度を高めるよう促します。 正しい応答が得られた場合は、今後のやり取りで同様の誤りの発生を最小限に抑えるため、最終的なクエリに賛成票を投じてもらう必要があります。
  • 組み込みのフィードバック メカニズムを使用して、応答に賛成票または反対票を投じるようにユーザーに伝えます。
  • 追加のフィードバックと未解決の質問をエージェントの作成者と直接共有するようにユーザーを招待します。 作成者と編集者は、フィードバックをもとに指示、例、信頼できるアセットを改善できます。

エージェントのテストとフィードバックの提供に関するガイドラインを含むトレーニング資料または文書を提供することを検討してください。 ビジネス ユーザーに 、Genie エージェントを使用してビジネス データを調べ 、新しい Genie エージェントの使用を開始できるようにします。

ビジネス ユーザーがエージェントをテストすると、少なくとも CAN MANAGE アクセス許可を持つユーザーは、[ 監視 ] タブで質問を確認できます。Genie が質問とデータを正しく解釈して正確な回答を提供できるように、引き続きコンテキストを追加します。 Genie エージェントの監視の詳細については、エージェントの監視を参照してください。 また、監査ログを使用して Genie エージェントのフィードバックを監視し、要求を確認することもできます。 監査ログとアラートを使用した Genie エージェントの使用状況の監視を参照してください。

Note

ビジネス ユーザーは、エージェントにアクセスするために、元のワークスペースのメンバーである必要があります。 エージェントと対話するための適切な アクセス許可 を提供する方法については、「必要なアクセス許可」を参照してください。

Genie エージェントに関する一般的な問題のトラブルシューティングについては、「 Genie エージェントのトラブルシューティング」を参照してください。