Para cada conversa, ocorre uma interação. Durante uma interação, um usuário final envia uma entrada para 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 o Dialogflow CX.
- O Dialogflow CX 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 CX envia 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 de 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 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 Vertex AI Agent Builder
Acesse o console do Vertex AI Agent Builder:
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 do 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 CX, 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 CX, 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 CX, 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.