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.