Para cada conversão, uma interação ocorre. Durante uma interação, um usuário final envia a entrada para o Dialogflow, e o Dialogflow envia uma resposta. Você tem duas opções ao implementar o sistema para lidar com interações: usando a API ou uma integração.
Ao usar a API, seu sistema precisa lidar com o seguinte:
- Criar um agente.
- Forneça uma interface do usuário para usuários finais.
- Chame a API Dialogflow para cada turno da conversa para enviar a entrada do usuário final à 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 lidar com o seguinte:
- Criar um agente.
- Como opção, 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.
- Sua interface do usuário ou sistema de 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 o Dialogflow.
- O Dialogflow cria 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. O Dialogflow envia uma resposta de detecção de intent para a interface do usuário ou o sistema de integração.
- A interface do usuário ou o sistema de integração recebe a resposta de detecção de intent e encaminha o texto ou a resposta de áudio ao usuário final.
- O usuário final vê ou ouve a resposta.
Finalidade do guia
Este guia mostra como chamar a API para uma rodada de conversa de um agente que não está usando uma integração (etapa 2 do diagrama acima). Este guia não mostra como implementar uma interface de usuário para o usuário final.
Coletar códigos
As amostras abaixo exigem vários códigos como entrada. Para encontrar o ID do projeto, da região e do agente:
- Abra o Console do Dialogflow CX.
- Selecione o projeto do GCP para abrir o seletor de agentes.
- Clique no menu more_vert para um agente na lista.
- Clique no botão Copiar nome filter_none.
- Isso copia o nome de identificação completo 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
Você também precisa de um código de sessão.
Uma sessão representa uma conversa entre um agente do Dialogflow e um usuário final.
Você cria um código de sessão exclusivo no início de uma conversa e o utiliza a cada turno da conversa.
Para testar a API, use qualquer ID de string que tenha no máximo 36 bytes, como test-session-123
.
Intent de detecção de chamadas
Os exemplos a seguir chamam o método detectIntent
do tipo Sessions
.
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# | Indisponível | Indisponível |
Go | Indisponível | Indisponível |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | Indisponível | Indisponível |
Python | SessionsClient | SessionsClient |
Ruby | Indisponível | Indisponível |
REST e LINHA DE CMD
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: código do projeto do GCP.
- 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
Node.js
Python
Produção
Antes de executar o agente em produção, implemente as práticas recomendadas de produção.