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

Databricks Apps でチャット UI を構築して共有する

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

デプロイされたエージェントとチャットするためのチャットUIの例。

必要条件

このチャット UI は、以下の従来のスキーマを除くすべての Databricks エージェントで動作します。

次の開発ツールが必要です。

  • NPM CLI : ローカル開発に必要です。GitHub - NPM CLI を参照

  • Databricks CLI : 認証に必要です。インストール ガイドを参照してください。

    1. Databricks CLI をインストールします。

    2. プロフィール名を設定してください:

      Bash
      export DATABRICKS_CONFIG_PROFILE='your_profile_name'
    3. 認証を設定します。

      Bash
      databricks auth login --profile "$DATABRICKS_CONFIG_PROFILE"

チャットアプリケーションの例

サンプルアプリe2e-chatbot-app-nextは、NextJSReact、およびAI SDK使用して、本番運用可能なチャット インターフェイスを構築します。

テンプレートの使用方法の詳細については、プロジェクトのREADME.mdを参照してください。

サンプル アプリでは次のことが示されています。

  • ストリーミング出力 : 非ストリーミング モードへの自動フォールバックを使用して生成されるエージェント応答を表示します。

  • ツール呼び出し :エージェント フレームワークのベスト プラクティスを使用して作成されたエージェントのツール呼び出しをレンダリングします。

  • Databricks Agent と基盤モデルの統合 : エンドポイントを提供する基盤モデルおよびDatabricks Agent への直接接続

  • Databricks 認証 : Databricks 認証を使用して、チャット アプリのエンド ユーザーを識別し、会話を安全に管理します。

  • 永続的なチャット履歴 : 完全なガバナンスを備えた Databricks Lakebase (Postgres) に会話を保存します

オプション機能を有効にするには、次のセクションを開きます。

ユーザーフィードバックを有効にする

ユーザーフィードバックを有効にする

ユーザーは、回答に対して賛成/反対のフィードバックを提供でき、それがMLflowエクスペリメントに記録されます。

agent-openai-agents-sdkagent-langgraphなどのエージェント テンプレートを使用している場合、バンドルはアプリがユーザー フィードバックをMLflowエクスペリメントに書き込むための認証を自動的に構成します。 フィードバックはdatabricks bundle deploy以降、追加のステップなしで機能します。

既存のエージェント エンドポイントを指すスタンドアロンのe2e-chatbot-app-nextを使用している場合は、テンプレートREADME.mdに記載されているクイックスタート スクリプトを実行して、 MLflowエクスペリメントの認証を構成します。

同じデータベースインスタンスで複数のアプリをホストする

同じデータベースインスタンスで複数のアプリをホストする

この例では、アプリ コードがデータベース インスタンス内の固定のai_chatbotスキーマをターゲットにしているため、アプリごとに 1 つのデータベースのみが作成されます。同じインスタンスから複数のアプリをホストするには、次の手順を実行する必要があります。

  1. databricks.yml内のデータベース インスタンス名を更新します。
  2. コードベース内のai_chatbotへの参照を、既存のデータベース インスタンス内の新しい目的のスキーマ名に更新します。
  3. npm run db:generateを実行してデータベースの移行を再生成します。
  4. アプリをデプロイします。

ユーザー認証を有効にする(パブリックプレビュー)

ユーザー認証を有効にする

備考

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でアプリを作成または編集する際に、必要なスコープを追加します。

  1. [Configure リソース ] の [ User authorization] で、 [+Addscope] をクリックします。
  2. serving.serving-endpointsスコープを追加します。このスコープは、ユーザー認証を使用するすべてのエンドポイントに必要です。
  3. エンドポイントの認証ポリシーに記載されている追加のスコープをすべて追加してください。

詳細な手順については、 「アプリにスコープを追加する」を参照してください。

e2e-chatbot-app-nextテンプレートは、設定されたサービス提供エンドポイントがユーザー認証を必要とするかどうかを自動的に検出します。アプリに必要なスコープが不足している場合、不足しているスコープを一覧表示する警告バナーが表示されます。

アプリを共有する

ユーザーにアプリを表示する権限を付与し ( 「Databricks アプリの権限を構成する」を参照)、アプリの URL を共有します。

既知の制限事項

  • 画像やその他のマルチモーダル入力はサポートされていません
  • このアプリは、 Databricks CLI認証 (ローカル開発) とサービスプリンパルシ認証 (デプロイされたアプリ) のみをサポートします。 PAT、Azure マネージド ID、およびその他のメカニズムはサポートされていません。
  • Unity Catalog関数スコープは、ユーザー認証にはサポートされていません。

Streamlitエージェントチャットアプリ

以前の Streamlit テンプレートe2e-chatbot-app も引き続き使用できますが、 e2e-chatbot-app-nextの機能が欠けています。