Databricks アプリに Genie Space リソースを追加する

Genie Spaces を Databricks Apps リソースとして追加して、アプリケーションで自然言語クエリを有効にします。 Genie Spaces には、データ探索用の会話インターフェイスが用意されており、ユーザーは簡単な英語でビジネス上の質問をしたり、キュレーションされたデータセットから SQL ベースの分析情報を受け取ることができます。

Genie Space をリソースとして追加すると、アプリで次のことができます。

  • 自然言語クエリをユーザーから SQL に変換する
  • 事前構成済みのビジネス コンテキストとメタデータにアクセスする
  • キュレーションされたサンプル クエリとデータ定義を使用する
  • 組織のデータセットに基づいて応答を生成する

Genie Space リソースを追加する

Genie Space をリソースとして追加する前に、 アプリ リソースの前提条件を確認します

  1. アプリを作成または編集するときに、[アプリ リソース] セクションで、[+ リソースの追加] をクリックします>Genie Space
  2. ワークスペースで使用可能なスペースの一覧から Genie Space を選択します。
  3. アプリのアクセス許可レベルを選択します。
    • 表示可能: Genie Space の構成とメタデータを読み取るアクセス許可をアプリに付与します。
    • 次のコマンドを実行できます。 Genie Space にクエリを送信して応答を受信するアクセス許可をアプリに付与します。
    • 編集可能: Genie Space の構成を変更するアクセス許可をアプリに付与します。
    • 次の管理が可能です。 Genie Space への完全な管理アクセス権をアプリに付与します。
  4. (省略可能)カスタム リソース キーを指定します。これは、アプリ構成で Genie Space を参照する方法です。 既定のキーは genie-spaceです。

Genie Space リソースを追加する場合:

  • Azure Databricksは、選択した Genie Space に対するサービス プリンシパルの指定されたアクセス許可を付与します。
  • アプリは、自然言語クエリを空間に送信し、SQL クエリと結果を使用して構造化された応答を受け取ることができます。
  • アプリは、メタデータ、サンプル クエリ、データ定義など、領域のキュレーションされたビジネス コンテキストにアクセスします。
  • アクセスのスコープは、選択した領域のみです。 別のリソースとして追加しない限り、アプリは他の Genie Spaces にアクセスできません。

また、アプリのサービス プリンシパルには、Genie Space がクエリを実行する基になるデータ ソースに対する適切なアクセス許可も必要です。 これには、通常、関連する Unity カタログのテーブルとビューに対する USE CATALOGUSE SCHEMA、および SELECT のアクセス許可が含まれます。

環境変数

Genie Space リソースを使用してアプリをデプロイすると、Azure Databricksは、valueFrom 構成の app.yaml フィールドを使用して参照できる環境変数を介してスペース ID を公開します。

構成例:

env:
  - name: GENIE_SPACE_ID
    valueFrom: genie-space # Use your custom resource key if different

アプリケーションでのスペース ID の使用:

import os
from databricks.sdk import WorkspaceClient

# Access the Genie Space using the injected environment variable
space_id = os.getenv("GENIE_SPACE_ID")

# Initialize the workspace client
w = WorkspaceClient()

# Start a conversation with a natural language query
response = w.genie.start_conversation_and_wait(
    space_id=space_id,
    content="What were our top-selling products last quarter?"
)

# Process the response (responses contain attachments with text, queries, and so on)
for attachment in response.attachments:
    print(f"Genie response: {attachment.text.content}")

# Continue the conversation with additional questions
follow_up = w.genie.create_message_and_wait(
    space_id=space_id,
    conversation_id=response.conversation_id,
    content="Can you break that down by product category?"
)

詳細については、「 リソースから環境変数にアクセスする」を参照してください。

Genie Space リソースを削除する

アプリから Genie Space リソースを削除すると、アプリのサービス プリンシパルは領域へのアクセスを失います。 Genie Space 自体は変更されず、適切なアクセス許可を持つ他のユーザーやアプリケーションで引き続き使用できます。

Genie Spaces を他のアプリ リソースと組み合わせる

Genie Spaces を他の Databricks Apps リソースと組み合わせて、より高度なデータ アプリケーションを作成します。 一般的な統合パターンは次のとおりです。

自然言語分析ダッシュボード

対話型分析を実行するには、次のリソースをまとめて使用します。

  • Genie Space: ユーザーの質問を SQL クエリに変換します
  • SQL ウェアハウス: クエリを実行し、視覚化の結果を返します
  • 秘密: 外部視覚化ツールの API キーを格納します

構成例:

env:
  - name: GENIE_SPACE_ID
    valueFrom: genie-space
  - name: SQL_WAREHOUSE_ID
    valueFrom: sql-warehouse
  - name: EXTERNAL_API_KEY
    valueFrom: viz-secret

AI によって強化されたビジネス インテリジェンス

AI モデルと統合するには、次のリソースを使用します。

  • Genie Space: 初期クエリとデータ コンテキストを生成します。
  • モデル サービス エンドポイント: AI によって生成された概要と推奨事項を返します
  • SQL ウェアハウス: 複雑な分析クエリを実行する

サービス プリンシパルのアクセス許可

他のアプリ リソースと統合するときに、アプリのサービス プリンシパルに次のアクセス許可を付与します。

  • CAN RUN ジーニー・スペース
  • CAN USE 別の SQL ウェアハウスを使用している場合 (Genie Space とは異なるもの)
  • CAN QUERY エンドポイントを提供するモデル
  • Unity カタログの関連オブジェクトUSE CATALOGに対するUSE SCHEMA
  • SELECT テーブルに対してアプリが直接クエリを実行する

ベスト プラクティス

Genie Space リソースを使用する場合は、次のベスト プラクティスに従ってください。

  • 最小限のアクセス許可を付与します。 アプリが機能するために必要な特定の Genie Spaces へのアクセスのみを提供します。
  • Genie Space に適切にキュレーションされたデータセットとメタデータが含まれていることを確認して、自然言語クエリ応答の品質を向上させます。
  • Genie Space に対してアプリのクエリをテストして、予想されるユーザーの質問に対して正確な結果を生成できることを検証します。
  • クエリのパフォーマンスを監視し、Genie Space でアプリの対話パターンを調整して応答時間を最適化します。
  • Genie Space がユーザー クエリを効果的に解釈または応答できない場合のエラー処理を実装します。