Para cada conversa, ocorre uma interação. Durante uma interação, um usuário final envia uma entrada para os agentes de conversação (Dialogflow CX), que envia uma resposta. Você tem duas opções ao implementar seu sistema para lidar com interações: usando a API ou uma integração.
Ao usar a API, o sistema precisa processar o seguinte:
- Crie um agente.
- Forneça uma interface do usuário para usuários finais.
- Chame a API Dialogflow para cada turno de conversa para enviar a entrada do usuário final para a API.
- A menos que as respostas do agente sejam puramente estáticas (incomum), é necessário hospedar um serviço de webhook para processar o fulfillment ativado para webhook.
Ao usar uma integração, seu sistema só precisa processar o seguinte:
- Crie um agente.
- Como alternativa, implemente um serviço de webhook.
O diagrama a seguir mostra as etapas que ocorrem em uma rodada de conversa de uma sessão.
- O usuário final digita ou diz algo, conhecido como entrada do usuário final.
- O sistema de interface do usuário ou integração recebe a entrada e a encaminha para a API Dialogflow em uma solicitação de detecção de intent.
- A API Dialogflow recebe a solicitação de detecção de intent. Ele corresponde a entrada a um parâmetro de intent ou formulário, define parâmetros conforme necessário e atualiza o estado da sessão. Se ele precisar chamar um fulfillment ativado para webhook, ele enviará uma solicitação de webhook para seu serviço de webhook. Caso contrário, vá para a etapa 6.
- O serviço de webhook recebe a solicitação de webhook. Seu serviço realiza todas as ações necessárias, como chamar APIs externas, consultar ou atualizar um banco de dados etc.
- Seu serviço de webhook cria uma resposta e envia uma resposta de webhook de volta para os agentes de conversação (Dialogflow CX).
- Os agentes de conversação (Dialogflow CX) criam uma resposta de intent de detecção. Se um webhook foi chamado, ele usará a resposta fornecida na resposta do webhook. Se nenhum webhook foi chamado, ele usa a resposta estática definida no agente. Os agentes de conversação (Dialogflow CX) enviam uma resposta de detecção de intent para a interface do usuário ou o sistema de integração.
- O sistema da interface do usuário recebe a resposta de intent de detecção e encaminha o texto ou a áudio para o usuário final.
- O usuário final vê ou ouve a resposta.
Finalidade do guia
Neste guia, você verá como chamar a API para uma conversa de um agente que não esteja usando uma integração (etapa 2 do diagrama acima). Este guia não mostra como implementar uma interface do usuário para o usuário final.
Antes de começar
Faça o seguinte antes de ler este guia:
- Leia os conceitos básicos do fluxo.
- Execute as etapas de configuração.
- Crie um novo agente ou continue usando o que você criou em Criar um agente usando fluxos ou Criar um agente usando playbooks.
Coletar IDs
As amostras abaixo exigem vários IDs como entrada. Para encontrar o ID do projeto, o ID da região e o ID do agente:
Console do Dialogflow CX
- Abra o console do Dialogflow CX.
- Selecione seu projeto do Google Cloud para abrir o seletor de agentes.
- Clique no menu de opções more_vert de um agente na lista.
- Clique no botão "Copiar nome filter_none".
- Isso copia o nome completo de identificação do 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/agentes/AGENT_ID
Console do Agent Builder
Acesse o console do Criador de agentes:
O ID do projeto é mostrado na parte de cima do console.
A coluna Local mostra os IDs das regiões.
Selecione um app.
O segmento de caminho do URL do navegador após
agents/
contém o ID do app do agente.
Você também precisa de um código de sessão.
Uma
sessão
representa uma conversa entre um agente de agentes de conversação (Dialogflow CX) e um usuário final.
Você cria um código de sessão exclusivo no início de uma conversa
e o usa para cada turno da conversa.
Para testar a API,
use qualquer ID de string com no máximo 36 bytes,
como test-session-123
.
Chamar intent de detecção
Os exemplos a seguir chamam o método Sessions.detectIntent
.
Selecione um protocolo e uma versão para a referência de sessão:
Protocolo | V3 | V3beta1 |
---|---|---|
REST | Recurso da sessão | Recurso da sessão |
RPC (remote procedure call) | Interface da sessão | Interface da sessão |
C++ | SessionsClient | Indisponível |
C# | SessionsClient | Indisponível |
Go | SessionsClient | Indisponível |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | Indisponível | Indisponível |
Python | SessionsClient | SessionsClient |
Ruby | Indisponível | Indisponível |
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto do Google Cloud
- AGENT_ID: seu ID de agente
- REGION_ID: o ID da sua região
- SESSION_ID: seu ID de sessão
- END_USER_INPUT: a entrada do usuário 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 da solicitação:
{ "queryInput": { "text": { "text": "END_USER_INPUT" }, "languageCode": "en" }, "queryParams": { "timeZone": "America/Los_Angeles" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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 autenticar no Dialogflow, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para autenticar no Dialogflow, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no Dialogflow, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Produção
Antes de executar seu agente na produção, implemente as práticas recomendadas de produção.