Principes de base des modules backend d'Agent Assist

Agent Assist propose désormais des modules de backend, une option prête à l'emploi pour intégrer Agent Assist à votre système. Les modules de backend incluent un service d'interception Cloud Pub/Sub et un service de connecteur d'UI. L'intercepteur traite les notifications d'événements liés aux fonctionnalités de Dialogflow à l'aide de sujets Cloud Pub/Sub, puis le connecteur d'UI les transmet à l'UI du poste de travail de l'agent. Les connecteurs d'UI sont également compatibles avec les signaux de commentaires provenant de l'agent desktop et les envoient à Dialogflow.

Structure des modules de backend

Composants du module backend

Les modules de backend nécessitent les produits Google suivants pour intégrer Agent Assist à votre système :

  • Cloud Pub/Sub
  • Intercepteur Cloud Pub/Sub
  • Memorystore pour Redis
  • Connecteur d'UI

Cloud Pub/Sub

Les sujets Cloud Pub/Sub sont configurés dans les profils de conversation. Agent Assist publiera ensuite des suggestions, de nouveaux messages, de nouvelles notifications de résultats de reconnaissance et des événements liés au cycle de vie de la conversation dans le sujet. Les suggestions se présentent sous la forme HumanAgentAssistantEvent, et les nouveaux messages et les événements du cycle de vie des conversations sous la forme ConversationEvent. Pour chaque profil de conversation, ces quatre types de messages d'événement sont publiés dans des thèmes différents. Par exemple, un message d'événement de cycle de vie de conversation peut être {"conversation":"projects/your-project-id/locations/global/conversations/your-conversation-id","type":"CONVERSATION_STARTED"}, ce qui indique le début d'une conversation.

Intercepteur Cloud Pub/Sub

L'intercepteur Cloud Pub/Sub est déployé sur Cloud Run. La fonctionnalité de chaque instance de conteneur (serveur) de ce service Cloud Run est identique à celle de chaque autre instance, y compris :

  • Traiter les messages d'événement publiés par les sujets Cloud Pub/Sub à l'aide de requêtes HTTP.
  • Publication des messages reçus dans les canaux Redis Pub/Sub, spécifiques au nom de la conversation et à l'ID du serveur du connecteur d'UI. Le format du canal est {connector_id}:{conversation_name}.

Redis

Redis utilise Memorystore pour Redis pour effectuer les opérations suivantes :

  • Enregistrez les informations sur l'ID du serveur de connecteur d'UI pour chaque conversation dans le mappage <conversation_name, connector_id>.
  • Transférez les notifications d'événements publiées par l'intercepteur Cloud Pub/Sub au serveur de connecteur d'UI correspondant à l'aide du mécanisme Redis Pub/Sub.

Connecteur d'UI

Le connecteur d'UI est une application qui expose un proxy d'API Dialogflow RESTful et un point de terminaison SocketIO WebSocket pour diffuser les messages Dialogflow provenant d'Agent Assist. Le connecteur d'interface utilisateur est déployé sur Cloud Run. Les connexions WebSocket étant "avec état", l'agent desktop restera connecté au même conteneur sur Cloud Run pendant toute la durée de la connexion. Par conséquent, chaque serveur de connecteur d'UI gère différentes conversations et s'abonne à des canaux Pub/Sub Redis distincts ({connector_id}:*) pour les conversations qu'il gère. Tâches pour chaque serveur de connecteur d'interface utilisateur :

  • Prend en charge une méthode d'authentification personnalisée pour les postes de travail des agents.
  • Génère un jeton JWT temporaire après l'authentification des jetons personnalisés des postes de travail des agents. Lorsqu'ils envoient des requêtes à l'API Dialogflow ou à la connexion WebSocket, les connecteurs d'UI valident le JWT associé au lieu de vérifier le jeton d'agent d'origine.
  • Établit une connexion SocketIO WebSocket avec le bureau de l'agent authentifié en fonction d'un nom de conversation donné.
  • S'abonne aux messages d'événements des canaux Redis Pub/Sub pour les conversations qu'il gère.
  • Transmet les événements Agent Assist à l'interface utilisateur de l'ordinateur à mesure qu'ils sont reçus.

Secret Manager

Le connecteur d'UI a besoin d'une clé secrète JWT pour générer des JWT temporaires pour les postes de travail des agents authentifiés. Cette clé secrète est stockée dans Secret Manager.

Annuaire

Vous trouverez ci-dessous un aperçu de la structure des répertoires dans le dépôt de code. Si vous n'arrivez pas à accéder au dépôt, contactez votre représentant Google pour obtenir les autorisations nécessaires.

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

Tarifs et quotas

Les intégrations Agent Assist incluent les services suivants, qui ont leurs propres tarifs et limites de quota applicables.

Étapes suivantes

Pour en savoir plus sur la façon de commencer à utiliser cette méthode d'intégration, consultez le guide d'installation des modules de backend.