DatabricksアプリにGenieエージェントリソースを追加する
アプリケーションで自然言語クエリを有効にするために、Databricks AppsのリソースとしてGenieエージェントを追加します。Genieエージェントは、データ探索のための会話型インターフェイスを提供し、ユーザーが平易な英語でビジネス上の質問を行い、キュレートされたデータセットからSQLベースの知見を受け取ることができます。
Genieエージェントをリソースとして追加すると、アプリは次のことが可能になります。
- ユーザーからの自然言語クエリをSQLに変換する
- 事前構成されたビジネスコンテキストとメタデータへのアクセス
- キュレーションされたサンプル クエリとデータ定義を使用する
- 組織のデータセットに基づいて応答を生成する
Genieエージェントリソースを追加します
Genieエージェントをリソースとして追加する前に、アプリのリソースの前提条件を確認してください。
-
アプリの作成または編集時に、 App リソース セクションで、 + リソースの追加 > Genieエージェント をクリックします。
-
ワークスペース内の利用可能なスペースのリストからGenieエージェントを選択します。
-
アプリの権限レベルを選択します。
- 参照可能: Genieエージェントの構成とメタデータを読み取るアクセス許可をアプリに付与します。
- 実行可能: アプリにGenieエージェントにクエリを送信し、応答を受信する権限を付与します。
- 編集可能: アプリにGenie Agentの構成を変更する権限を付与します。
- **管理可能:** アプリにGenieエージェントへの完全な管理アクセス権を付与します。
-
(オプション)カスタムリソースキーを指定します。これは、アプリ設定でGenieエージェントを参照する方法です。デフォルトキーは
genie-spaceです。
Genie Agent リソースを追加する場合:
- Databricksは、選択したGenieエージェントに対して、アプリのサービスプリンシパルに指定された権限を付与します。
- アプリは自然言語クエリをエージェントに送信し、SQLクエリと結果を含む構造化された応答を受け取ることができます。
- このアプリは、エージェントが厳選したビジネスコンテキストに、メタデータ、サンプルクエリ、データ定義などを含めてアクセスします。
- アクセスは、選択されたAgentにのみ限定されます。アプリは、他のGenie Agentを別のリソースとして追加しない限りアクセスできません。
アプリのサービスプリンシパルには、Genieエージェントがクエリを実行する基になるデータソースに対する適切な権限も必要です。これには通常、関連するUnity Catalogテーブルおよびビューに対するUSE CATALOG、USE SCHEMA、およびSELECTの権限が含まれます。
環境変数
Genieエージェントリソースを含むアプリをデプロイすると、Databricksはapp.yaml構成のvalueFromフィールドを使用して参照できる環境変数を介してスペース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 Agent 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エージェントリソースを削除する
アプリからGenieエージェントリソースを削除すると、アプリのサービスプリンシパルはエージェントにアクセスできなくなります。Genieエージェント自体は変更されず、適切な権限を持つ他のユーザーおよびアプリケーションが引き続き利用できます。
Genie Agentを他のアプリリソースと組み合わせる
Genieエージェントを他のDatabricks Appsのリソースと組み合わせて、より洗練されたデータアプリケーションを作成します。一般的な統合パターンには、次のものがあります。
自然言語アナリティクスダッシュボード
インタラクティブ分析を実行するために以下のリソースを使用:
- Genieエージェント: ユーザーの質問を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エージェント: 初期クエリとデータコンテキストを生成します
- モデルサービングエンドポイント: AIが生成した要約と推奨事項を返却します
- SQLウェアハウス: 複雑な分析クエリを実行します
サービスプリンシパルの権限
アプリのサービスプリンシパルに、他のアプリのリソースと統合する場合に次の権限を付与します:
CAN RUNGenieエージェントでCAN USESQLウェアハウス上(Genieエージェントとは別のものを使用している場合)CAN QUERYモデルサービングエンドポイントUSE CATALOG関連する Unity Catalog オブジェクトのUSE SCHEMASELECTテーブルでは、アプリが直接クエリを実行します
ベストプラクティス
Genie Agentリソースを操作する際は、これらのベストプラクティスに従ってください:
- 最小限の権限を付与します。アプリが機能するために必要な特定のGenieエージェントにのみアクセスを許可してください。
- 自然言語クエリ応答の品質を向上させるには、Genieエージェントに適切にキュレーションされたデータセットとメタデータが含まれていることを確認してください。
- Genie Agentに対してアプリのクエリをテストし、想定されるユーザーの質問に対して正確な結果を生成できることを検証します。
- Genieエージェントを使用してクエリのパフォーマンスをモニタリングし、アプリのインタラクションパターンを調整して応答時間を最適化します。
- Genieエージェントがユーザーのクエリを効果的に解釈または応答できないケースに対するエラー処理を実装してください。