Para cada conversão, uma interação ocorre. Durante uma interação, um usuário final envia uma entrada para o Dialogflow, que envia uma resposta. Você tem duas opções ao implementar o sistema para lidar com as interações: por meio da API ou de uma integração.
Ao usar a API, o sistema precisa lidar com o seguinte:
- Crie um agente.
- Forneça uma interface de usuário para usuários finais.
- Chame a API Dialogflow para cada turno da conversa para enviar 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:
- Crie 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.
- A interface do usuário ou o 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 para 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 a resposta de texto ou áudio ao 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 com um agente que não esteja 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
Os exemplos abaixo exigem vários IDs como entrada. Para encontrar os códigos 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 de opções more_vert para acessar um agente na lista.
- Clique no botão de cópia 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 usa em 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 chamada
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": "89dd432b-1df4-48c4-be6b-d6550c3422b0", "queryResult": { "text": "I want to ask about data plans for international travel.", "languageCode": "en", "responseMessages": [ { "text": { "text": [ "Sure! I can help with that. " ] } }, { "text": { "text": [ "I need to ask a few questions before I can find the best option for you." ] } }, { "text": { "text": [ "What's your name?" ] } } ], "currentPage": { "name": "projects/project-id/locations/region-id/agents/027ac861-f275-45ed-a879-92aeb554df4e/pages/48d4352f-c995-4e46-8857-999709882959", "displayName": "Collect Customer Info" }, "intent": { "name": "projects/project-id/locations/region-id/agents/027ac861-f275-45ed-a879-92aeb554df4e/intents/d48acf76-10f6-491f-be0c-cb58e1ce74d6", "displayName": "Data Plan Intent" }, "intentDetectionConfidence": 1 } }
Java
Node.js
Python