O Agent Assist oferece agora módulos de back-end, uma opção pronta a usar para integrar o Agent Assist no seu sistema. Os módulos de back-end incluem um serviço de intercetor do Cloud Pub/Sub e um serviço de conetor da IU. O intercetor processa notificações de eventos relacionados com funcionalidades do Dialogflow através de tópicos do Cloud Pub/Sub e, em seguida, o conector da IU envia-as para a IU do ambiente de trabalho do agente. Os conetores da IU também suportam sinais de feedback do ambiente de trabalho do agente e enviam-nos para o Dialogflow.
Estrutura dos módulos de back-end
Componentes do módulo de back-end
Os módulos de back-end requerem os seguintes produtos Google para integrar o Agent Assist no seu sistema:
- Cloud Pub/Sub
- Interceptor do Cloud Pub/Sub
- Memorystore para Redis
- Conetor da IU
Cloud Pub/Sub
Os tópicos do Cloud Pub/Sub estão configurados nos
perfis de conversa.
Em seguida, o Agent Assist publica sugestões, novas mensagens, novas notificações de resultados de reconhecimento e eventos relacionados com o ciclo de vida da conversa no tópico. As sugestões têm o formato
HumanAgentAssistantEvent
,
e as novas mensagens e os eventos do ciclo de vida da conversa têm o formato
ConversationEvent
.
Para cada perfil de conversa, estes quatro tipos de mensagens de eventos são publicados
em tópicos diferentes. Por exemplo, uma mensagem de evento do ciclo de vida de uma conversa pode ser {"conversation":"projects/your-project-id/locations/global/conversations/your-conversation-id","type":"CONVERSATION_STARTED"}
, o que indica o início de uma conversa.
Interceptor do Cloud Pub/Sub
O intercetor do Cloud Pub/Sub é implementado no Cloud Run. A funcionalidade de cada instância de contentor (servidor) deste serviço do Cloud Run é idêntica à de cada outra instância, incluindo:
- Processar mensagens de eventos publicadas por tópicos do Cloud Pub/Sub através de pedidos HTTP.
- Publicar mensagens recebidas nos canais Redis Pub/Sub, específicos do nome da conversa e do ID do servidor do conetor da IU. O formato do canal é
{connector_id}:{conversation_name}
.
Redis
O Redis usa o Memorystore for Redis para fazer o seguinte:
- Registe as informações do ID do servidor do conector da IU para cada conversa no mapeamento
<conversation_name, connector_id>
. - Encaminhe as notificações de eventos publicadas pelo intercetor do Cloud Pub/Sub para o servidor do conetor da IU correspondente através do mecanismo Redis Pub/Sub.
Conetor da IU
O conetor de IU é uma aplicação que expõe um proxy de API Dialogflow RESTful e um ponto final WebSocket SocketIO para transmitir mensagens do Dialogflow originárias do Agent Assist.
O conetor da IU está implementado no Cloud Run.
Uma vez que as ligações WebSocket têm estado, o computador do agente permanece ligado ao mesmo contentor no Cloud Run durante todo o ciclo de vida da ligação. Por conseguinte, cada servidor de conetor da IU processa conversas diferentes e subscreve canais Redis Pub/Sub distintos ({connector_id}:*
) para as conversas que processa. Tarefas para cada servidor de conector da IU:
- Suporta um método de autenticação personalizado para os computadores dos agentes.
- Gera JWTs temporários após a autenticação dos tokens personalizados dos computadores dos agentes. Quando enviam pedidos para a API Dialogflow ou para a ligação WebSocket, os conetores da IU validam o JWT anexado em vez de verificarem o token do agente original.
- Estabelece uma ligação WebSocket SocketIO com o agente autenticado no computador com base num determinado nome de conversa.
- Subscreve mensagens de eventos a canais Redis Pub/Sub para as conversas que processa.
- Envia eventos do Assistente do agente para a IU do computador à medida que são recebidos.
Secret Manager
O conetor da IU precisa de uma chave secreta do JWT para gerar JWTs temporários para estações de trabalho de agentes autenticadas. Esta chave secreta é armazenada no Secret Manager.
Diretório
Segue-se um resumo da estrutura de diretórios no repositório de código. Contacte o seu representante da Google para obter autorizações se não conseguir aceder ao repositório.
. ├── 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
Preços e quotas
As integrações do Agent Assist incluem os seguintes serviços, que têm os seus próprios preços aplicáveis e limites de quota.
- Preços e quotas do Agent Assist
- Preços e quotas do Pub/Sub
- Preços e quotas do Memorystore
- Preços e quotas do Cloud Run
O que se segue?
Consulte o guia de instalação de módulos de back-end para mais informações sobre como começar a usar este método de integração.