Agent Assist 後端模組基本資訊

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 整合功能包含下列服務,這些服務有各自適用的價格和配額限制。

後續步驟

如要進一步瞭解如何開始使用這個整合方法,請參閱後端模組安裝指南