AI/BI Genieスペースで信頼できるアセットを使用する

プレビュー

この機能は パブリック プレビュー段階です。 「アカウントでGenie spacesを有効にする」を参照してください。

この記事では、信頼できるアセットを定義し、それらを使用してGenieスペースで検証済みの回答を提供する方法について説明します。

信頼できるアセットとは

信頼できる資産は、ユーザーから予想される質問に対して検証済みの回答を提供することを目的とした、事前定義された関数とクエリの例です。 ユーザーが信頼できるアセットを呼び出す質問を送信すると、その質問が回答に示され、結果の精度にさらなる保証が追加されます。

信頼できる資産には、次のものが含まれます。

  • パラメーター化されたサンプル SQL クエリ: パラメーター化されたサンプル SQL クエリを使用して応答を生成すると、応答には信頼できる資産というラベルが付けられます。 応答には、クエリの引数として使用される値が含まれます。

  • ユーザー定義テーブル関数 (UDF): カスタム関数を定義し、 Unity Catalogで登録することができます。 その後、Genieスペースで指示を設定するときに、それらの機能を信頼できるアセットとして追加できます。 「 SQL テーブル関数の作成 」と 「Unity Catalog でのユーザー定義関数 (UDF)」を参照してください。

信頼できるアセットで回答された質問の例。

注:

信頼できる資産は、他のすべての指示に代わるものではありません。 Databricks では、定評のある繰り返しの質問には、信頼できるアセットを使用することをお勧めします。 彼らは特定の質問に対して正確な答えを提供します。

信頼できるアセットを作成する理由

AI ツールを使用する場合、ユーザーは生成された応答の精度を評価する必要があります。 通常、彼らは答えが理にかなっていて、質問に効果的に対処しているかどうかを検討することによってこれを行います。 Genieでは、応答は結果のテーブルとして配信されます。 ユーザーは結果セットを作成する生成された SQL を確認できますが、技術者以外のユーザーには SQL ステートメントを解釈したり、回答の正確さを評価したりする知識がない可能性があります。 信頼できるアセットは、これらのユーザーが誤解を招く、正しくない、または解釈が困難な応答に遭遇する可能性を減らすのに役立ちます。

ユーザーが信頼できる資産としてラベル付けされた応答を受け取ると、結果にデータを入力する SQL ステートメントをドメインの専門家がレビューしたと確信できます。

信頼できるアセットとサンプル SQL クエリの違いは何ですか?

信頼できるアセットは、 Genieスペースのユーザーが尋ねると予想される質問に対して検証済みの回答を提供します。 信頼できるアセットがユーザーの質問に答えることができる場合、信頼できるアセットとして保存した命令が実行され、指定された結果セットが返されます。 命令に含めるすべての SQL 関数は 、信頼できる資産として扱われます。 例 SQL パラメーターを含むクエリは、信頼できる資産として扱うこともできます。

  • SQL 関数: データを処理し、会社固有の質問に対処するように調整されたカスタム SQL 関数を記述できます。 genie は、質問に答える際に、信頼できる資産の SQL 内容を考慮しません。

  • サンプル SQL クエリ (パラメーター付き): パラメーター化されたサンプル クエリの正確なテキストを使用して応答を生成すると、応答は信頼できる資産として自動的にラベル付けされます。 クエリの正確なテキストが使用されていない場合、またはクエリ例でパラメーターが使用されていない場合、クエリはコンテキストを提供し、他の質問を処理するための ステートメントを生成するためのgenie SQLガイドを提供します。

信頼できるアセットを定義する

信頼できるアセットの定義は、ありそうな質問を特定することから始まります。 たとえば、営業パイプライン データセットを扱っているとします。営業マネージャーがよく尋ねる質問は、「パイプライン内の未解決の営業機会は何ですか?」です。

例: UDF を使用する

次のステップでは、この質問に答える信頼できるアセットを UDFとして作成するためのステップの概要を示します。

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

    このクエリは 2 つのテーブルを結合し、「パイプライン」予測カテゴリにリストされているオープンな商談のデータセットを返します。 このステップの目標は、期待される結果を返す基本的なクエリを記述することです。

    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関数はクエリをパラメーター化し、ユーザーが尋ねると予想される特定の条件に一致する結果を生成する必要があります。 営業マネージャーが特定の地域または地域のグループに焦点を当てて結果セットを絞り込みたいとします。

    次の例では、地域のリストをパラメーターとして受け取り、テーブルを返す Unity Catalog 関数を定義します。 関数の戻り値は、前のステップのSQLステートメントとほぼ同じですが、地域が指定されている場合は結果を地域別にフィルター処理するように WHERE 句が変更されています。 関数定義で提供されるコメントは、 Genieにこの関数をいつどのように呼び出すかを指示するために重要です。

    • 引数コメント: open_opps_in_region関数は引数として文字列の配列を必要とします。 コメントには、想定される入力の例が含まれています。 引数が指定されていない場合、デフォルト値はNULLになります。 オプションの引数とコメントを含める方法の詳細については、 「関数の記述に関するヒント」を参照してください。

    • 関数コメント: SQL テーブル関数内のコメントには、関数の機能の詳細な説明が記載されています。 これは、ユーザーの質問への応答としていつ関数を使用するかをGenieに伝えるため、重要です。 コメントは、関数の目的をできるだけ正確に説明する必要があります。 この情報は、 Genieが特定の質問に対する関数の関連性を認識するのに役立ちます。

    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 the specified regions by returning
     a list of all the open opportunities. If no region is specified, returns all open opportunities.
     Example questions: "What is the pipeline for APAC and EMEA?", "Open opportunities in
     APAC"'
    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.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 のユーザー定義関数 (UDF)」を参照してください。構文と例については 、「SQL テーブル関数の作成 」を参照してください。

  3. 信頼できるアセットを追加します。

    Unity Catalog関数が作成されると、Genie スペースで少なくともCAN EDIT権限を持つユーザーは、GenieスペースのInstructionタブから関数を追加できます。

必要な権限

Genieスペースに対して少なくともCAN EDIT権限を持つユーザーは、信頼できるアセットを追加または削除できます。

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

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

関数を記述するためのヒント

次の例を確認して、信頼できるアセットの動的関数を作成する方法を学習してください。

デフォルト値を含める

デフォルト 値を指定できます。 次の例に示すように、関数シグネチャで DEFAULT 句を使用します。

countries ARRAY<STRING> COMMENT 'List of countries' DEFAULT ARRAY()

サンプル値を含める

値の列挙が設定されている列の場合は、コメントで明確に定義することで精度を高めます。 次の例は、値のリストの例を示しています。

regions ARRAY < STRING > COMMENT 'List of regions. Values: ["AF","AN","AS", "EU", "NA", "OC", "SA", NULL]'

オプションで作成する

オプションの引数を作成するには、次の例に示すように、デフォルト引数をNULLに設定します。

min_date STRING DEFAULT NULL

コメントによる書式設定の指定

次の例に示すように、コメントに引数を含めることで、引数の正確な形式を指定できます。

min_date STRING COMMENT 'minimum date (included) for a transaction, in `yyyy-mm-dd` format'

NULL値を明示的にチェックする

オプションの を含める場合、想定される値の 1 つはNULLです。 NULL との比較では予測できない結果が生じる可能性があるため、NULL値のチェックを関数に明示的に組み込む必要があります。次の例は、構文の例です。

WHERE (isnull(min_date) OR created_date >= min_date)