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

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

Genie SpacesをDatabricks Appsとして追加 アプリケーションで自然言語クエリを有効にするには。 Genie Spaces は、データ探索のための会話型インターフェイスを提供し、ユーザーが平易な英語でビジネスに関する質問をしたり、厳選されたデータセットから SQL ベースの知識を得ることができるようにします。

Genie Spaceをリソースとして追加すると、アプリで以下のことが可能になります。

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

Genieスペース リソースを追加する

Genie Spaceをリソースとして追加する前に、アプリのリソース要件を確認してください。

  1. アプリを作成または編集するときに、 [アプリ リソース] セクションで、 [+ リソースの追加] > Genie Space] をクリックします。

  2. ワークスペース内の利用可能なスペース一覧から、Genie Spaceを選択してください。

  3. アプリの権限レベルを選択します。

    • 参照可能: Genieスペースの構成とメタデータを読み取る権限をアプリに付与します。
    • 実行可能: Genieスペースにクエリを送信し、応答を受信する権限をアプリに付与します。
    • 編集可能: アプリにGenie Spaceの設定を変更するための権限を付与します。
    • 管理可能: アプリにGenieスペースへの完全な管理アクセス権を付与します。
  4. (オプション)カスタムリソースキーを指定します。これは、アプリ構成でGenie Spaceを参照する方法です。デフォルトのキーはgenie-spaceです。

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

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

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

環境変数

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

構成例:

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

アプリケーションでスペース ID を使用する:

Python
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 スペースを他のアプリのリソースと組み合わせる

Genieスペースを他のDatabricksアプリと組み合わせて、より洗練されたデータアプリケーションを作成します。一般的な統合パターンには、次のものがあります。

自然言語アナリティクスダッシュボード

インタラクティブ分析を実行するために以下のリソースを使用:

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

構成例:

YAML
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 Genieスペースに対して
  • CAN USE SQLウェアハウス上(Genie Spaceとは別のものを使用している場合)
  • CAN QUERY モデルサービングエンドポイント
  • USE CATALOG 関連する Unity Catalog オブジェクトのUSE SCHEMA
  • SELECT テーブルでは、アプリが直接クエリを実行します

ベストプラクティス

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

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