Interações com a API

O uso da API para CX é semelhante ao uso da API para ES, mas alguns caminhos e métodos de recursos foram modificados para acomodar novos tipos, métodos e campos.

Seu sistema precisa lidar com o seguinte:

  • O Dialogflow CX ainda não é compatível com integrações. Portanto, seu sistema precisa fornecer uma interface do usuário para interagir diretamente com os usuários finais.
  • Você precisa chamar a API Dialogflow em cada volta 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.

O diagrama a seguir mostra as etapas que ocorrem em uma rodada de conversa de uma sessão.

Diagrama de fluxo da API.

  1. O usuário final digita ou diz algo, conhecido como entrada do usuário final.
  2. O sistema de interface do usuário recebe a entrada e a encaminha para a API Dialogflow em uma solicitação de detecção de intent.
  3. 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.
  4. 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.
  5. Seu serviço de webhook cria uma resposta e envia uma resposta de webhook de volta para o Dialogflow.
  6. 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 o sistema de interface do usuário.
  7. 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.
  8. O usuário final vê ou ouve a resposta.

O envio de uma entrada do usuário final para a API CX para processamento é muito semelhante à API ES. O exemplo abaixo chama o método detectIntent do recurso Sessions.

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
  • session-id: seu ID de sessão
  • end-user-input: a entrada do usuário final

Método HTTP e URL:

POST https://dialogflow.googleapis.com/v3beta1/projects/project-id/locations/us/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/us/agents/027ac861-f275-45ed-a879-92aeb554df4e/pages/48d4352f-c995-4e46-8857-999709882959",
      "displayName": "Collect Customer Info"
    },
    "intent": {
      "name": "projects/project-id/locations/us/agents/027ac861-f275-45ed-a879-92aeb554df4e/intents/d48acf76-10f6-491f-be0c-cb58e1ce74d6",
      "displayName": "Data Plan Intent"
    },
    "intentDetectionConfidence": 1
  }
}