Para cada turno de conversa, ocorre uma interação. Durante uma interação, um utilizador final envia uma entrada para os agentes conversacionais (Dialogflow CX) e os agentes conversacionais (Dialogflow CX) enviam uma resposta. Tem duas opções quando implementa o seu sistema para processar interações: usar a API ou usar uma integração.
Quando usa a API, o seu sistema tem de processar o seguinte:
- Crie um agente.
- Oferecer uma interface do utilizador para utilizadores finais.
- Chame a API Dialogflow para cada interação de conversa para enviar a entrada do utilizador final para a API.
- A menos que as respostas do seu agente sejam puramente estáticas (incomum), tem de alojar um serviço de webhook para processar o cumprimento ativado por webhook.
Quando usa uma integração, o seu sistema só precisa de processar o seguinte:
- Crie um agente.
- Opcionalmente, implemente um serviço de webhook.
O diagrama seguinte mostra os passos que ocorrem para uma interação conversacional de uma sessão.
- O utilizador final escreve ou diz algo, o que é conhecido como entrada do utilizador final.
- A sua interface do utilizador ou sistema de integração recebe a entrada e encaminha-a para a API Dialogflow num pedido de deteção de intenção.
- A Dialogflow API recebe o pedido de deteção de intenção. Corresponde à entrada a um parâmetro de intenção ou formulário, define os parâmetros conforme necessário e atualiza o estado da sessão. Se precisar de chamar um processamento de pedidos ativado por webhook, envia um pedido de webhook para o seu serviço de webhook, caso contrário, avance para o passo 6.
- O seu serviço de webhook recebe o pedido de webhook. O seu serviço toma todas as medidas necessárias, como chamar APIs externas, consultar ou atualizar uma base de dados, etc.
- O seu serviço de webhook cria uma resposta e envia uma resposta de webhook de volta aos agentes conversacionais (Dialogflow CX).
- Os agentes conversacionais (Dialogflow CX) criam uma resposta de intenção de deteção. Se um webhook foi chamado, usa a resposta fornecida na resposta do webhook. Se não tiver sido chamado nenhum webhook, usa a resposta estática definida no agente. Os agentes conversacionais (Dialogflow CX) enviam uma resposta de intenção de deteção para a sua interface do utilizador ou sistema de integração.
- A interface do utilizador ou o sistema de integração recebe a resposta de intenção de deteção e encaminha a resposta de texto ou áudio para o utilizador final.
- O utilizador final vê ou ouve a resposta.
Finalidade do guia
Este guia mostra como chamar a API para uma interação conversacional para um agente que não está a usar uma integração (passo 2 do diagrama acima). Este guia não mostra como implementar uma interface do utilizador para o utilizador final.
Antes de começar
Antes de ler este guia, deve fazer o seguinte:
- Leia as noções básicas sobre fluxos.
- Execute os passos de configuração.
- Crie um novo agente ou continue a usar o agente que criou em Crie um agente com fluxos ou Crie um agente com manuais de soluções
Recolha IDs
Os exemplos abaixo requerem vários IDs como entrada. Para encontrar o ID do projeto, o ID da região e o ID do agente:
Consola do Dialogflow CX
- Abra a consola do Dialogflow CX.
- Selecione o seu Google Cloud projeto para abrir o seletor de agentes.
- Clique no menu de opções more_vert de um agente na lista.
- Clique no botão filter_none Copiar nome.
- Esta ação copia o nome de identificação completo do seu agente,
que inclui o ID do projeto, o ID da região e o ID do agente
no formato:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
Consola do Vertex AI Agent Builder
Aceda à consola do Vertex AI Agent Builder:
O ID do projeto é apresentado na parte superior da consola.
A coluna Localização mostra os IDs das regiões.
Selecione uma app.
O segmento do caminho do URL do navegador após
agents/
contém o ID da app do agente.
Também precisa de um ID da sessão.
Uma
sessão
representa uma conversa entre um agente de agentes conversacionais (Dialogflow CX) e um utilizador final.
Cria um ID de sessão exclusivo no início de uma conversa e usa-o para cada interação da conversa.
Para experimentar a API, pode usar qualquer ID de string com um máximo de 36 bytes, como test-session-123
.
Intenção de deteção de chamadas
Os exemplos seguintes chamam o método Sessions.detectIntent
.
Selecione um protocolo e uma versão para a referência da sessão:
Protocolo | V3 | V3beta1 |
---|---|---|
REST | Recurso de sessão | Recurso de sessão |
RPC | Interface de sessão | Interface de sessão |
C++ | SessionsClient | Não disponível |
C# | SessionsClient | Não disponível |
Ir | SessionsClient | Não disponível |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | Não disponível | Não disponível |
Python | SessionsClient | SessionsClient |
Ruby | Não disponível | Não disponível |
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto do Google Cloud
- AGENT_ID: o ID do seu agente
- REGION_ID: o seu ID da região
- SESSION_ID: o seu ID da sessão
- END_USER_INPUT: a entrada do utilizador final
Método HTTP e URL:
POST https://REGION_ID-dialogflow.googleapis.com/v3/projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID/sessions/SESSION_ID:detectIntent
Corpo JSON do pedido:
{ "queryInput": { "text": { "text": "END_USER_INPUT" }, "languageCode": "en" }, "queryParams": { "timeZone": "America/Los_Angeles" } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "responseId": "38e8f23d-eed2-445e-a3e7-149b242dd669", "queryResult": { "text": "I want to buy a shirt", "languageCode": "en", "responseMessages": [ { "text": { "text": [ "Ok, let's start a new order." ] } }, { "text": { "text": [ "I'd like to collect a bit more information from you." ] } }, { "text": { "text": [ "What color would you like?" ] } }, {} ], "currentPage": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/flows/00000000-0000-0000-0000-000000000000/pages/ce0b88c4-9292-455c-9c59-ec153dad94cc", "displayName": "New Order" }, "intent": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665", "displayName": "order.new" }, "intentDetectionConfidence": 1, "diagnosticInfo": { ... }, "match": { "intent": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665", "displayName": "order.new" }, "resolvedInput": "I want to buy a shirt", "matchType": "INTENT", "confidence": 1 } } }
Java
Para se autenticar no Dialogflow, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para se autenticar no Dialogflow, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para se autenticar no Dialogflow, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Produção
Antes de executar o seu agente em produção, certifique-se de que implementa as práticas recomendadas de produção.