Noções básicas sobre os módulos de back-end do Agent Assist

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 interceptor do Cloud Pub/Sub e um serviço de conector UI. O interceptor processa notificações de eventos relacionados a recursos do Dialogflow usando tópicos do Cloud Pub/Sub, e o conector de UI as envia para a interface do agente. Os conectores UI também oferecem suporte a indicadores de feedback da interface 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 Agent Assist 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 Agent Assist vai publicar sugestões, novas mensagens, novas notificações de resultado de reconhecimento e eventos relacionados ao ciclo de vida da conversa no tópico. As sugestões estão no formato HumanAgentAssistantEvent, e as novas mensagens e eventos do ciclo de vida da conversa estão no formato 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 de ciclo de vida da 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 cada outra instância, 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íficos para o nome da conversa e o ID do servidor do conector de interface. O formato do canal é {connector_id}:{conversation_name}.

Redis

O Redis usa o Memorystore for Redis para fazer o seguinte:

  • Registrar as informações de ID do servidor do conector de 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 do conector UI correspondente usando o mecanismo do Pub/Sub do Redis.

Conector UI

O conector de UI é um aplicativo que expõe um proxy de API RESTful da API Dialogflow e um endpoint WebSocket do SocketIO para transmitir mensagens do Dialogflow originadas do Agent Assist. O conector de UI é implantado no Cloud Run. Como as conexões WebSocket têm estado, a interface do agente vai permanecer conectada ao mesmo contêiner no Cloud Run durante a vida útil da conexão. Portanto, cada servidor de conector UI processa conversas diferentes e se inscreve em canais distintos do Pub/Sub do Redis ({connector_id}:*) para as conversas que processam. Tarefas para cada servidor de conector UI:

  • Oferece suporte a um método de autenticação personalizado para interfaces de agente.
  • Gera JWT temporário após autenticar os tokens personalizados das interfaces de agente. Quando enviam solicitações para a API Dialogflow ou conexão WebSocket, os conectores de UI validam o JWT anexado em vez de verificar o token do agente original.
  • Estabelece uma conexão WebSocket do SocketIO com a interface do agente autenticada com base em um determinado nome de conversa.
  • Inscreve mensagens de eventos em canais do Pub/Sub do Redis para as conversas que processa.
  • Envia eventos do Agent Assist para a UI do usuário conforme são recebidos.

Secret Manager

O conector de interface precisa de uma chave secreta JWT para gerar JWTs temporários para interfaces de agente autenticadas. Essa chave secreta é armazenada no Secret Manager.

Diretório

A seguir, apresentamos um resumo 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: 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 cotas

As integrações do Agent Assist incluem os seguintes serviços, que têm preços e limites de cota aplicáveis.

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.