Se não estiver a usar uma integração, tem de escrever código para interagir com os utilizadores finais. Para cada interação de conversa, o seu código chama a API Dialogflow para consultar o seu agente. Este guia mostra como interagir com um agente através da API REST na linha de comandos e através das bibliotecas de cliente.
Antes de começar
Se não planeia usar a API, pode ignorar este início rápido.
Antes de ler este guia, deve fazer o seguinte:
- Compreenda as noções básicas do Dialogflow.
- Realize os passos de configuração.
- Execute os passos no guia de início rápido
Crie um agente.
Os passos abaixo continuam a trabalhar no agente que iniciou nesse guia.
Se já não tiver esse agente, pode transferir
build-agent-quickstart.zip
e importar o ficheiro.
Sessões
Uma sessão representa uma conversa entre um agente do Dialogflow e um utilizador final. Cria uma sessão no início de uma conversa e usa-a para cada interação da conversa. Quando a conversa terminar, deixa de usar a sessão.
Não deve usar a mesma sessão para conversas simultâneas com diferentes utilizadores finais. O Dialogflow mantém os contextos atualmente ativos para cada sessão ativa. Os dados da sessão são armazenados pelo Dialogflow durante 20 minutos.
Cada sessão é determinada como única por um ID da sessão gerado pelo seu sistema. Cria uma nova sessão fornecendo um novo ID da sessão num pedido de deteção de intenção. Um ID da sessão é uma string com um tamanho máximo de 36 bytes. O seu sistema é responsável por gerar IDs de sessão exclusivos. Podem ser números aleatórios, identificadores do utilizador final com hash ou quaisquer outros valores que seja conveniente gerar.
Detetar intenção
Quando usa a API para interações,
o seu serviço interage diretamente com o utilizador final.
Para cada interação de conversa,
o seu serviço envia expressões do utilizador final para o Dialogflow chamando o método detectIntent
ou streamingDetectIntent
do tipo Sessions
.
O Dialogflow responde com informações sobre a intenção correspondente,
a ação, os parâmetros e a resposta definidos para a intenção.
O seu serviço realiza as ações necessárias
(por exemplo, consultas de base de dados ou chamadas de API externas)
e envia uma mensagem ao utilizador final.
Este processo continua até a conversa terminar.
Os exemplos seguintes mostram como detetar a intenção. Cada exemplo aceita um subconjunto das seguintes entradas:
- ID do projeto: Use o ID do projeto que criou nos passos de configuração.
- ID da sessão: Para fins de teste de um agente, pode usar qualquer coisa. Por exemplo, "123456789" é usado frequentemente por exemplos.
- Texto ou textos: Esta é a expressão única do utilizador final ou a lista de expressões do utilizador final. Se forem fornecidas várias expressões, o exemplo de código chama a intenção de deteção para cada expressão. Experimente usar "I know french" (Sei francês).
- Código do idioma: O código do idioma para a expressão do utilizador final. Use "en-US" para este agente de exemplo.
REST
Para detetar a intenção, chame o métododetectIntent
no recurso Sessions
.
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
- SESSION_ID: um ID da sessão
Método HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/SESSION_ID:detectIntent
Corpo JSON do pedido:
{ "query_input": { "text": { "text": "I know french", "language_code": "en-US" } } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "responseId": "856510ca-f617-4e25-b0bb-a26c0a59e030-19db3199", "queryResult": { "queryText": "I know french", "parameters": { "language": "French", "language-programming": "" }, "allRequiredParamsPresent": true, "fulfillmentText": "Wow! I didn't know you knew French. How long have you known French?", "fulfillmentMessages": [ { "text": { "text": [ "Wow! I didn't know you knew French. How long have you known French?" ] } } ], "outputContexts": [ { "name": "projects/PROJECT_ID/agent/sessions/123456789/contexts/set-language-followup", "lifespanCount": 2, "parameters": { "language": "French", "language.original": "french", "language-programming": "", "language-programming.original": "" } } ], "intent": { "name": "projects/PROJECT_ID/agent/intents/fe45022f-e58a-484f-96e8-1cbd6628f648", "displayName": "set-language" }, "intentDetectionConfidence": 1, "languageCode": "en" } }
Tenha em atenção o seguinte acerca da resposta:
- O campo
queryResult.intent
contém a intenção correspondente. - O valor do campo
queryResult.fulfillmentMessages
contém a resposta de intenção. Esta é a resposta que o seu sistema deve encaminhar para o utilizador final. - O valor do campo
queryResult.parameters
contém os parâmetros extraídos da expressão do utilizador final. - O campo
queryResult.outputContext
contém o contexto ativo.
Go
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.
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.
Idiomas adicionais
C#: Siga as instruções de configuração do C# na página das bibliotecas cliente e, em seguida, visite a documentação de referência do Dialogflow para .NET.
PHP: Siga as instruções de configuração do PHP na página das bibliotecas cliente e, em seguida, visite a documentação de referência do Dialogflow para PHP.
Ruby: Siga as instruções de configuração do Ruby na página das bibliotecas cliente e, em seguida, visite a documentação de referência do Dialogflow para Ruby.
Produção
Antes de executar o seu agente em produção, certifique-se de que implementa as práticas recomendadas de produção.