Agent Assist 后端模块基础知识

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.

后续步骤

如需详细了解如何开始使用此集成方法,请参阅后端模块安装指南