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

より信頼性の高いGenie spacesのためのナレッジストアを構築する

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

ナレッジストアとは

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

ナレッジストアは、次のもので構成されます。

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

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

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

ローカル テーブルと列の説明を提供し、一般的なビジネス用語に沿った列の同義語を追加することで、スペース内のデータについて Genie に教えます。不要な列や重複する列を非表示にしてデータセットを簡素化し、Genie の焦点を絞り込みます。

これらのプラクティスにより、基になるテーブルに対する直接のアクセス許可を持たないユーザーの使いやすさが向上し、命令バージョンを更新する際のより迅速なイテレーションもサポートされます。

スペースレベルのメタデータにアクセスするには、Genieスペースで [>データの構成 ] をクリックします。次に、テーブル名をクリックして、そのメタデータと列を表示します。

列の表示

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

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

  • 説明: Genie はメタデータを使用してデータを理解し、正確な応答を生成します。安心テーブルの説明には、データ資産に関連付けられたUnity Catalogメタデータが表示されます。 この説明を編集して、Genie がスペースの SQL を作成するのに役立つ具体的な指示を追加します。Unity Catalog説明を復元するには、 「リセット」 をクリックします。

  • 列: 列名と説明が列リストに含まれます。各列には、 フォーマット支援 または エンティティ マッチング が含まれているかどうかを示すタグが付けられます。プロンプト一致の概要を参照してください。

関連する列を非表示または表示する

列は、個別に管理することも、一括で管理することもできます。列を非表示または表示するには、次の手順を使用します。

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

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

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

列メタデータの編集

列ごとに以下をカスタマイズできます。

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

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

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

プロンプトマッチングの概要

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

ユーザーが Genie で質問する場合、その言い回しは会話形式であることが多く、スペルミスなどの誤りが含まれることがあります。このような場合、プロンプトの値はデータの構造または値と一致しない可能性があります。これにより、Genie が質問を誤って解釈し、誤った SQL を生成する可能性があります。

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

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

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

state列でエンティティ マッチングを有効にすると、Genie は代表的な値にアクセスできるようになります。このコンテキストにより、Genie はFL 「フロリダ」に対応することを認識し、より正確な SQL を生成できます。

エンティティマッチングなし

エンティティマッチング

WHERE state ILIKE '%Florida%'

WHERE state = 'FL'

一致するコンポーネントをプロンプトする

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

Genie は、スペースにテーブルを追加すると、対象となる列のフォーマット支援とエンティティ マッチングを自動的に提供します。行フィルターまたは列マスクを含むテーブルは、プロンプト一致から除外されます。

プロンプトマッチングの管理

Genie によるデータの理解を最適化するために、フォーマット支援とエンティティ マッチングを提供する列を制御します。プロンプト マッチングは、すべてのGenie spacesに対して有効になります。

フォーマット支援の管理

Genieスペースにテーブルを追加すると、フォーマットアシスタントが自動的に適用されます。

列の書式設定アシスタンスをオフにするには:

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

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

エンティティマッチングを構成する

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

Genie では、行フィルターまたは列マスクを含むテーブルでエンティティ マッチングを有効にできません。ただし、スペース作成者は、行フィルターまたは列マスクを持つテーブルを参照するビュー、または動的ビューに対してエンティティ マッチングを無効にする必要があります。

エンティティ マッチングでは文字列の列のみがサポートされます。次のリストには、エンティティ マッチングに適したデータの種類の例が含まれています。

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

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

  1. Genieスペースで 設定 > データ をクリックします。
  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 行が最大で右の 1 行にマップされます

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

注記

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

SQL式を定義する

メジャー、フィルター、ディメンションを表示する SQL 式インターフェース

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

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

SQL 式は、次のような場合に最適です。

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

SQL式の種類

次のタイプの SQL 式を定義できます。

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

SQL 式を定義するには、次の手順に従います。

  1. 設定 > 手順 > SQL式 をクリックします
  2. [追加]を クリックします。 フィルターメジャー 、または ディメンション を選択します。
  3. 「名前」 フィールドに式の名前を入力します。
  4. コード フィールドに SQL 式を入力します。
  • フィルタ式はブール条件として評価される必要があります。
  • メジャー式では、テーブル内の複数の行にわたって集計を計算する必要があります。
  • ディメンション式は、既存のデータから各行の値を変更する必要があります。
  1. 「同義語」 フィールドに、ユーザーが口語的に表現を指す一般的な方法を入力します。
  2. 「指示」 フィールドに、式の目的とその操作方法を Genie に伝える具体的な指示を入力します。

知識マイニングの推奨事項

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

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

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

Genie は会話の中での著者のやりとりからも学習します。著者が応答に賛成するか、クエリの結果をダウンロードすると、Genie はクエリを分析し、将来の質問の精度を向上させるのに役立つロジックを識別します。新しい SQL 式 (メジャー、フィルター、ディメンション) や、ナレッジ ストアに追加する追加の結合関係が提案される場合もあります。

Genie にフィードバックをお送りください。

次のステップ

次のリンクを使用して、 Genieスペースの構築を継続してください。