Conceptos básicos de los módulos de backend de Agent Assist

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 funciones de Dialogflow a través de temas de Cloud Pub/Sub y, luego, el conector de la IU las envía a la IU del escritorio del agente. Los conectores de IU también admiten señales de comentarios del escritorio del agente y las 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 IU

Cloud Pub/Sub

Los temas de Cloud Pub/Sub se configuran en los perfiles de conversación. Luego, Asistente del agente 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 tanto los mensajes nuevos como 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 diferentes temas. Por ejemplo, un mensaje de evento de ciclo de vida de la 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 una de las demás instancias, lo que incluye lo siguiente:

  • Procesar mensajes de eventos publicados por temas de Cloud Pub/Sub con solicitudes HTTP
  • Publicar 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 publicadas por el interceptor de Cloud Pub/Sub al servidor del conector de la IU correspondiente a través del mecanismo de Pub/Sub de Redis.

Conector de IU

El conector de IU es una aplicación que expone un proxy de la API de Dialogflow de RESTful y un extremo de WebSocket de SocketIO para transmitir mensajes de Dialogflow que se originan en Agent Assist. El conector de la IU se implementa en Cloud Run. Debido a que las conexiones de WebSocket 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 del conector de la IU controla conversaciones diferentes y se suscribe a canales distintos de Pub/Sub de Redis ({connector_id}:*) para las conversaciones que controla. Tareas para cada servidor del conector de IU:

  • Admite un método de autenticación personalizado para los escritorios de agentes.
  • Genera un JWT temporal después de autenticar los tokens personalizados de los escritorios de agentes. Cuando envían solicitudes a la API de Dialogflow o a la conexión de WebSocket, los conectores de la IU validan el JWT adjunto en lugar de verificar el token del agente original.
  • Establece una conexión WebSocket de SocketIO con el escritorio del agente autenticado en función de un nombre de conversación determinado.
  • Suscribe mensajes de eventos a los canales de Pub/Sub de Redis para las conversaciones que maneja.
  • Envía eventos de Agent Assist a la IU 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 los escritorios de agentes autenticados. Esta clave secreta se almacena en Secret Manager.

Directorio

A continuación, se muestra un esquema de la estructura de directorios en el repositorio de código. Si no puedes acceder al repositorio, comunícate con tu representante de Google para obtener los permisos.

.
├── 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

Precios y cuotas

Las integraciones de Agent Assist incluyen los siguientes servicios, que tienen sus propios precios y límites de cuota aplicables.

¿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.