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

DatabricksアプリにGenieエージェントリソースを追加する

アプリケーションで自然言語クエリを有効にするために、Databricks AppsのリソースとしてGenieエージェントを追加します。Genieエージェントは、データ探索のための会話型インターフェイスを提供し、ユーザーが平易な英語でビジネス上の質問を行い、キュレートされたデータセットからSQLベースの知見を受け取ることができます。

Genieエージェントをリソースとして追加すると、アプリは次のことが可能になります。

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

Genieエージェントリソースを追加します

Genieエージェントをリソースとして追加する前に、アプリのリソースの前提条件を確認してください。

  1. アプリの作成または編集時に、 App リソース セクションで、 + リソースの追加 > Genieエージェント をクリックします。

  2. ワークスペース内の利用可能なスペースのリストからGenieエージェントを選択します。

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

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

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

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

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

環境変数

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

構成例:

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 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 キーを格納します

構成例:

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エージェント: 初期クエリとデータコンテキストを生成します
  • モデルサービングエンドポイント: AIが生成した要約と推奨事項を返却します
  • SQLウェアハウス: 複雑な分析クエリを実行します

サービスプリンシパルの権限

アプリのサービスプリンシパルに、他のアプリのリソースと統合する場合に次の権限を付与します:

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

ベストプラクティス

Genie Agentリソースを操作する際は、これらのベストプラクティスに従ってください:

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