SQL クエリの例、Unity カタログ関数、プレーンテキスト命令、ナレッジ ストア スニペット (テーブルの説明、 JOIN リレーションシップ、ビジネス セマンティクス用の SQL 式) を追加することで、Genie エージェントの精度と信頼性を向上させます。
Note
Genie Agents は、以前は Genie Spaces として知られていました。
SQL の例と手順を追加する
サンプル SQL クエリ、Unity カタログ関数、プレーンテキスト命令を追加して、正確な応答を生成できます。 [構成]をクリックします。 例文タブを使って、例のクエリ、フィルター、測定値、フィールド、結合を管理してください。 キーワードや例のタイプで例を検索できます。
各 Genie エージェントには、次の 2 つの制限があります。
- 命令 (エージェントあたり 100): 各例の SQL クエリ、各 SQL 関数、および 一般的な命令 全体のテキスト ブロックは、それぞれ 1 つの命令としてカウントされます。
- ナレッジ ストア スニペット (エージェントあたり 200): テーブルの説明、結合リレーションシップ、SQL 式 (メジャー、フィルター、ディメンション) は、この制限を共有します。 「 列の表示」、 「結合リレーションシップの定義」、および 「SQL 式の定義」を参照してください。
Genie エージェントは、明確で正確なガイダンスに基づいて、一貫した予測可能な応答を提供することを目的としています。 Genie は非決定的な方法で動作するため、望ましくない応答のリスクを最小限に抑えるために、ガイダンスを競合またはあいまいな情報から解放することが重要です。 エージェントを設定する際の重要なタスクは、不整合を確認して解決することです。 これにより、信頼性の高い結果が得られます。
SQL クエリと関数の例を追加する
以下を追加するには 「例」 タブを使ってください:
クエリの例 (推奨): SQL クエリの例は、Genie が一般的なユーザーの質問に答える正しい SQL を生成するのに役立ちます。 クエリは静的またはパラメーター化できます。 SQL クエリの例ごとに、SQL を指定し、ユーザーの質問の最も一般的な言い回しをタイトルとして使用します。 これにより、Genie のプロンプトを例に一致させる機能が向上します。 Genie は、サンプル クエリを直接使用することも、そこから学習して同様の質問を処理することもできます。 エージェントの CAN EDIT 権限を持つユーザーは、応答の生成に使用されるクエリを表示できます。これは、トラブルシューティングと絞り込みに役立ちます。
SQL 関数: 静的またはパラメーター化された SQL クエリでは回答できない質問については、Unity カタログにカスタム関数を登録できます。 関数はチーム間で共有でき、Genie が特定の質問に回答するために使用できます。 Genie エージェントで SQL 関数を使用する方法の詳細については、「 信頼された資産」を参照してください。
Genie でサンプル クエリを使用する方法
クエリの例では、Genie で使用可能なデータを使用して質問に回答する方法を示します。 テキスト フィールドにサンプルの質問を入力し、その質問に回答する SQL クエリを入力します。 ユーザーが自然に質問する方法でサンプルの質問を記述します。 Genie は、一致する質問を受け取ると、サンプル クエリを直接使用して回答を提供できます。 Genie も同様の質問を受け取ると、サンプル クエリの手掛かりを使用して、応答で提供される 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 はユーザーの質問から特定の入力を受け取り、クエリ例の構造を再利用して、検証済みの回答を提供できます。
クエリにパラメーターを追加するには、次の操作を行います。
パラメーターを挿入する場所にカーソルを置いてください。
[パラメーター 追加] をクリックします。
これは、既定の名前の
parameterを用いて新しいパラメーターを作成します。 名前を変更するには、クエリ エディターで名前を置き換えます。 パラメーターを追加するには、コロンを入力し、その後にパラメーター名 (:parameter_name) をエディターで直接入力します。
パラメーターを編集するには、[ をクリックします。パラメーター名の横にあります。
[パラメーターの詳細] ダイアログには、次のオプションが含まれています。
- キーワード: クエリ内のパラメーターを表すキーワード。 変更できるのは、クエリ テキストを直接編集することだけです。
- データ型: サポートされている型には、 String、 Date、 Date and Time、 Decimal、 Integer があります。 既定値は String です。
- コメント: パラメーターに使用できる値または制限の説明。 これを使用して、Genie が正しい値を選択するのに役立つコンテキストを提供します。
Note
入力値が選択した型と一致しない場合、Genie はそれを正しくない型として扱い、結果が不正確になることがあります。
チャット モードでは、パラメーター化されたクエリの正確なテキストが応答で使用されると、Genie は検証済みの回答を提供します。 「信頼された資産」を参照してください。
信頼されたアセット
信頼された資産は、ユーザーから予想される質問に対する検証済みの回答を提供する SQL クエリと SQL 関数の例です。 Genie が信頼できる資産を使用して質問に回答すると、検証済みの回答が提供され、エージェント ユーザーは結果の精度に対する信頼度を高めることができます。
信頼された資産には次のものが含まれます。
- パラメーター化された SQL クエリの例: チャット モードでは、パラメーター化されたクエリの正確なテキストを使用して応答を生成すると、Genie は検証済みの回答を提供します。 エージェント ユーザーは、パラメーター値を編集してクエリを再実行できます。 クエリ パラメーターの追加を参照してください。
- SQL 関数: Unity カタログに登録されている SQL 関数を Genie エージェントに追加できます。 Genie で SQL 関数を使用する方法を参照してください。
Genie エージェントに対する CAN EDIT 権限を少なくとも持つユーザーは、信頼できる資産を追加または削除できます。 エージェント ユーザーには、信頼された資産として使用されるすべての SQL 関数に対する EXECUTE 権限が必要です。
使用ガイダンスを提供する
Genie に追加のコンテキストを提供して、クエリの例が特に関連するタイミングを説明できます。
使用ガイダンスを追加するには:
- 例クエリのリストにアクセスするには 、Configure>Examples をクリックします。
- クエリの例をクリックします。
- 画面の下部付近にある [ 使用ガイダンス ] をクリックします。
- このサンプル クエリを使用する方法とタイミングの詳細を入力します。
Genie は SQL 関数をどのように使用しますか?
SQL 関数は、静的クエリまたはパラメーター化クエリではキャプチャできない複雑なロジックが質問に含まれている場合に便利です。 これらは Unity カタログに格納され、Genie がユーザー指定のパラメーターを使用して呼び出すことができます。 Genie は関数で使用される SQL を表示または変更できないため、このアプローチは、表示または変更すべきではないロジックに適しています。 Unity Catalogで関数登録に関するガイダンスについては、「Create a SQL table function」および「Unity Catalog内のSQLおよびPythonユーザー定義関数(UDF)」をご覧ください。
手順を指定する
[ テキスト ] タブをクリックして、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 によるデータの理解を強化し、応答の精度を向上させる、精選されたセマンティック定義のコレクションです。
ナレッジ ストアは、次の要素で構成されます。
- エージェント レベルのメタデータのカスタマイズ: テーブル、列、およびビジネス用語とシノニムのエージェント固有の説明。
- エージェント レベルのデータのカスタマイズ: 基になる Unity カタログ テーブルを変更することなく、簡略化された、フォーカスされたデータセット。
- プロンプト照合: Genie がユーザーの質問に最も関連する値を照合し、ユーザー プロンプトのスペルの問題を修正するのに役立つ例。 これには、 書式の支援 と エンティティの一致が含まれます。
-
結合リレーションシップ: 正確な
JOINステートメント用に定義されたテーブル リレーションシップ。 - SQL 式: ビジネス ロジックをキャプチャするメジャー、フィルター、ディメンションの構造化された定義。
Note
各 Genie エージェントは、最大 200 個のナレッジ ストア スニペットをサポートしています。 テーブルの説明、結合リレーションシップ、SQL 式 (メジャー、フィルター、ディメンション) はこの制限にカウントされます。 テキスト命令、SQL クエリの例、SQL 関数、列の説明、プロンプトの一致設定は、この制限にはカウントされません。
すべてのナレッジ ストア構成は Genie エージェントにスコープが設定され、Unity カタログのメタデータやその他のAzure Databricks資産には影響しません。
ナレッジ ストアのメタデータを管理する
ローカル テーブルと列の説明を提供し、一般的なビジネス用語に合った列シノニムを追加して、エージェント内のデータについて Genie に教えます。 不要な列または重複する列を非表示にして、Genie にフォーカスを維持することで、データセットを簡略化します。
これらのプラクティスにより、基になるテーブルに対する直接アクセス許可を持たないユーザーの使いやすさが向上し、命令バージョンの更新時のイテレーションも迅速にサポートされます。
テーブルメタデータにアクセスするには、Genie Agent内の 「 > Config Sources 」をクリックしてください。 次に、テーブル名をクリックして、そのメタデータと列を表示します。
列の表示
テーブル名をクリックすると、列名と詳細の概要が表示されます。 次の例は、 accountsという名前のテーブルのサンプルを示しています。
形容: Genie はメタデータを使用してデータを理解し、正確な応答を生成します。 既定のテーブルの説明には、データ資産に関連付けられている Unity カタログメタデータが表示されます。 この説明を編集して、Genie がエージェントの SQL を作成するのに役立つ特定の指示を追加します。 Unity カタログの説明を復元するには、[ リセット ] をクリックします。
列: 列名と説明は列リストに含まれます。 各列には、 書式アシスタント と エンティティマッチングのどちらが含まれているかを示すタグが付けられます。 プロンプト照合の概要を参照してください。
関連する列を非表示または表示する
列を非表示にすると Genie エージェントのコンテキストから削除されるため、Genie は SQL の生成時や質問への回答時に参照しません。 これは、不要な列、重複する列、または混乱する可能性のある列を除外して、Genie が重要なデータに集中し続けるために役立ちます。 列を非表示にしても、基になるデータや Unity カタログのアクセス許可には影響しません。 列は引き続きテーブルに存在し、テーブルに直接アクセスできるユーザーに表示されます。
列は、個別に、または一括で管理できます。 列を非表示または表示するには、次の手順に従います。
-
1 つの列を非表示にする: 列名の横にある
をクリックします。 -
複数の列を非表示にする:
- 非表示にする列のチェック ボックスをオンにします。
- [アクション] メニューの [選択した列を非表示にする] を選択します。
- 変更を元に戻す: 非表示にされた列を表示するには、同じ手順を繰り返します。
列のメタデータを編集する
列ごとに次の内容をカスタマイズできます。
- 説明: Genie の理解を強化するエージェント固有の列の説明。
- 類義語: ユーザー言語と列名の照合に役立つビジネス用語とキーワード。
-
詳細設定: 一致するコントロールを確認します。
- 書式支援: 代表的な値のサンプリングをオンまたはオフにします。
- エンティティの一致: カテゴリ列のエンティティ一致を有効または無効にします。
列メタデータを編集するには:
- [
をクリックします。列名の横にある鉛筆アイコンをクリックします。
- 列の説明とシノニムを編集します。
- 必要に応じて、[ 詳細設定 ] をクリックして、一致するコントロールのプロンプトを開きます。
- [ 保存] をクリックして変更を保持し、ダイアログを閉じます。
プロンプト照合の概要
プロンプト照合を使用すると、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' |
一致するコンポーネントを確認する
- 書式の支援: 書式アシスタントは、対象となるすべての列の代表的な値を提供し、Genie がデータ型と書式設定パターンを理解するのに役立ちます。 プロンプト照合の代表的な値は、作成者のデータアクセス許可を使用して生成されます。 これらの値は、エージェントの共有コンテキストの一部となり、Genie がエージェントを使用するすべてのユーザーに対してユーザー プロンプトをより正確に解釈するのに役立ちます。
- エンティティマッチング:エンティティマッチングは、ユーザーが状態や製品カテゴリなどの特定のエントリを参照する可能性が高い最大120列の個別の値のキュレーションリストを提供します。 これにより、Genie はユーザーの用語を実際のデータ値と一致させることができます。 各列には最大 1,024 個の個別の値を含めることができます。それぞれ最大 127 文字の長さです。 エンティティ一致データは、ワークスペースのストレージ バケットに格納されます。
Genie は、エージェントにテーブルを追加するときに、対象となる列の書式支援とエンティティの一致を自動的に提供します。 行フィルターやカラムマスクは、プロンプトマッチングの対象となるデータに影響を与えます:
- 行フィルター:Genieはテーブル全体をプロンプトマッチングから除外します。
- カラムマスク:Genieはマスクされたカラムのみをプロンプトマッチングから除外します。 残りのテーブルは引き続き出場資格があります。
プロンプトの照合を管理する
データに対する Genie の理解を最適化するために、形式の支援とエンティティマッチングを提供する列を制御します。 プロンプト照合は、すべての Genie エージェントに対して既定で有効になっています。
書式のサポートを管理する
Genie エージェントにテーブルを追加すると、書式アシスタントが自動的に適用されます。
列の書式補助をオフにするには:
- Genie Agentで 「 > Sources の設定 」をクリックします。
- テーブル名をクリックすると、その列が表示されます。
-
をクリックします。列名の横にある鉛筆アイコンをクリックします。
- 詳細設定をクリックします。
- 書式アシスタントをオフにします。
このアクションにより、その列のエンティティ照合も自動的に無効になります。 必要に応じて、この設定を使用して Format Assistance をオンに戻します。
エンティティ マッチングを設定する
Genie は、プロンプト、関連するテーブル メタデータ、プロンプト照合機能、エラーシグナル、入力コードまたはクエリを使用して応答を生成します。 列でエンティティの照合が有効になっている場合、Genie は格納された値を利用して、ユーザー プロンプトと実際のデータをより正確に照合します。 これにより、より信頼性の高い SQL クエリが生成されます。 エンティティの一致により、Genie の精度が大幅に向上します。これは、明確な例のクエリや適切に作成された命令と組み合わせた場合に特に顕著です。 詳細なガイダンスについては 、効果的な Genie エージェントのキュレーション を参照してください。
Genie では、 行フィルターまたは列マスクを含むテーブルでエンティティの照合を有効にできなくなります。 ただし、エージェント作成者は、行フィルターまたは列マスクを含むテーブルを参照するビュー、または 動的ビューに対してエンティティの一致を無効にする必要があります。
エンティティの照合では、文字列列のみがサポートされます。 次の一覧には、エンティティの一致で適切に機能するデータの種類の例が含まれています。
- 州コードまたは国コード
- 製品カテゴリ
- 状態コード
- 部門名
エンティティの一致を有効にするには、 Format Assistance を有効にする必要があります。 次に、次の手順を使用します。
- Genie Agentで 「 > Sources の設定 」をクリックします。
- テーブル名をクリックすると、その列が表示されます。
-
をクリックします。列名の横にある鉛筆アイコンをクリックします。
- 詳細設定をクリックします。
- エンティティの照合を有効にします。
- 列のエンティティ一致を無効にするには、[ エンティティの照合] を オフにします。
Note
エンティティの一致が有効になっている列でユーザーがフィルターを適用すると、フィルターは列の格納された値が設定された編集可能なドロップダウン メニューとして表示されます。
一致するプロンプトのデータを更新または削除する
データに一致するプロンプトを更新すると、列の格納されている値が更新されます。 次の場合に値を更新します。
- 新しい値が列に追加されました。
- 既存の値の形式が変更されました。
一致するデータのプロンプトを更新するには、 をクリックします。列ビューの kebab メニューをクリックし、 プロンプトの照合を更新します。
結合リレーションシップを定義する
Genie がテーブルリレーションシップを定義して正確な JOIN ステートメントを作成できるようにします。
- 「 例 > 設定」をクリックします。
- 追加>結合をクリックします。
- ドロップダウン メニューから左右のテーブルを選択します。
-
結合条件を入力します (例:
accounts.id = opportunity.accountid)- より複雑な結合条件の場合は、[ SQL 式の使用 ] をクリックし、結合条件を SQL 式として記録します。
- リレーションシップの 種類を選択します。
- 多対1: 複数の左行が1つの右行に対応する
- 1 対多: 1 つの左側の行が複数の右の行にマップされます
- 1 対 1: 1 つの左行が最大 1 つの右行にマップされます
Note
同じテーブル間に複数の結合が存在する場合、または自己結合が使用されている場合、Genie はあいまいさを回避するために、右側のテーブルの別名を自動的に生成します。
SQL 式を定義する
作成エクスペリエンスでは、SQL 式は SQL クエリの例でグループ化されるため、両方を 1 か所で定義および管理できます。 SQL クエリと関数の例を追加するを参照してください。
SQL 式は、KPI、属性、条件などの一般的なビジネス用語について Genie に教える構造化されたガイド付き方法を提供します。 Genie は、ユーザーがこれらのビジネス用語について質問したときに、これらの定義を使用します。
SQL 式は、手順で指定されている SQL クエリの例を補完します。 SQL 式は再利用可能なビジネス概念を定義しますが、SQL クエリの例は、一般的なユーザー プロンプト形式にアプローチする方法を Genie に教える場合に役立ちます。 たとえば、ユーザーが一般的に "パフォーマンスの内訳" を求める場合、SQL クエリの例では、リージョン、営業担当者、およびマネージャー別の売上が閉じられたことを示すことができます。
SQL 式は、次の作業が必要な場合に最適です。
- KPI とメトリック (利益率やコンバージョン率など) の構造化された定義を提供する
- 重要な値を計算する方法に関する明示的なコンテキストを Genie に与える
- 月や顧客セグメントなど、データ セットの追加フィールドを定義する
- 特定の時間より前の注文や大口注文などのビジネス条件に基づいた Genie フィルターを設定する方法を教える。
SQL 式タイプ
次の種類の SQL 式を定義できます。
- フィルター: 一般的なフィルター条件。 名前、SQL フィルター ロジック、およびシノニムを定義します。
- 指標: 主要業績評価指標 (KPI) と指標。 名前、SQL 計算、シノニムを定義します。
- フィールド: データをグループ化および分析するための属性。 名前、SQL 式、およびシノニムを定義します。
SQL 式を追加するには:
- 「Configure>Examples」をクリックします。
- 追加をクリックします。 [フィルター]、[メジャー]、または [フィールド] を選択します。
- [ 名前 ] フィールドに、式の名前を入力します。
- [ コード ] フィールドに、SQL 式を入力します。
- フィルター式は、ブール値の条件として評価されます。
- メジャー式は、テーブル内の複数の行に対して集計を行います。
- フィールド式は、既存のデータから各行の値を変更します。
- [ シノニム ] フィールドに、ユーザーが式を口語的に参照する一般的な方法を入力します。
- [ 命令 ] フィールドに、式の目的と使用方法を Genie に伝える特定の命令を入力します。
SQL 式の例
次の例は、各型の 1 つの式を示しています。 ビジネス ロジックを SQL 式として定義すると、テキスト命令よりも一貫性のある結果が得られます。これは、Genie が自然言語から解釈するのではなく、記述されたとおりにロジックを適用するためです。
フィルター: 高額注文
- 名称: 高額注文
-
コード:
orders.amount > 10000 - 類義語: 大きな注文、大きな取引、重要な注文
- 手順: ユーザーが大きな注文や高価値の注文について質問する場合に適用します。 しきい値は $10,000 です。
指標: 勝率
- 名前: 勝率
-
コード:
COUNT(CASE WHEN stage = 'Closed Won' THEN 1 END) / NULLIF(COUNT(*), 0) - 類義語: 終値、変換率
- 手順: 成約した営業案件の割合を返します。 結果は 0 ~ 1 の 10 進数です。100 を乗算してパーセンテージで表示します。
フィールド: 案件のサイズ
- 名前: 取引サイズ
-
コード:
CASE WHEN amount < 10000 THEN 'Small' WHEN amount < 50000 THEN 'Medium' ELSE 'Large' END - 類義語: 取引レベル、コントラクト サイズ、営業案件のサイズ
- 手順: ドル額に基づいて、営業案件を小、中、または大にグループ化します。 ユーザーが取引サイズ別に結果を分割するように求められた場合に使用します。
ナレッジ マイニングに関する推奨事項
ナレッジ マイニングは、ナレッジ ストアの更新を自動的に提案し、手動キュレーションを減らし、回答の精度を向上させることで、Genie の向上に役立ちます。
まず、Genie は、エージェントに接続されているテーブルとビューの Unity カタログ メタデータを分析します。 スキーマで定義されている主キーと外部キーは、Genie エージェントの結合リレーションシップとして自動的に保存されます。
Genie は、会話での作成者の対話からも学習します。 作成者が応答をサムアップするか、クエリ結果をダウンロードすると、Genie はクエリを分析します。 これは、将来の質問の精度を向上させることができる便利なロジックを識別します。 Genie は、ナレッジ ストアに追加する新しい SQL 式 (メジャー、フィルター、またはフィールド) と追加の結合リレーションシップを提案する場合があります。
次のステップ
Genie エージェントの構築を続行するには、次のリンクを使用します。
- Genie エージェントを最適化するためのベスト プラクティスについて説明します。 効果的な Genie エージェントのキュレーションを参照してください
- エージェントのパフォーマンスを評価して改善します。 ベンチマークを参照する