Agent Assist 现在提供后端模块,这是一种开箱即用的选项,可将 Agent Assist 集成到您的系统中。后端模块包括 Cloud Pub/Sub 拦截器服务和界面连接器服务。拦截器使用 Cloud Pub/Sub 主题处理来自 Dialogflow 的功能相关事件通知,然后界面连接器将这些通知推送到客服助理桌面界面。界面连接器还支持来自客服人员桌面的反馈信号,并将其发送到 Dialogflow。
后端模块结构
后端模块组件
后端模块需要以下 Google 产品才能将 Agent Assist 集成到您的系统中:
- Cloud Pub/Sub
- Cloud Pub/Sub 拦截器
- Memorystore for Redis
- 界面连接器
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 渠道,具体取决于对话名称和界面连接器服务器 ID。渠道格式为
{connector_id}:{conversation_name}
。
Redis
Redis 使用 Memorystore for Redis 执行以下操作:
- 在映射
<conversation_name, connector_id>
中记录每个对话的界面连接器服务器 ID 信息。 - 使用 Redis Pub/Sub 机制将 Cloud Pub/Sub 拦截器发布的事件通知转发到相应的界面连接器服务器。
界面连接器
界面连接器是一个应用,用于公开 RESTful Dialogflow API 代理和 SocketIO WebSocket 端点,以流式传输来自 Agent Assist 的 Dialogflow 消息。界面连接器部署在 Cloud Run 上。WebSocket 连接是有状态的,因此代理桌面会在连接期间与 Cloud Run 上的同一容器保持连接。因此,每个界面连接器服务器都会处理不同的对话,并针对其处理的对话订阅不同的 Redis Pub/Sub 渠道 ({connector_id}:*
)。每个界面连接器服务器的任务:
- 支持为代理桌面自定义身份验证方法。
- 在对代理桌面的自定义令牌进行身份验证后,生成临时 JWT。当它们向 Dialogflow API 或 WebSocket 连接发送请求时,界面连接器会验证附加的 JWT,而不是检查原始代理令牌。
- 根据给定的对话名称,与已通过身份验证的客服人员桌面建立 SocketIO WebSocket 连接。
- 针对其处理的对话,将事件消息订阅到 Redis Pub/Sub 渠道。
- 在收到 Agent Assist 事件时将其推送到桌面界面。
Secret Manager
界面连接器需要 JWT 密钥才能为已验证身份的代理桌面生成临时 JWT。此密钥存储在 Secret Manager 中。
目录
以下是代码库目录结构的概述。如果您无法访问代码库,请与您的 Google 代表联系以获取权限。
. ├── cloud-pubsub-interceptor │ ├── Dockerfile: Builds Docker image for Cloud Pub/Sub interceptor deployment on Cloud Run. │ ├── main.py: A starter for flask app. │ ├── requirements.txt │ └── unit_test.py: Unit test code for Cloud Pub/Sub interceptor. └── ui-connector ├── auth.py: Handles JWT validation and registration. ├── config.py: Configures variables about authentication, logging and CORS origins. ├── dialogflow.py: Includes Dialogflow utilities for handling conversations at runtime. ├── Dockerfile: Builds Docker image for UI connector deployment on Cloud Run. ├── main.py: A starter for flask app. ├── requirements.txt ├── templates │ └── index.html: A simple interactive demo. └── unit_test.py: Unit test code for UI connector.
后续步骤
如需详细了解如何开始使用此集成方法,请参阅后端模块安装指南。