Databricks AppsでチャットUIを構築して共有
Databricks Appsを使用して、エージェント用のチャットUIを構築およびデプロイします。エージェントアプリのテンプレートには、追加のセットアップなしでこのチャットUIが含まれています。このページを使用して、テンプレートUIをカスタマイズするか、テンプレートなしでデプロイされたエージェントにチャットUIを追加します。

要件
このチャットUIは、レガシースキーマを除き、あらゆるDatabricksエージェントで動作します。以下を含みます。
-
Model Servingにデプロイされたエージェントで、 チャット または 応答 タスクタイプを使用する
以下の開発ツールが必要です:
-
**NPM CLI**:ローカル開発に必要です。 GitHub - NPM CLIを参照してください。
-
Databricks CLI :認証にはDatabricks CLI が必要です。 インストールガイド を参照してください。
-
Databricks CLIをインストールします。
-
プロファイル名を設定してください:
Bashexport DATABRICKS_CONFIG_PROFILE='your_profile_name' -
認証を構成します:
Bashdatabricks auth login --profile "$DATABRICKS_CONFIG_PROFILE"
-
チャットアプリケーションの例
サンプルアプリe2e-chatbot-app-nextは、NextJS、React、およびAI SDK使用して、本番運用可能なチャット インターフェイスを構築します。
テンプレートの使用方法の詳細については、プロジェクトのREADME.mdを参照してください。
このサンプルアプリは、次の事項を示しています:
-
ストリーミング出力:エージェントの応答が生成されるにつれて表示され、非ストリーミングモードへの自動フォールバック機能付き。
-
ツール呼び出し :カスタムエージェントのベストプラクティスを使用して作成されたエージェントのツール呼び出しをレンダリングします。
-
**Databricks Agent と基盤モデルの統合**: 基盤モデルと Databricks Agent サービングエンドポイントへの直接接続
-
Databricks認証 : Databricks認証を使用してチャットアプリのエンドユーザーを識別し、会話を安全に管理します。
-
**永続的なチャット履歴**: 会話をDatabricks Lakebase (Postgres) に完全なガバナンスとともに保存します。
オプション機能を有効にするには、以下のセクションを開いてください。
ユーザーフィードバックを有効にします。
ユーザーフィードバックの有効化
ユーザーは応答に対して賛成/反対のフィードバックを提供でき、それはMLflowエクスペリメントに記録されます。
「agent-openai-agents-sdk」や「agent-langgraph」などのエージェントテンプレートを使用している場合、バンドルは、アプリがユーザーフィードバックをMLflowエクスペリメントに書き込むための認証を自動的に構成します。フィードバックはdatabricks bundle deploy以降に機能し、追加のステップは不要です。
既存のエージェントエンドポイントを指すスタンドアロンのe2e-chatbot-app-nextを使用している場合は、MLflowエクスペリメントの認証を構成するために、テンプレートREADME.mdで説明されているクイックスタートスクリプトを実行します。
同じデータベースインスタンスで複数のアプリをホストする
同じデータベースインスタンスで複数のアプリをホスト
この例では、アプリケーション コードがデータベース インスタンス内の固定のai_chatbotスキーマを対象としているため、アプリごとに1つのデータベースのみを作成します。同じインスタンスで複数のアプリをホストするには、次の手順を実行する必要があります。
databricks.ymlでデータベースインスタンス名を更新します。- コードベース内の
ai_chatbotへの参照を、既存のデータベースインスタンス内の新しい希望のスキーマ名に更新します。 npm run db:generateを実行してデータベースのマイグレーションを再生成します。- アプリをデプロイします。
ユーザー認証を有効にする(パブリックプレビュー)
ユーザー認証を有効にする
Preview
User authorization is in Public Preview. Your workspace admin must enable it before you can configure user authorization for your app.
一部のサービングエンドポイントでは、アプリのサービスプリンシパルトークンではなく、ユーザーのアクセストークンを転送する必要があります。これはユーザー認証と呼ばれ、 ユーザー代理認証 とも呼ばれます。
カスタムモデルサービングエンドポイントには、エンドポイントの認証ポリシーにAPIスコープが構成されている場合、ユーザー認証が必要です。
ユーザー認可を構成するには、Databricks UIでアプリを作成または編集する際に必要なスコープを追加します:
- リソースの構成 ステップで、 ユーザー認証 の下で、 +スコープの追加 をクリックします。
serving.serving-endpointsスコープを追加します。このスコープは、ユーザー認証を使用するすべてのエンドポイントで必要です。- エンドポイントの認証ポリシーにリストされている追加のスコープを追加します。
詳細な手順については、アプリにスコープを追加するを参照してください。
e2e-chatbot-app-next テンプレートは、構成されたサービングエンドポイントがユーザー認証を必要とするかどうかを自動的に検出します。アプリに必要なスコープが不足している場合、不足しているスコープが一覧表示された警告バナーが表示されます。
アプリを共有する
ユーザーにアプリを表示するアクセス許可を付与し(Databricks アプリのアクセス許可を構成するを参照)、アプリの URL を共有します。
既知の制限事項
- 画像やその他のマルチモーダル入力はサポートされていません
- このアプリは、Databricks CLI 認証(ローカル開発)とサービスプリンシパル認証(デプロイ済みアプリ)のみをサポートしています。PAT、Azure マネージド ID、およびその他のメカニズムはサポートされていません。
- Unity Catalog の関数スコープは、ユーザー認証ではサポートされていません。
Streamlitエージェントチャットアプリ
以前のStreamlitテンプレートであるe2e-chatbot-appは引き続き利用可能ですが、e2e-chatbot-app-nextの本番運用機能はありません。