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

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への直接接続

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

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

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

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

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

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

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

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

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

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

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

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

カスタムモデルサービング Endpoint では、Endpoint の auth policy に API scopes が構成されている場合、ユーザー認証が必要です。

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を右クリックして「 削除 」を選択します。以下に示すとおりです。

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の本番運用機能はありません。