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

Genie Agentの品質を調整する

SQLクエリーの例、Unity Catalog関数、プレーンテキストの指示、およびナレッジストアのスニペット(テーブルの説明、JOINリレーションシップ、ビジネスセマンティクス用SQL式)を追加することで、Genie Agentの精度と信頼性を向上させます。

注記

Genieエージェントは以前、Genie Spaceとして知られていました。

SQLの例と手順を追加

正確な応答を生成するために、サンプルSQLクエリ、 Unity Catalog関数、プレーンテキストの指示を追加できます。 [構成] > [手順] をクリックします。クエリとUnity Catalog関数を管理するには、 SQLクエリ タブを使用します。 プレーンテキストの指示を追加するには、 テキスト タブを使用します。

各Genie Agentには2つの異なる制限があります:

  • 「指示(エージェントあたり100個)」:各サンプルSQLクエリー、各SQL関数、および 一般的な指示のテキストブロック全体がそれぞれ1つの指示としてカウントされます。
  • ナレッジストアスニペット (エージェントあたり200) :テーブルの説明、結合リレーションシップ、およびSQL式 (メジャー、フィルター、ディメンション) はこの制限を共有します。列の表示結合リレーションシップの定義、およびSQL式の定義を参照してください。

Genie Agentは、明確かつ正確なガイダンスに基づいて、一貫性のある予測可能な応答を提供することを目指しています。Genieは非決定的な方法で動作するため、望ましくない応答のリスクを最小限に抑えるために、矛盾した情報や曖昧な情報がないガイダンスを作成することが重要です。エージェントを設定する際、重要なタスクは不整合を確認して解決することです。これは、信頼性の高い結果の達成に役立ちます。

SQL クエリーと関数の例を追加

SQL tab を使用して、以下を追加します。

  • クエリーの例 (推奨): 例のSQLクエリーは、Genieが一般的なユーザーの質問に回答するために正しいSQLを生成するのに役立ちます。クエリーは、静的またはパラメータ化できます。各例のSQLクエリーについて、SQLを提供し、ユーザーの質問の最も一般的なフレーズをタイトルとして使用してください。これにより、Genieがプロンプトを例に一致させる能力が向上します。Genieは、例のクエリーを直接使用することも、そこから学習して類似の質問に対応することもできます。エージェントで CAN EDIT 権限を持つユーザーは、レスポンスの生成に使用されたクエリーを表示できるため、トラブルシューティングや改善に役立ちます。

  • SQL 関数 :静的クエリまたはパラメータ化された SQL クエリで回答できない質問については、カスタム関数を Unity Catalogに登録することができます。関数はチーム間で共有でき、Genieが特定の質問に答えるために使用できます。Genie AgentでのSQL関数の使用方法の詳細については、信頼できるアセットを参照してください。

Genieがサンプルクエリーを使用する方法

クエリーの例は、利用可能なデータを使用して質問に回答する方法をGenieに示します。テキストフィールドにサンプルの質問を入力し、その質問に回答するSQLクエリーを入力します。ユーザーが自然に尋ねるような方法で、サンプルの質問を記述します。Genieが一致する質問を受け取ると、クエリーの例を直接使用して回答を提供できます。Genieが類似の質問を受け取ると、応答で提供されるSQLを学習し、構築するために、クエリーの例からの手掛かりを使用します。次の例に示すように、組織やデータに固有のロジックを強調するサンプルを提供することに重点を置きます。

SQL
  -- Return our current total open pipeline by region.
-- Opportunities are only considered pipelines if they are tagged as such.
SELECT
a.region__c AS `Region`,
sum(o.amount) AS `Open Pipeline`
FROM
sales.crm.opportunity o
JOIN sales.crm.accounts a ON o.accountid = a.id
WHERE
o.forecastcategory = 'Pipeline' AND
o.stagename NOT ILIKE '%closed%'
GROUP BY ALL;

クエリーパラメーターを追加

パラメーター化されたサンプルクエリーを使用すると、エージェントユーザーはランタイムにクエリーに挿入される値を指定できます。パラメーターを使用すると、Genieはユーザーの質問から特定の入力を受け取り、サンプルクエリーの構造を再利用して検証済みの回答を提供できます。

クエリにパラメーターを追加するには:

  1. パラメーターを挿入したい場所にカーソルを置きます。

  2. パラメーターを追加 をクリックします。

    これにより、default名parameterの新しいパラメーターが作成されます。名前を変更するには、クエリーエディターで置き換えます。エディターに直接、コロンの後にパラメーター名(:parameter_name)を入力してパラメーターを追加することもできます。

パラメーターを編集するには、パラメーター名の横にある 歯車アイコン。 をクリックします。 パラメーターの詳細 ダイアログには、以下のオプションが含まれます:

  • キーワード :クエリー内のパラメーターを表すキーワード。クエリーテキストを直接編集することによってのみ変更できます。
  • データ型 : サポートされている型には、 文字列日付日付と時刻小数整数 があります。The default is 文字列 です。
  • コメント :パラメーターの可能な値または制限についての説明です。これを使用して、Genieが正しい値を選択するのに役立つコンテキストを提供します。
注記

入力値が選択したタイプと一致しない場合、Genieはそれを誤ったタイプとして扱い、不正確な結果につながる可能性があります。

チャットモードでは、パラメーター化されたクエリーの正確なテキストが応答で使用された場合、Genieは検証済みの回答を提供します。信頼できるアセットを参照してください。

信頼できるアセット

信頼できるアセットとは、ユーザーから予想される質問に対して検証済みの回答を提供するSQLクエリーとSQL関数の例です。Genieが信頼できるアセットを使用して質問に回答する場合、検証済みの回答を提供するため、Genie Agentのユーザーは結果の正確性に関してさらなる信頼感を得られます。

信頼できるアセットには、以下が含まれます。

  • パラメータ化されたSQLクエリーの例 :チャットモードで、パラメータ化されたクエリーの正確なテキストを使用して応答を生成すると、Genieは検証済みの回答を提供します。エージェントユーザーはパラメーター値を編集し、クエリーを再実行できます。「クエリー パラメーターの追加」を参照してください。
  • SQL functions :Unity Catalogに登録されているSQL関数をGenie Agentに追加できます。GenieはSQL関数をどのように使用しますか?を参照してください。

Genie Agent上で少なくともCAN EDIT権限を持つユーザーは、信頼できるアセットを追加または削除できます。Agentユーザーは、信頼できるアセットとして使用されるあらゆるSQL関数に対してEXECUTEの権限を持つ必要があります。

利用に関するガイダンスを提供

Genieに、例のクエリーが特に適切であるか説明するために、追加のコンテキストを提供できます。

使用ガイドのテキスト入力。

使用ガイダンスを追加するには、

  1. 設定 > 手順 > SQL クエリー をクリックして、例のクエリーのリストにアクセスします。
  2. サンプル クエリーをクリックします。
  3. 画面下部にある「**Usage guidance**」をクリックします。
  4. このサンプルクエリーの使用方法と時期に関する詳細を入力してください。

Genie は SQL 関数をどのように使用しますか?

SQL 関数は、静的クエリやパラメータ化されたクエリではキャプチャできない複雑なロジックが質問に含まれている場合に便利です。これらは Unity Catalog に格納され、ユーザーが指定したパラメーターを使用して Genie 呼び出すことができます。 Genie は、関数で使用される SQL を表示または変更できないため、このアプローチは、表示または変更すべきでないロジックに適しています。Unity Catalog に関数を登録する方法については、SQL テーブル関数を作成する および Unity Catalog でのユーザー定義関数 (UDF)を参照してください。

指示を提供する

テキスト tabをクリックし、Genieがビジネスに関する特定の質問にどのように回答すべきかを理解するのに役立つプレーンテキストの指示を作成します。指示を1つの包括的なメモとして書式設定するか、整理するためにトピックごとに分類できます。

指示は、Genieの応答をガイドし、特定のドメインにおける固有の専門用語、ロジック、および概念を処理できるようにします。一般的なテキスト指示は、すべてのプロンプトに適用されます。命令がプロンプトのサブセットにのみ関連する場合、それはクエリーまたは関数の例として含めるか、関連するテーブルにコメントまたはメタデータとしてドキュメント化する必要があります。テキスト指示は、グローバルに適用されるべきであり、他の形式に当てはまらないコンテキストの を対象としています。

以下の例には、一般的な指示に含めることができる情報が含まれています:

- **Company-specific business information**:
- Fiscal year starts in February, for example fiscal year 26 or FY26 is February 1, 2026 through January 31, 2027
- **Formatting**:
- Always respond in Spanish
- If no other specification exists, round all decimals to two places
- Omit commas in results for any column including "Id" or "id" or "\_id"

ナレッジストアの構築

Genieナレッジストアを使用すると、ローカライズされたメタデータ、プロンプトマッチング、および構造化されたSQL指示を通じてエージェントをキュレーションし、強化できます。これらの機能は、Genieがデータを理解し、より正確で関連性の高い応答を生成するのに役立ちます。

ナレッジストアとは何ですか?

ナレッジストアは、Genie のデータに対する理解を深め、応答の精度を向上させる厳選されたセマンティック定義のコレクションです。

ナレッジストアは以下で構成されます:

  • エージェントレベルのメタデータカスタマイズ :テーブル、カラム、ビジネス用語、および同義語のエージェント固有の説明。
  • Agentレベルのデータカスタマイズ : 基になるUnity Catalogテーブルを変更せずに、シンプルで焦点を絞ったデータセットを作成します。
  • プロンプトのマッチング :Genieがユーザーの質問に最も関連性の高い値を一致させ、ユーザープロンプトのスペルミスを修正するのに役立つ例。これには、フォーマットアシスタンスおよびエンティティマッチングが含まれます。
  • 結合関係JOINステートメントを正確にするための定義済みテーブル関係。
  • SQL式 :ビジネスロジックをキャプチャするメジャー、フィルター、ディメンションの構造化された定義。
注記

各Genie Agentは、最大200個のナレッジストアスニペットをサポートします。テーブルの説明、結合関係、およびSQL式(メジャー、フィルター、ディメンション)は、この制限にカウントされます。テキスト指示、SQLクエリーの例、SQL関数、列の説明、およびプロンプトマッチング設定は、この制限にはカウントされません。

すべてのナレッジストア構成はGenie Agentにスコープされ、Unity Catalogメタデータや他のDatabricksアセットには影響しません。

ナレッジストアのメタデータの管理

ローカルのテーブルと列の説明を提供し、一般的なビジネス用語に合わせた列の同義語を追加することで、Agent内のデータについてGenieに教えます。不要な列や重複する列を非表示にすることでデータセットを簡素化し、Genieが集中できるようにします。

これらのプラクティスは、基になるテーブルに対する直接の権限を持たないユーザーのユーザビリティを向上させ、また、命令バージョンを更新する際の迅速なイテレーションもサポートします。

エージェントレベルのメタデータにアクセスするには、Genie Agentで 設定 > データ をクリックします。次に、テーブル名をクリックして、そのメタデータと列を表示します。

列を表示

テーブル名をクリックすると、列名と詳細の概要が表示されます。次の例は、accountsという名前のテーブルからのサンプルを示しています。

以下に説明するように、メタデータの説明と列の詳細を示すテーブルの概要。

  • 説明: Genieはメタデータを使用してデータを理解し、正確な応答を生成します。defaultのテーブルの説明には、データ資産に関連付けられたUnity Catalogメタデータが表示されます。この説明を編集して、Genieがエージェント向けにSQLを作成する際に役立つ具体的な指示を追加してください。Unity Catalog の説明を復元するには、 Reset をクリックしてください。

  • 列: 列名と説明は列リストに含まれています。各列には、 書式アシスタンス または エンティティの一致 が含まれているかを示すタグが付けられています。プロンプトの一致の概要を参照してください。

関連する列の表示/非表示

列を非表示にすると、Genie Agentのコンテキストから削除されるため、GenieはSQLを生成したり、質問に答えたりする際にその列を参照しません。これは、Genieが重要なデータに集中できるように、不要な、重複する、または混乱を招く可能性のある列を除外するのに役立ちます。列を非表示にしても、基になるデータやUnity Catalogの権限には影響しません。列はテーブルにまだ存在し、テーブルへの直接アクセス権を持つユーザーには引き続き表示されます。

列は個別にも一括でも管理できます。以下の手順に従って列の表示/非表示を行います。

  • **単一列を非表示にする**:目のアイコン 列名の横にある をクリックします。

  • 複数の列を非表示にする

    • 非表示にする列のチェックボックスを選択します。
    • **[アクション]** メニューから、**[選択した列を非表示にする]** を選択します。
  • 変更を元に戻す :同じステップを繰り返して、隠されていた列を表示します。

列メタデータを編集

各列について以下をカスタマイズできます:

  • 説明: Genie の理解度を高める、エージェント固有の列の説明。
  • 類義語 :ユーザーの言語を列名に一致させるのに役立つビジネス用語とキーワード。
  • 詳細設定 :プロンプト マッチングのコントロール。
    • フォーマットアシスタンス :代表的な値のサンプリングをオンまたはオフにします。
    • エンティティの一致 :カテゴリ列に対してエンティティの一致を有効または無効にします。

列メタデータを編集するには:

  1. 列名の横にある鉛筆アイコン。鉛筆アイコンをクリックします。
  2. 列の説明とシノニムを編集します。
  3. 必要に応じて、プロンプト照合コントロールを開くには、 高度な設定 をクリックします。
  4. 保存 をクリックして変更を保持し、ダイアログを閉じます。

プロンプトの一致の概要

プロンプトマッチングにより、Genieはユーザーの質問に最も関連性の高い列や値を一致させ、ユーザーのプロンプト内のスペルミスを修正できます。これによりGenieの精度が向上し、より信頼性の高いSQLクエリーを生成するのに役立ちます。

Genieでユーザーが質問する場合、その表現はしばしば会話的であり、スペルミスなどのエラーが含まれることがあります。これらのケースでは、プロンプト内の値がデータの構造または値と一致しない場合があります。これにより、Genieが質問を誤って解釈し、不正確なSQLを生成する可能性があります。

次の例を確認してください。

"第1四半期のフロリダの自動車販売を表示してください。"

データが州の略語(例:FL)を使用しており、Genieがその列の値にアクセスできない場合、GenieはILIKE '%Florida%'を含むSQLを生成する可能性があり、これは結果を返しません。

state列でエンティティ一致を有効にすると、Genieは代表的な値にアクセスできます。このコンテキストを使用すると、GenieはFLが「Florida」に対応することを認識し、より正確なSQLを生成できます。

エンティティの一致なし

エンティティの一致あり

WHERE state ILIKE '%Florida%'

WHERE state = 'FL'

エンティティの一致なし

エンティティの一致あり

WHERE state ILIKE '%Florida%'

WHERE state = 'FL'

プロンプトの一致コンポーネント

  • フォーマットアシスタンス :フォーマットアシスタンスは、対象となるすべての列の代表値を提供し、Genieがデータ型とフォーマットパターンを理解するのに役立ちます。プロンプトマッチングの代表値は、作成者のデータ権限を使用して生成されます。これらの値はエージェントの共有コンテキストの一部となり、Genieがエージェントを使用するすべてのユーザーのプロンプトをより正確に解釈するのに役立ちます。
  • **エンティティ一致**:エンティティ一致は、都道府県や製品カテゴリなど、ユーザーが特定の入力値を参照する可能性が高い最大120列に対して、厳選された個別値のリストを提供します。これにより、Genieはユーザーの用語と実際のデータ値を照合できます。各列には、最大1,024個の個別値を含めることができ、それぞれの長さは最大127文字です。エンティティ一致データは、ワークスペースのストレージバケットに保存されます。

エージェントにテーブルを追加すると、Genie は対象となる列に対してフォーマットアシスタンスとエンティティのマッチングを自動的に提供します。行フィルターまたは列マスクが適用されたテーブルは、プロンプトのマッチングから除外されます。

プロンプトの一致を管理

Genie がデータをより理解できるように、フォーマットアシスタンスとエンティティの一致を提供する列を制御します。プロンプトのマッチングは、すべての Genie エージェントで default で有効になっています。

フォーマットアシスタンスを管理します。

Genie Agent にテーブルを追加すると、書式設定アシスタンスが自動的に適用されます。

列のフォーマットアシスタンスをオフにするには:

  1. Genie Agentで**設定 > データ**をクリックします。
  2. 列を表示するには、テーブル名をクリックします。
  3. 列名の横にある鉛筆アイコン。鉛筆アイコンをクリックします。
  4. 詳細設定 をクリックします。
  5. フォーマットアシスタンス をオフにします。

このアクションは、その列のエンティティマッチングも自動的に無効にします。必要に応じて、この設定を使用して 書式設定アシスタンス を再度オンにします。

エンティティの一致を構成する

Genieは、お客様のプロンプト、関連するテーブルメタデータ、プロンプトの一致機能、エラーシグナル、および入力コードまたはクエリーを使用して、応答を生成します。列でエンティティの一致が有効になっている場合、Genieは格納された値を活用して、ユーザーのプロンプトを実際のデータにより正確に一致させます。これにより、より信頼性の高いSQLクエリーが生成されます。エンティティマッチングは、明確なサンプルクエリーと適切に作成された指示と組み合わせることで、Genieの精度を大幅に向上させます。詳細については、効果的なGenie Agentをキュレートする方法を参照してください。

Genieは、行フィルターまたは列マスクを持つテーブルでのエンティティの一致を有効にすることを防ぎます。ただし、エージェント作成者は、行フィルターまたは列マスクを持つテーブルを参照するビュー、または動的ビューに対してエンティティマッチングを無効にする必要があります。

エンティティ一致は、文字列の列のみをサポートしています。以下は、エンティティ一致と相性の良いデータタイプの例です:

  • 州または国コード
  • 製品カテゴリ
  • ステータスコード
  • 部門名

エンティティの一致を有効にするには、 フォーマットアシスタンス をオンにする必要があります。次に、次のステップを使用します。

  1. Genie Agentで**設定 > データ**をクリックします。
  2. 列を表示するには、テーブル名をクリックします。
  3. 列名の横にある鉛筆アイコン。鉛筆アイコンをクリックします。
  4. 詳細設定 をクリックします。
  5. エンティティの一致 をオンにします。
  6. 列のエンティティの一致を無効にするには、 エンティティの一致 をオフにします。

右側に値ディクショナリボタンがある文字列型の列。

注記

ユーザーがエンティティの一致が有効になっている列でフィルターを適用すると、フィルターは列の保存されている値で埋められた編集可能なドロップダウンメニューとして表示されます。

プロンプトの一致データを更新または削除します。

プロンプトマッチング データを更新すると、列に保存された値が更新されます。次の場合、値を更新します。

  • 新しい値が列に追加されました。
  • 既存の値のフォーマットが変更されました。

プロンプト一致データを更新するには、列ビューでケバブメニューアイコン。 ケバブメニューをクリックし、次に**プロンプト一致を更新**をクリックします。

UI の「値の更新」または「値の削除」オプション

結合関係を定義する

テーブルの関係を定義して、Genie が正確な JOIN ステートメントを作成できるようにします:

  1. 結合 をクリックします。

  2. [ 追加 ] をクリックします。

  3. ドロップダウンメニューから左右のテーブルを選択します。

  4. 結合条件 (例:accounts.id = opportunity.accountid)を入力します。

    • より複雑な結合条件の場合は、**SQL式を使用**をクリックし、結合条件をSQL式として記録します。
  5. 関係タイプ を選択してください:

    • 多対一 :複数の左側の行が1つの右側の行にマップされます
    • **一対多**:1つの左側の行が複数の右側の行にマッピングされます。
    • 1対1 :左側の1つの行が、最大で右側の1つの行にマッピングされます。

識別された1つの結合関係を示す結合指示

注記

同じテーブル間に複数の結合が存在する場合、または自己結合が使用される場合、Genieはあいまいさを避けるために、右側のテーブルにエイリアスを自動的に生成します。

SQL式の定義

メジャー、フィルター、フィールドが表示されるSQL式インターフェイス

オーサリングエクスペリエンスでは、SQL式はSQLクエリーの例とグループ化されているため、両方を一箇所で定義および管理できます。SQLクエリーと関数の例を追加するを参照してください。

SQL 式は、KPI、属性、条件などの一般的なビジネス用語を Genie に教えるための、構造化されたガイド付きの方法を提供します。ユーザーがこれらのビジネス用語について尋ねるときに、Genie はこれらの定義を使用します。

SQL 式は、手順で指定されたSQL クエリーの例を補完するものです。SQL 式は再利用可能なビジネスコンセプトを定義しますが、SQL クエリーの例は、Genie に一般的なユーザープロンプトの形式への対処方法を教えるのにより役立ちます。たとえば、ユーザーが一般的に「パフォーマンスの内訳」を求める場合、SQL クエリーの例で、これが地域別、営業担当者別、マネージャー別の成約済み売上を意味することを示すことができます。

SQL式は、次の場合に最適です:

  • 利益率やコンバージョン率などのKPIとメトリクスの構造化された定義を提供します。
  • 重要な値の計算方法についてGenieに明示的なコンテキストを与えます
  • データセットの追加フィールド(月や顧客セグメントなど)を定義します
  • 大量注文や特定の時間前の注文など、ビジネス条件に対応するGenieフィルターを教えます

SQL 式のタイプ

次の種類の SQL 式を定義できます:

  • フィルター :一般的なフィルタリング条件。名前、SQLフィルタロジック、およびシノニムを定義します。
  • 指標 :主要業績評価指標 (KPI) とメトリクス。名前、SQL計算、および同義語を定義します。
  • **フィールド**: データのグループ化と分析のための属性。名前、SQL式、および同義語を定義します。

SQL式を追加するには:

  1. 構成手順SQL式 をクリックします

  2. [ 追加 ] をクリックします。 フィルターメジャー 、または フィールド を選択します。

  3. 名前 」フィールドに、式の名前を入力します。

  4. コード フィールドにSQL式を入力します。

    • フィルター式はBoolean条件として評価されます。
    • メジャー式は、テーブル内の複数の行にわたる集計を計算します。
    • フィールド式は、既存のデータから各行の値を変更します。
  5. 同義語 フィールドに、ユーザーが口語的に表現を参照する可能性がある一般的な方法を入力します。

  6. 指示 フィールドに、その式が何のためで、Genieがそれとどのように連携するかをGenieに伝える具体的な指示を入力します。

SQL式の例

次の例は、それぞれのタイプの1つの式を示しています。ビジネスロジックをSQL式として定義すると、テキスト指示よりも一貫性のある結果が得られます。これは、Genieが自然言語から解釈するのではなく、記述されたとおりにロジックを正確に適用するためです。

フィルター:高額な注文

  • 名前 :高額注文
  • コードorders.amount > 10000
  • 同義語 :large orders、big deals、significant orders
  • 指示 : ユーザーが大規模または高価値の注文について尋ねる場合に適用します。thresholdは $ 10,000 です。

メジャー:勝率

  • 名前 :勝率
  • コードCOUNT(CASE WHEN stage = 'Closed Won' THEN 1 END) / NULLIF(COUNT(*), 0)
  • 同義語 : クローズ率、コンバージョン率
  • **指示**: 獲得した機会の割合を返します。結果は0から1までの小数です。パーセンテージとして表示するには、100を乗じます。

フィールド: 取引規模

  • 「名前」:取引サイズ
  • コードCASE WHEN amount < 10000 THEN 'Small' WHEN amount < 50000 THEN 'Medium' ELSE 'Large' END
  • 同義語 :ディールティア、契約規模、機会規模
  • 手順 :ドル金額に基づいて、商談を小、中、大にグループ化します。ユーザーが取引規模別に結果を分解するように依頼する場合に使用します。

ナレッジマイニングのレコメンデーション

ナレッジマイニングは、ナレッジストアの更新を自動的に提案することでGenieの改善に役立ち、手動によるキュレーションを減らし、回答の精度を向上させます。

まず、Genieはエージェントに接続されたテーブルとビューのUnity Catalogメタデータを分析します。スキーマで定義された主キーと外部キーは、Genie Agentに結合関係として自動的に保存されます。

Genie でナレッジスニペットを確認します。

Genieは、会話での作成者のインタラクションからも学習します。作成者がレスポンスに「いいね」を付けた場合、またはクエリー結果をdownloadすると、Genieはクエリーを分析します。今後の質問に対する正確性を向上させることができる有用なロジックを特定します。Genieは、ナレッジストアに追加する新しいSQL式(メジャー、フィルター、またはフィールド)や追加の結合関係を提案する場合があります。

Genieにフィードバックを提供します。

次のステップ

Genie Agentの構築を継続するために、以下のLinkをご利用ください。