Agent Assist ahora ofrece módulos de backend, una opción lista para usar para integrar Agent Assist en tu sistema. Los módulos de backend incluyen un servicio de interceptor de Cloud Pub/Sub y un servicio de conector de IU. El interceptor procesa las notificaciones de eventos relacionados con las funciones de Dialogflow mediante temas de Cloud Pub/Sub y, luego, el conector de la IU las envía a la IU de escritorio del agente. Los conectores de IU también admiten indicadores de comentarios desde el escritorio del agente y los envían a Dialogflow.
Estructura de los módulos de backend
Componentes del módulo de backend
Los módulos de backend requieren los siguientes productos de Google para integrar Agent Assist en tu sistema:
- Cloud Pub/Sub
- Interceptor de Cloud Pub/Sub
- Memorystore for Redis
- Conector de la IU
Cloud Pub/Sub
Los temas de Cloud Pub/Sub se configuran en los perfiles de conversación.
Luego, Agent Assist publicará sugerencias, mensajes nuevos, notificaciones de resultados de reconocimiento nuevos y eventos relacionados con el ciclo de vida de la conversación en el tema. Las sugerencias tienen el formato HumanAgentAssistantEvent
, y los mensajes nuevos y los eventos del ciclo de vida de la conversación tienen el formato ConversationEvent
.
Para cada perfil de conversación, estos cuatro tipos de mensajes de eventos se publican
en temas diferentes. Por ejemplo, un mensaje de evento del ciclo de vida de una conversación podría ser {"conversation":"projects/your-project-id/locations/global/conversations/your-conversation-id","type":"CONVERSATION_STARTED"}
, que indica el inicio de una conversación.
Interceptor de Cloud Pub/Sub
El interceptor de Cloud Pub/Sub se implementa en Cloud Run. La funcionalidad de cada instancia de contenedor (servidor) de este servicio de Cloud Run es idéntica a la de cada otra instancia, lo que incluye lo siguiente:
- Procesa los mensajes de eventos publicados por los temas de Cloud Pub/Sub con solicitudes HTTP.
- Publica los mensajes recibidos en los canales de Pub/Sub de Redis, específicos del
nombre de la conversación y el ID del servidor del conector de la IU. El formato del canal es
{connector_id}:{conversation_name}
.
Redis
Redis usa Memorystore para Redis para hacer lo siguiente:
- Registra la información del ID del servidor del conector de la IU para cada conversación en el mapeo
<conversation_name, connector_id>
. - Reenvía las notificaciones de eventos que publica el interceptor de Cloud Pub/Sub al servidor de conectores de la IU correspondiente con el mecanismo de Pub/Sub de Redis.
Conector de la IU
El conector de IU es una aplicación que expone un proxy de API de Dialogflow RESTful y un extremo de WebSocket de SocketIO para transmitir mensajes de Dialogflow que se originan en Agent Assist.
El conector de IU se implementa en Cloud Run.
Debido a que las conexiones de WebSockets son con estado, el escritorio del agente permanecerá conectado al mismo contenedor en Cloud Run durante toda la vida útil de la conexión. Por lo tanto, cada servidor de conector de IU controla conversaciones diferentes y se suscribe a canales de Pub/Sub de Redis ({connector_id}:*
) distintos para las conversaciones que controla. Tareas para cada servidor de conectores de IU:
- Admite un método de autenticación personalizado para los escritorios de los agentes.
- Genera un JWT temporal después de autenticar los tokens personalizados de los escritorios del agente. Cuando envían solicitudes a la API de Dialogflow o a la conexión de WebSocket, los conectores de IU validan el JWT adjunto en lugar de verificar el token del agente original.
- Establece una conexión de WebSocket de SocketIO con el escritorio del agente autorizado según un nombre de conversación determinado.
- Suscribe los mensajes de eventos a los canales de Pub/Sub de Redis para las conversaciones que controla.
- Envía eventos de Agent Assist a la IU de computadoras de escritorio a medida que se reciben.
Secret Manager
El conector de la IU necesita una clave secreta de JWT para generar JWT temporales para computadoras de escritorio de agentes autenticados. Esta clave secreta se almacena en Secret Manager.
Directorio
A continuación, se incluye un esquema de la estructura de directorios en el repositorio de código. Comunícate con tu representante de Google para obtener permisos si no puedes acceder al repositorio.
. ├── 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.
¿Qué sigue?
Consulta la guía de instalación de módulos de backend para obtener más información sobre cómo comenzar a usar este método de integración.