使用 Databricks Apps 建置和共用聊天 UI

使用 Databricks Apps 為你的客服建立並部署聊天介面。 經紀人應用程式範本包含 這個聊天介面,無需額外設定。 使用此頁面自訂範本介面,或為未使用範本的代理新增聊天介面。

與已部署的代理程式聊天的範例聊天UI。

Requirements

此聊天介面可支援任何 Azure Databricks 代理,但不支援 舊有架構,包括:

  • 具備聊天任務類型的基礎模型端點

您必須擁有下列開發工具:

  • NPM CLI:本地開發所需。 請參見 GitHub - NPM CLI

  • Databricks CLI:驗證的必要條件,請參閱 安裝指南

    1. 安裝 Databricks CLI。
    2. 設定您的個人資料名稱:
      export DATABRICKS_CONFIG_PROFILE='your_profile_name'
      
    3. 設定驗證:
      databricks auth login --profile "$DATABRICKS_CONFIG_PROFILE"
      
      

聊天應用程式範例

範例應用程式 e2e-chatbot-app-next 使用 NextJSReactAI SDK 來建置生產就緒的聊天介面。

請參閱專案 README.md ,以取得如何使用範本的詳細指示。

範例應用程式示範下列內容:

  • 串流輸出:顯示客服人員產生的回應,並自動回退到非串流模式
  • 工具呼叫:顯示依照 自訂代理程式最佳做法 撰寫之代理程式的工具呼叫
  • Databricks 代理與基礎模型整合:直接連接基礎模型、Databricks 代理服務端點、 知識助理監督代理
  • Databricks 驗證:使用 Databricks 驗證來識別聊天應用程式的終端使用者,並安全地管理其交談。
  • 持續聊天記錄:將對話儲存在 Databricks Lakebase (Postgres) 中,並具有完整的治理

請開啟以下區塊以啟用可選功能:

啟用聊天紀錄

啟用聊天紀錄

預設情況下,對話僅儲存在記憶體中,會話結束時遺失。 要在 PostgreSQL 中持久保存歷史,請執行範本 README.md 中描述的快速啟動腳本。

啟用使用者回饋

啟用使用者回饋

使用者可以對回應給予讚好或不滿意的回饋,這些回饋會被記錄在 MLflow 實驗中。

如果你使用代理範本,如 agent-openai-agents-sdkagent-langgraph,套件會自動設定應用程式的認證,讓應用程式將使用者回饋寫入 MLflow 實驗。 回饋會在 databricks bundle deploy 後生效,無需額外步驟。

如果你使用一個指向現有代理端點的獨立應用程式 e2e-chatbot-app-next,請執行範本 README.md 中描述的快速入門腳本,來配置 MLflow 實驗的認證。

Note

另外,綁定一個 Lakebase 資料庫,以便在頁面重新載入後,持續保留按讚/按倒讚的狀態。 請參見 啟用聊天紀錄

在同一個資料庫實例上架設多個應用程式

在相同的資料庫執行個體上裝載多個應用程式

這個範例每個應用程式只建立一個資料庫,因為應用程式程式碼針對資料庫實例中的固定 ai_chatbot 結構。 若要從相同的執行個體託管多個應用程式,您必須執行下列動作:

  1. 更新 databricks.yml中的資料庫執行個體名稱。
  2. 將程式碼庫中的參考 ai_chatbot 更新為現有資料庫執行個體中所需的新結構描述名稱。
  3. 執行 npm run db:generate 以重新生成資料庫遷移。
  4. 部署應用程式。
啟用使用者授權(公開預覽版)

啟用使用者授權

Important

使用者授權處於 公開預覽狀態。 你的工作區管理員必須先啟用它,才能設定應用程式的使用者授權。

部分服務端會要求應用程式轉發使用者的存取權杖,而非應用程式的服務主體權杖。 這稱為 使用者授權,有時也稱為 使用者代授權

監督代理端點總是需要使用者授權。 當端點在其認證政策中有設定 API 範圍時,自訂模型服務端點也需要使用者授權。

e2e-chatbot-app-next 範本會自動偵測已設定的服務端點是否需要使用者授權。 如果應用程式缺少必要的範圍,會顯示一個警告橫幅,列出缺少的範圍。

要設定使用者授權,請在 Azure Databricks 介面中建立或編輯應用程式時,新增所需的範圍:

  1. 「配置資源 」步驟中,在 使用者授權下,點選 +Add 範圍
  2. 加裝 model-serving 瞄準鏡。 此範圍對所有使用使用者授權的端點皆為必要。
  3. 新增端點認證政策中列出的任何額外範圍。

詳細說明請參見 「在應用程式中新增示波器」。

新增或更改範圍後,必須清除應用程式網址的 Cookie。 否則,工作階段將繼續使用先前的範圍:

  1. 前往應用程式的網址。
  2. 在 Chrome 中,開啟 DevTools(在 macOS 上按 F12,或按 Cmd+Option+I,在 Windows 或 Linux 上按 Ctrl+Shift+I)。
  3. 打開 應用程式 標籤,在 儲存>Cookies 中選擇你應用程式的網址,然後右鍵點擊每個 Cookie,選擇 刪除,如下所示。

變更範圍後清除瀏覽器 Cookie

新增或更改範圍後,變更會立即生效,應用程式不需要重新啟動。 不過,你的瀏覽器會重複使用變更前發出的憑證,所以在測試前清除應用程式網址的 Cookie。 否則工作階段會持續使用先前的權限範圍。

Chrome DevTools 顯示了「Application」分頁、某個應用程式 URL 的 Cookie,以及右鍵點擊後顯示的「Delete」選單。

共用應用程式

授權使用者查看該應用程式(參見 Databricks 應用程式的權限設定),然後分享應用程式的網址。

已知的限制

  • 不支援影像或其他多模態輸入
  • 此應用程式僅支援 Databricks 的 CLI 認證(本地開發)和服務主體認證(已部署的應用程式)。 PAT、Azure 管理身份及其他機制均不被支援。
  • Unity 目錄的功能範圍不支援使用者授權。

Streamlit 代理聊天應用程式

先前的 Streamlit 範本 e2e-chatbot-app 仍然可用,但缺少 e2e-chatbot-app-next 的生產功能。