O Agent Assist agora oferece módulos de back-end, uma opção pronta para uso para integrar o Agent Assist ao seu sistema. Os módulos de back-end incluem um serviço de interceptação do Cloud Pub/Sub e um serviço de conector da UI. O interceptor processa as notificações de eventos relacionados ao recurso do Dialogflow usando tópicos do Cloud Pub/Sub. Em seguida, o conector da UI as envia para a UI do agente. Os conectores UI também oferecem suporte a indicadores de feedback do computador do agente e os enviam ao Dialogflow.
Estrutura dos módulos de back-end
Componentes do módulo de back-end
Os módulos de back-end exigem os seguintes produtos do Google para integrar o Assistente do agente ao seu sistema:
- Cloud Pub/Sub
- Interceptor do Cloud Pub/Sub
- Memorystore for Redis
- Conector UI
Cloud Pub/Sub
Os tópicos do Cloud Pub/Sub são configurados em
perfis de conversa.
O Assistente de agentes publica sugestões, novas mensagens, novas notificações de resultados de reconhecimento e eventos relacionados ao ciclo de vida da conversa no tópico. As sugestões são enviadas na forma de
HumanAgentAssistantEvent
,
e novas mensagens e eventos do ciclo de vida da conversa na forma de
ConversationEvent
.
Para cada perfil de conversa, esses quatro tipos de mensagens de evento 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"}
,
que indica o início de uma conversa.
Interceptor do Cloud Pub/Sub
O interceptor do Cloud Pub/Sub é implantado no Cloud Run. A funcionalidade de cada instância de contêiner (servidor) desse serviço do Cloud Run é idêntica a todas as outras instâncias, incluindo:
- Processamento de mensagens de eventos postadas por tópicos do Cloud Pub/Sub usando solicitações HTTP.
- Publicação de mensagens recebidas em canais do Pub/Sub do Redis, específicas para o
nome da conversa e o ID do servidor do conector da UI. O formato do canal é
{connector_id}:{conversation_name}
.
Redis
O Redis usa o Memorystore para Redis para fazer o seguinte:
- Registre as informações do ID do servidor do conector da interface para cada conversa no mapeamento
<conversation_name, connector_id>
. - Encaminhar notificações de eventos publicadas pelo interceptor do Cloud Pub/Sub para o servidor de conector da UI correspondente usando o mecanismo Pub/Sub do Redis.
Conector UI
O conector de UI é um aplicativo que expõe um proxy da API RESTful do Dialogflow e um endpoint SocketIO WebSocket para transmitir mensagens do Dialogflow originadas do Agent Assist.
O conector da UI é implantado no Cloud Run.
Como as conexões WebSocket têm estado, o agente do computador permanece
conectado ao mesmo contêiner no Cloud Run durante a vida útil da
conexão. Portanto, cada servidor de conector da UI processa conversas diferentes
e se inscreve em canais Redis Pub/Sub distintos ({connector_id}:*
) para as
conversas que processa. Tarefas para cada servidor de conector da UI:
- Oferece suporte a um método de autenticação personalizado para computadores de agentes.
- Gera JWT temporário após a autenticação de tokens personalizados de computadores de agentes. Quando eles enviam solicitações para a API Dialogflow ou a conexão WebSocket, os conectores da UI validam o JWT anexado em vez de verificar o token do agente original.
- Estabelece uma conexão SocketIO WebSocket com o computador do agente autenticado com base no nome de uma conversa.
- Faz a inscrição de mensagens de eventos nos canais do Pub/Sub do Redis para as conversas que processa.
- Envia eventos do Assistente do agente para a UI do computador conforme são recebidos.
Secret Manager
O conector da interface precisa de uma chave secreta JWT para gerar JWTs temporários para computadores de agentes autenticados. Essa chave secreta é armazenada no Secret Manager.
Diretório
Confira a seguir um esboço da estrutura de diretórios no repositório de código. Entre em contato com seu representante do Google para receber permissões se não conseguir acessar o repositório.
. ├── 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.
A seguir
Consulte o guia de instalação de módulos de back-end para mais informações sobre como começar a usar esse método de integração.