Agent Assist propose désormais des modules backend, une option prête à l'emploi pour intégrer Agent Assist à votre système. Les modules backend incluent un service d'intercepteur Cloud Pub/Sub et un service de connecteur d'interface utilisateur. L'intercepteur traite les notifications d'événements liées aux fonctionnalités de Dialogflow à l'aide de sujets Cloud Pub/Sub, puis le connecteur d'interface utilisateur les transfère vers l'interface utilisateur de bureau de l'agent. Les connecteurs d'interface utilisateur acceptent également les signaux de retour provenant du bureau de l'agent et les envoient à Dialogflow.
Structure des modules backend
Composants du module backend
Les modules 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'interface utilisateur
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 de cycle de vie de la conversation sous la forme ConversationEvent
.
Pour chaque profil de conversation, ces quatre types de messages d'événement sont publiés dans différents sujets. 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:
- Traitement des messages d'événement publiés par des sujets Cloud Pub/Sub à l'aide de requêtes HTTP.
- Publication des messages reçus sur les canaux Pub/Sub Redis, spécifiques au nom de la conversation et à l'ID du serveur du connecteur d'interface utilisateur. Le format de canal est
{connector_id}:{conversation_name}
.
Redis
Redis utilise Memorystore pour Redis pour effectuer les opérations suivantes:
- Enregistrez les informations d'ID du serveur de connecteur d'interface utilisateur pour chaque conversation dans le mappage
<conversation_name, connector_id>
. - Transmettez les notifications d'événements publiées par l'intercepteur Cloud Pub/Sub au serveur de connecteur d'interface utilisateur correspondant à l'aide du mécanisme Redis Pub/Sub.
Connecteur d'interface utilisateur
Le connecteur d'interface utilisateur est une application qui expose un proxy d'API Dialogflow RESTful et un point de terminaison WebSocket SocketIO pour diffuser des messages Dialogflow provenant d'Agent Assist.
Le connecteur d'interface utilisateur est déployé sur Cloud Run.
Les connexions WebSockets étant "avec état", le bureau de l'agent 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'interface utilisateur gère des conversations différentes 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 ordinateurs de bureau des agents.
- Génère des jetons JWT temporaires après avoir authentifié les jetons personnalisés des ordinateurs de bureau des agents. Lorsqu'ils envoient des requêtes à l'API Dialogflow ou à la connexion WebSocket, les connecteurs d'interface utilisateur valident le jeton JWT associé au lieu de vérifier le jeton d'agent d'origine.
- Établit une connexion WebSocket SocketIO avec le bureau de l'agent authentifié en fonction d'un nom de conversation donné.
- S'abonne aux messages d'événements aux canaux Pub/Sub Redis pour les conversations qu'il gère.
- Transmet les événements Agent Assist à l'interface utilisateur de l'ordinateur dès qu'ils sont reçus.
Secret Manager
Le connecteur d'interface utilisateur a besoin d'une clé secrète JWT pour générer des jetons JWT temporaires pour les ordinateurs de bureau 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 du dépôt de code. Contactez votre représentant Google pour obtenir les autorisations nécessaires si vous ne parvenez pas à accéder au dépôt.
. ├── 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.
Étape suivante
Pour en savoir plus sur la prise en main de cette méthode d'intégration, consultez le guide d'installation des modules de backend.