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

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

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

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

要件

このチャットUIは、レガシースキーマを除き、あらゆるDatabricksエージェントで動作します。以下を含みます。

以下の開発ツールが必要です:

  • **NPM CLI**:ローカル開発に必要です。 GitHub - NPM CLIを参照してください。

  • Databricks 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サービングエンドポイント、Knowledge Assistant、およびSupervisor Agentへの直接接続。

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

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

オプション機能を有効にするには、以下のセクションを開いてください。

チャット履歴を有効にする

チャット履歴を有効にする

デフォルトでは、会話はメモリにのみ保存され、セッションが終了すると失われます。PostgreSQLに履歴を永続化するには、テンプレートのREADME.mdに記載されているクイックスタートスクリプトを実行してください。

ユーザーフィードバックを有効にします。

ユーザーフィードバックの有効化

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

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

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

注記

Also bind a Lakebase database to persist the thumbs up/down state across page reloads. See Enable chat history.

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

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

この例では、アプリケーション コードがデータベース インスタンス内の固定の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. リソースの構成 ステップで、 ユーザー認証 の下で、 +スコープの追加 をクリックします。
  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の本番運用機能はありません。