Genie スペースで認定された回答を使用する

プレビュー

この機能はパブリックプレビュー段階です。

この記事では、認定回答を定義し、それらを使用してgenieスペースで提供される応答の信頼性と確信を高める方法について説明します。

認定された回答とは何ですか?

認定回答を使用すると、検証済みのパラメーター化された SQL クエリを、一般的な質問に答えるためのレシピとして明示的に定義できます。 これにより、技術者以外のユーザーが誤解を招くような、正しくない、または解釈しにくい応答を受け取る可能性を減らすことができます。 認定回答は、 genie Space がよくある質問に対して正確な回答を提供するのに役立ち、ユーザーは受け取った回答が検証されたことを通知されます。

認定回答の回答

注:

認定された回答は、他のすべての指示に代わるものではありません。 Databricks では、繰り返し発生する、よく確立された質問に対してのみ、認定された回答を使用することを推奨しています。 これらは特定の質問に対する正確な回答を提供し、アシスタントが隣接する質問に対処するために再利用することはありません。

認定解答を作成する理由

genie spaces は、ユーザーの質問に答えるために生成されたSQLクエリの結果を返します。 ビジネス ユーザーは、クエリを生成する大規模言語モデル (LLM) では解析が難しい専門用語を含める可能性があります。 ビジネス ユーザーが「APAC 地域でオープンしているパイプラインを表示してください」のようなプロンプトを提供するとします。 open pipeline がgenieスペース内のいずれかのテーブルのフィールドに直接対応していない場合、次の応答のように、生成されたSQLクエリを伴う空の結果セットがユーザーに返される可能性があります。

空の結果応答

ほとんどのビジネスユーザーにとって、この応答の解釈やトラブルシューティングは困難です。 genie Space の作成者は、このような質問に対して信頼できる回答を提供するために、認定された回答を定義できます。

認定解答の定義

認定済み回答を定義するには、ユーザーが尋ねると予想される質問を特定します。 次に、次の操作を行います。

  1. 質問に答える SQL クエリを定義してテストします。

    以下は、前の例の質問に答えるために設計されたクエリの例です。 このクエリが返すテーブルには、データ内のすべての地域の結果が含まれます。

    SELECT
    o.id AS `OppId`,
    a.region__c AS `Region`,
    o.name AS `Opportunity Name`,
    o.forecastcategory AS `Forecast Category`,
    o.stagename,
    o.closedate AS `Close Date`,
    o.amount AS `Opp Amount`
    FROM
    users.user_name.opportunity o
    JOIN catalog.schema.accounts a ON o.accountid = a.id
    
    WHERE
    o.forecastcategory = 'Pipeline' AND
    o.stagename NOT LIKE '%closed%';
    
  2. Unity Catalog関数を定義します。

    Unity Catalog関数はクエリをパラメーター化し、ユーザーが問い合わせる可能性のある特定の条件に一致する結果を生成する必要があります。

    SQL関数を定義する方法については、 テーブル関数を作成する」を Unity Catalog参照してください。

    次の関数は、リージョンのリストを受け取り、テーブルを返します。 関数定義で提供されるコメントは、この関数をいつどのように呼び出すかをgenieスペースに指示するために重要です。 この例には、関数の引数定義内のコメントと、関数の機能を説明するSQLテーブル関数内で定義されたコメントが含まれています。

    • 引数コメント: open_opps_in_region関数は引数として文字列の配列を必要とします。 コメントには、想定される入力の例が含まれています。 引数が指定されていない場合、デフォルト値はNULLになります。

    • 関数コメント: SQL テーブル関数内のコメントは、関数が何を行うかを説明します。

    関連する SQL クエリは、 WHERE句に Unity Catalog 関数が含まれるように調整されました。

    CREATE OR REPLACE FUNCTION users.user_name.open_opps_in_region (
    regions ARRAY<STRING> COMMENT 'List of regions.  Example: ["APAC", "EMEA"]' DEFAULT NULL
    ) RETURNS TABLE
    COMMENT 'Addresses questions about the pipeline in a region by returning a list of all the open opportunities.'
    RETURN
    
    SELECT
        o.id AS `OppId`,
        a.region__c AS `Region`,
        o.name AS `Opportunity Name`,
        o.forecastcategory AS `Forecast Category`,
        o.stagename,
        o.closedate AS `Close Date`,
        o.amount AS `Opp Amount`
    FROM
        catalog.schema.accounts.opportunity o
        JOIN catalog.schema.accounts a ON o.accountid = a.id
    WHERE
        o.forecastcategory = 'Pipeline' AND
        o.stagename NOT LIKE '%closed%' AND
        isnull(open_opps_in_region.regions) OR array_contains(open_opps_in_region.regions, region__c);
    

    コードを実行して関数を作成すると、デフォルトで現在アクティブなスキーマに登録されます。 Unity Catalog のカスタム SQL 関数を参照してください。

  3. 認定された回答を追加します。

    Unity Catalog機能として公開された後、 スペースで少なくとも 権限を持つユーザーは、CAN EDIT スペースのgenie 「手順 」タブにそれを追加できます。genie

    認定回答ボタンを追加

必要なアクセス許可

genieスペースに対して少なくともCAN EDIT権限を持つgenieスペースの作成者は、認定された回答を追加または削除できます。

genieスペース ユーザーには、関数を含むカタログとスキーマに対する CAN USE 権限が必要です。 認定された回答を呼び出すには、Unity Catalog 内の関数に対する EXECUTE 権限が必要です。 Unity Catalog のセキュリティ保護可能なオブジェクトは、親コンテナーから権限を継承します。 Unity Catalog 内のセキュリティ保護可能なオブジェクトを参照してください。

genieスペースでの共有を簡素化するために、 Databricks 、 genieスペースで使用するすべての関数を含む専用のスキーマを作成することをお勧めします。