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

Agent Assist ahora ofrece módulos backend, una opción preconfigurada 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 interfaz de usuario. El interceptor procesa las notificaciones de eventos relacionados con las funciones de Dialogflow mediante temas de Cloud Pub/Sub y, a continuación, el conector de la interfaz de usuario las envía a la interfaz de usuario del escritorio del agente. Los conectores de interfaz de usuario 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 Asistente en tu sistema:

  • Cloud Pub/Sub
  • Interceptor de Cloud Pub/Sub
  • Memorystore para Redis
  • Conector de interfaz de usuario

Cloud Pub/Sub

Los temas de Cloud Pub/Sub se configuran en los perfiles de conversación. A continuación, Asistencia para el agente publicará sugerencias, mensajes nuevos, notificaciones de nuevos resultados de reconocimiento 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. En 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 las demás instancias, lo que incluye lo siguiente:

  • Procesar mensajes de eventos publicados por temas de Cloud Pub/Sub mediante solicitudes HTTP.
  • Publicar los mensajes recibidos en los canales Pub/Sub de Redis, específicos del nombre de la conversación y del ID del servidor del conector de la interfaz de usuario. 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 interfaz de usuario de cada conversación en la asignación <conversation_name, connector_id>.
  • Reenvía las notificaciones de eventos publicadas por el interceptor de Cloud Pub/Sub al servidor del conector de interfaz de usuario correspondiente mediante el mecanismo Pub/Sub de Redis.

Conector de interfaz de usuario

UI Connector es una aplicación que expone un proxy de API RESTful de Dialogflow y un endpoint WebSocket de SocketIO para transmitir mensajes de Dialogflow procedentes de Asistente. El conector de interfaz de usuario se implementa en Cloud Run. Como las conexiones WebSocket tienen 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 interfaz de usuario gestiona conversaciones diferentes y se suscribe a canales Pub/Sub de Redis distintos ({connector_id}:*) para las conversaciones que gestiona. Tareas de cada servidor del conector de la interfaz de usuario:

  • 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 WebSocket, los conectores de la interfaz de usuario validan el JWT adjunto en lugar de comprobar el token del agente original.
  • Establece una conexión WebSocket de SocketIO con el agente autenticado de escritorio en función del nombre de una conversación.
  • Suscribe mensajes de eventos a canales de Pub/Sub de Redis para las conversaciones que gestiona.
  • Envía eventos de Asistente a los agentes a la interfaz de usuario de escritorio a medida que se reciben.

Secret Manager

El conector de interfaz de usuario necesita una clave secreta de JWT para generar JWTs temporales para 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 del repositorio de código. Si no puedes acceder al repositorio, ponte en contacto 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 Asistente incluyen los siguientes servicios, que tienen sus propios precios y límites de cuota.

Siguientes pasos

Consulta la guía de instalación de módulos de backend para obtener más información sobre cómo empezar a usar este método de integración.