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

Estructura de los módulos de backend

Componentes de los módulos 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 para Redis
  • Conector de 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 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 instancia, incluidos los siguientes:

  • Procesamiento de mensajes de eventos publicados por temas de Cloud Pub/Sub mediante solicitudes HTTP
  • Publicación de mensajes recibidos en canales de Pub/Sub de Redis, específicos del nombre de la conversación y el ID del servidor del conector de IU (el formato del canal es {connector_id}:{conversation_name})

Redis

Redis usa Memorystore para Redis para hacer lo siguiente:

  • Registrar la información del ID del servidor del conector de IU para cada conversación en la asignación <conversation_name, connector_id>.
  • Reenviar las notificaciones de eventos publicadas por el interceptor de Cloud Pub/Sub al servidor del conector de IU correspondiente mediante el 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 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 WebSocket son con estado, la computadora del agente permanecerá conectada al mismo contenedor en Cloud Run durante toda la vida útil de la conexión. Por lo tanto, cada servidor del conector de IU controla diferentes conversaciones y se suscribe a distintos canales 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 las computadoras del agente.
  • Genera JWT temporales después de autenticar los tokens personalizados de las computadoras 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 la computadora del agente autenticada en función de un nombre de conversación determinado.
  • Suscribe mensajes de eventos a canales de Pub/Sub de Redis para las conversaciones que controla.
  • Envía eventos de Agent Assist a la IU de la computadora a medida que se reciben.

Secret Manager

El conector de IU necesita una clave secreta de JWT para generar JWT temporales para las computadoras del agente autenticadas. Esta clave secreta se almacena en el Secret Manager.

Directorio

A continuación, se muestra 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: 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.