Agent Assist 現在提供後端模組,可做為將 Agent Assist 整合至系統的現成選項。後端模組包括 Cloud Pub/Sub 攔截器服務和 UI 連接器服務。攔截器會使用 Cloud Pub/Sub 主題處理 Dialogflow 的功能相關事件通知,然後 UI 連接器會將這些通知推送至客服人員桌面 UI。使用者介面連接器也支援來自服務專員電腦的意見回饋信號,並將其傳送至 Dialogflow。
後端模組結構
後端模組元件
後端模組需要下列 Google 產品,才能將 Agent Assist 整合至系統:
- Cloud Pub/Sub
- Cloud Pub/Sub 攔截器
- Memorystore for Redis
- UI 連接器
Cloud Pub/Sub
Cloud Pub/Sub 主題是在對話設定檔中設定。
Agent Assist 隨後會將建議、新訊息、新辨識結果通知和對話生命週期相關事件發布至主題。建議格式為 HumanAgentAssistantEvent
,新訊息和對話生命週期事件的格式則為 ConversationEvent
。針對每個對話設定檔,這四種事件訊息會發布至不同主題。舉例來說,對話生命週期事件訊息可能是 {"conversation":"projects/your-project-id/locations/global/conversations/your-conversation-id","type":"CONVERSATION_STARTED"}
,表示對話開始。
Cloud Pub/Sub 攔截器
Cloud Pub/Sub 攔截器會部署在 Cloud Run 上。 這個 Cloud Run 服務的每個容器執行個體 (伺服器) 功能都相同,包括:
- 使用 HTTP 要求處理 Cloud Pub/Sub 主題發布的事件訊息。
- 將收到的訊息發布至 Redis Pub/Sub 管道,且訊息會專屬於對話名稱和 UI 連接器伺服器 ID。管道格式為
{connector_id}:{conversation_name}
。
Redis
Redis 會使用 Memorystore for Redis 執行下列操作:
- 在對應
<conversation_name, connector_id>
中,記錄每項對話的 UI 連接器伺服器 ID 資訊。 - 使用 Redis Pub/Sub 機制,將 Cloud Pub/Sub 攔截器發布的事件通知轉送至對應的 UI 連接器伺服器。
UI 連接器
UI 連接器是應用程式,可公開 RESTful Dialogflow API Proxy 和 SocketIO WebSocket 端點,串流處理來自 Agent Assist 的 Dialogflow 訊息。UI 連接器部署於 Cloud Run。
由於 WebSocket 連線是有狀態的,因此在連線的整個生命週期內,客服人員桌面都會保持連線至 Cloud Run 上的相同容器。因此,每個 UI 連接器伺服器都會處理不同的對話,並訂閱其處理對話的專屬 Redis Pub/Sub 管道 ({connector_id}:*
)。每個 UI 連接器伺服器的工作:
- 支援代理商電腦的自訂驗證方法。
- 驗證代理程式桌面的自訂權杖後,產生暫時性 JWT。當使用者向 Dialogflow API 或 WebSocket 連線傳送要求時,UI 連接器會驗證附加的 JWT,而不是檢查原始代理程式權杖。
- 根據指定的對話名稱,與已驗證的代理程式桌面建立 SocketIO WebSocket 連線。
- 為處理的對話訂閱 Redis Pub/Sub 管道的事件訊息。
- 收到 Agent Assist 事件時,會將事件推送至電腦版 UI。
Secret Manager
使用者介面連接器需要 JWT 私密金鑰,才能為已通過驗證的服務專員桌面產生臨時 JWT。這組私密金鑰會儲存在 Secret Manager 中。
目錄
以下是程式碼存放區中的目錄結構大綱。 如果無法存取存放區,請與 Google 代表聯絡以取得權限。
. ├── cloud-pubsub-interceptor │ ├── Dockerfile: Docker-image creation for Cloud Pub/Sub Interceptor deployment on Cloud Run │ ├── main.py: A starter for flask app │ ├── requirements.txt: Python packages for running Cloud Pub/Sub Interceptor service │ └── unit_test.py: Unit test code for Cloud Pub/Sub Interceptor ├── cloudbuild.yaml: An example configuration file for Cloud Build ├── deploy.sh: An automated deployment script ├── images ├── readme.md └── ui-connector ├── Dockerfile: Builds Docker image for UI Connector deployment on Cloud Run ├── auth.py: JWT validation and registration handling ├── auth_options.py: Support for authentication through different identity providers ├── config.py: Configuration for variables about authentication, logging, and CORS origins ├── dialogflow.py: With Dialogflow utilities for runtime-conversation handling ├── main.py: A starter for flask app ├── requirements.txt: Python packages for running UI Connector ├── templates │ └── index.html: A simple interactive demo └── unit_test.py: Unit test code for UI Connector
定價與配額
Agent Assist 整合功能包含下列服務,這些服務有各自適用的價格和配額限制。
後續步驟
如要進一步瞭解如何開始使用這個整合方法,請參閱後端模組安裝指南。