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

Databricks Apps を使用してチャット UI を構築および共有する

Databricks Apps を使用して、エージェントのチャット UI を構築およびデプロイします。エージェント アプリ Templateには、追加設定なしでこのチャット UI が含まれています。このページを使用して、Template UI をカスタマイズするか、Template なしでデプロイされたエージェントにチャット 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を参照してください。

このサンプルアプリは次のことを示しています:

  • ストリーミング出力 :エージェントの応答が生成されるときに表示され、非ストリーミングモードへの自動fallbackを備えています。

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

  • Databricks Agentと基盤モデルの統合 :基盤モデル、Databricks AgentサービングEndpoint、Knowledge Assistant、およびSupervisor Agentへの直接接続。

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

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

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

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

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

defaultでは、会話はメモリにのみ保存され、セッションが終了すると失われます。PostgreSQLに履歴を保持するには、TemplateのREADME.mdで説明されているクイックスタートスクリプトを実行します。

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

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

ユーザーは応答について「役に立つ/役に立たない」フィードバックを提供でき、これはMLflowエクスペリメントに記録されます。

もし、agent-openai-agents-sdkagent-langgraphのようなエージェントTemplateを使用している場合、バンドルは、ユーザーフィードバックをMLflowエクスペリメントに書き込むようにアプリの認証を自動的に構成します。フィードバックは、databricks bundle deploy の後に余分なステップなしで機能します。

スタンドアロンのe2e-chatbot-app-nextが既存のAgent Endpointを指すように設定されている場合は、TemplateのREADME.mdに記載されているクイックスタートスクリプトを実行して、MLflowエクスペリメントの認証を構成します。

注記

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

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

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

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

  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.

一部のサービングEndpointでは、アプリのService Principalトークンではなく、ユーザーのアクセストークンを転送する必要があります。これはユーザー認可と呼ばれ、 ユーザー代理認証 とも呼ばれます。

スーパーバイザーエージェントEndpointは常にユーザー認証を必要とします。カスタムモデルサービングEndpointも、Endpointの認証ポリシーにAPIスコープが構成されている場合にユーザー認証を必要とします。

e2e-chatbot-app-next Templateは、設定されたServing Endpointがユーザー認証を必要とするかどうかを自動的に検出します。アプリに必要なスコープが不足している場合、不足しているスコープを一覧表示する警告バナーが表示されます。

ユーザー認証を構成するには、Databricks UI でアプリを作成または編集する際に、必要なスコープを追加してください:

  1. リソースの構成 ステップで、 ユーザー認証 の下にある「+スコープの追加」をクリックします。
  2. model-serving スコープを追加します。このスコープは、ユーザー認証を使用するすべての Endpoint で必要です。
  3. Endpointの認証ポリシーに記載されている追加のスコープを追加します。

詳細な手順については、アプリにスコープを追加するをご覧ください。

スコープを追加または変更した後、アプリのURLのCookieをクリアする必要があります。それ以外の場合、セッションは以前のスコープを使い続けます:

  1. アプリのURLへ移動します。
  2. ChromeでDevToolsを開きます(macOSでは F12Cmd+Option+I 、またはWindowsまたはLinuxでは Ctrl+Shift+I )。
  3. Application tab」を開き、「 ストレージ 」>「 Cookie 」の下にあるアプリのURLを選択します。次に、各Cookieを右クリックして「 削除 」を選択します。以下に示すとおりです。

スコープの変更後にブラウザのCookieをクリアする

スコープを追加または変更すると、変更はすぐに有効になり、アプリを再起動する必要はありません。ただし、ブラウザセッションは変更前に発行されたトークンを再利用するため、テストする前にアプリURLのCookieをクリアしてください。そうしないと、セッションは以前のスコープを使い続けます。

Chrome DevTools では、「アプリケーション」tab、アプリケーションURLのCookie、および右クリックの「削除」メニューが表示されます。

アプリを共有します

ユーザーにアプリの表示権限を付与し (Databricks アプリの権限を構成するを参照)、アプリの URL を共有してください。

既知の制限事項

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

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

以前の Streamlit Template であるe2e-chatbot-appはまだ利用可能ですが、e2e-chatbot-app-nextの本番運用機能はありません。