Conceitos básicos do Dialogflow ES

Nesta página, você verá os conceitos básicos do uso do Dialogflow ES. Leia esta página antes de prosseguir para qualquer documento ou guia de início rápido.

Ajudar os usuários a interagir com a tecnologia

As interfaces computacionais tradicionais funcionam de maneira adequada somente com entradas estruturadas e previsíveis. Isso torna o uso dessas interfaces pouco natural e, às vezes, difícil. Se os usuários finais não entenderem com facilidade essa entrada estruturada, eles terão dificuldade para descobrir o que fazer. O ideal é que suas interfaces possam inferir o que seus usuários finais querem, com base na linguagem natural que eles estão usando.

Por exemplo, considere uma solicitação simples de usuário, como "Qual é a previsão do tempo para hoje?" Outros usuários finais também podem perguntar:

  • "Como está o tempo agora?"
  • "Qual será a temperatura em São Francisco amanhã?"
  • "Como estará o tempo no dia 21?"

Observe que, mesmo com essas perguntas simples, há experiências de conversação que são difíceis de implementar. Interpretar e processar a linguagem natural requer um analisador de linguagem muito avançado. O Dialogflow lida com isso para que você possa fornecer uma experiência de alta qualidade para conversas com o usuário final.

Agentes

Um agente do Dialogflow é um agente virtual que processa conversas simultâneas com seus usuários finais. Ele é um módulo de processamento de linguagem natural que entende as nuances da fala humana. O Dialogflow traduz textos ou áudios do usuário final durante uma conversa para dados estruturados que seus aplicativos e serviços podem entender. Você projeta e cria um agente do Dialogflow para lidar com os tipos de conversas necessárias para seu sistema.

Um agente do Dialogflow é semelhante a um agente humano de call center. Você o treina para que lide com os cenários esperados em conversas, e o treinamento não precisa ser excessivamente explícito.

Intents

Uma intent categoriza a intenção do usuário final em cada conversa. Para cada agente, você define várias intents, em que suas intents combinadas podem lidar com uma conversa completa. Quando um usuário final escreve ou diz algo, chamado de expressão do usuário final , o Dialogflow corresponde o conteúdo à melhor intent do seu agente. A correspondência de uma intent também é conhecida como classificação de intent.

Por exemplo, é possível criar um agente meteorológico que reconheça e responda a perguntas do usuário final sobre o clima. Você provavelmente definiria uma intent para perguntas sobre a previsão do tempo. Se um usuário final perguntasse "Qual é a previsão do tempo?", o Dialogflow corresponderia essa expressão à intent de previsão. Também é possível definir sua intent para extrair informações úteis da expressão do usuário final, como um horário ou um local para a previsão do tempo desejada. Esses dados extraídos são importantes para que o sistema execute uma consulta de previsão do tempo para o usuário final.

Agente extraindo dados da expressão do usuário final que solicita a previsão do tempo

Uma intent básica contém estes itens:

  • Frases de treinamento: exemplos de possíveis frases a serem ditas pelo usuário final. Quando uma expressão de usuário final se assemelhar a uma dessas frases, o Dialogflow a corresponderá à intent. Você não precisa definir todos os exemplos possíveis, porque o machine learning integrado do Dialogflow expande sua lista com outras frases semelhantes.
  • Ação: defina uma ação para cada intent. Quando uma intent é correspondida, o Dialogflow fornece a ação ao sistema, permitindo que você acione determinadas ações definidas no sistema.
  • Parâmetros: quando uma intent é correspondida no ambiente de execução, o Dialogflow fornece os valores extraídos da expressão do usuário final como parâmetros. Cada parâmetro tem um tipo, chamado de tipo de entidade, que dita exatamente como os dados são extraídos. Ao contrário da entrada bruta do usuário final, os parâmetros são dados estruturados que podem ser facilmente usados para executar uma lógica ou gerar respostas.
  • Respostas: defina respostas de texto, de fala ou visuais para retornar ao usuário final. Esse retorno pode fornecer respostas ao usuário final, solicitar mais informações ou encerrar a conversa.

O diagrama a seguir mostra o fluxo básico para correspondência de intent e resposta ao usuário final:

O agente e o intent que administram uma expressão de usuário final

Entidades

Cada parâmetro de intent tem um tipo, chamado de tipo de entidade, que dita exatamente como os dados de uma expressão do usuário final são extraídos.

O Dialogflow fornece entidades predefinidas do sistema que podem corresponder a muitos tipos comuns de dados. Por exemplo, há entidades do sistema que correspondem a datas, horários, cores, endereços de e-mail e assim por diante. Também é possível criar suas próprias entidades personalizadas para corresponder a dados personalizados. Por exemplo, defina uma entidade vegetal que possa corresponder aos tipos de vegetais disponíveis para compra com um agente de mercearia.

Contextos

Os contextos do Dialogflow são semelhantes ao contexto da linguagem natural. Se alguém diz "eles são azuis", você precisa de contexto para entender a que "eles" está se referindo. Da mesma forma, para o Dialogflow processar uma expressão de usuário final como essa, ele precisa de contexto para corresponder corretamente uma intent.

Usando contextos, é possível controlar o fluxo de uma conversa. Para configurar contextos para uma intent, configure contextos de entrada e saída, identificados pelos nomes de string. Quando uma intent é correspondida, todos os contextos de saída configurados para essa intent são ativados. Embora os contextos estejam ativos, é mais provável que o Dialogflow corresponda às intents configuradas com contextos de entrada correspondentes aos contextos ativos no momento.

O diagrama a seguir mostra um exemplo que usa contexto para um agente bancário.

Diagrama do usuário interagindo com intents e contexto.
  1. O usuário final pede informações sobre a conta corrente dele.
  2. O Dialogflow corresponde essa expressão de usuário final à intent CheckingInfo. Essa intent tem um contexto de saída checking, para que o contexto seja ativado.
  3. O agente solicita ao usuário final o tipo de informação que ele quer sobre a conta corrente.
  4. O usuário final responde "meu saldo".
  5. O Dialogflow corresponde essa expressão de usuário final à intent CheckingBalance. Essa intent tem um contexto de entrada checking, que precisa estar ativo para corresponder a ela. Também pode haver uma intent SavingsBalance semelhante para corresponder à mesma expressão de usuário final quando um contexto savings estiver ativo.
  6. Depois que o sistema executa as consultas necessárias no banco de dados, o agente responde com o saldo da conta corrente.

Intents de continuidade

Use intents de continuidade para definir contextos automaticamente para pares de intents. Uma intent de continuidade é um filho da respectiva intent pai associada. Quando você cria uma intent de continuidade, um contexto de saída é automaticamente adicionado à intent pai e um contexto de entrada com o mesmo nome é adicionado à intent de continuidade. Uma intent de continuidade só é correspondida quando a intent pai é correspondida na fala anterior. Também é possível criar vários níveis de intents de continuidade aninhadas.

O Dialogflow oferece muitas intents de continuidade predefinidas para respostas comuns dos usuários finais, como "sim", "não" ou "cancelar". Crie suas próprias intents de continuidade para lidar com respostas personalizadas.

Console do Dialogflow

O Dialogflow fornece uma interface de usuário da Web chamada Console do Dialogflow (acesse a documentação e abra o console). Esse Console é usado para criar, desenvolver e testar agentes.

O Console do Dialogflow é diferente do Console do Google Cloud Platform (GCP). Acesse a documentação (em inglês) e abra o Console. Ele é usado para gerenciar agentes do Dialogflow, e o Console do GCP é usado para gerenciar configurações do Dialogflow específicas do Cloud Platform, como faturamento, e outros recursos do GCP.

Na maioria dos casos, é necessário usar o Console do Dialogflow para criar agentes, mas também é possível usar a API Dialogflow para criar agentes de cenários avançados.

Interações do usuário com as integrações

O Dialogflow se integra a muitas plataformas de conversação conhecidas, como o Google Assistente, o Slack e o Facebook Messenger. Caso queira criar um agente para uma dessas plataformas, use uma das muitas opções de integrações. As interações diretas do usuário final são administradas para que você possa se concentrar na criação do seu agente. Cada integração resolve as interações do usuário final especificamente conforme definido para a plataforma. Por isso, consulte a documentação da sua plataforma de integração para saber mais.

Fulfillment de integrações

Por padrão, seu agente responde a uma intent correspondente com uma resposta estática. Se você estiver usando uma das opções de integração, poderá fornecer uma resposta mais dinâmica usando fulfillment. Quando você ativa o fulfillment para uma intent, o Dialogflow responde a essa intent chamando um serviço definido por você. Por exemplo, se um usuário final quiser programar um corte de cabelo para sexta-feira, seu serviço poderá verificar o banco de dados e responder com informações de disponibilidade para o dia em questão.

Cada intent tem uma configuração para ativar o fulfillment. Ative-o caso uma intent precise de uma ação do sistema ou de uma resposta dinâmica. Se uma intent sem o fulfillment ativado for correspondida, o Dialogflow usará a resposta estática que você definiu para a intent.

Quando uma intent com o fulfillment ativado é correspondida, o Dialogflow envia uma solicitação para seu serviço de webhook com informações sobre a essa intent. O sistema pode tomar qualquer medida necessária e responder ao Dialogflow com informações sobre como proceder. Quando o fulfillment está ativado, a resposta estática definida para a intent só é usada se o serviço de webhook falhar. O diagrama a seguir mostra o fluxo de processamento do fulfillment.

Diagrama com o fluxo do fulfillment
  1. O usuário final digita ou fala uma expressão.
  2. O Dialogflow combina a expressão do usuário final a uma intent e extrai parâmetros.
  3. O Dialogflow envia uma mensagem de solicitação de webhook para o serviço de webhook. Essa mensagem contém informações sobre a intent correspondida, a ação, os parâmetros e a resposta definida para a intent.
  4. O serviço toma as medidas necessárias, como consultas de banco de dados ou chamadas de API externas.
  5. O serviço envia uma mensagem de resposta de webhook para o Dialogflow contendo a resposta a ser enviada ao usuário final.
  6. O Dialogflow, por sua vez, faz o que foi solicitado.
  7. O usuário final vê ou ouve a resposta.

Interações do usuário com a API

Se você não estiver usando uma das opções de integração, escreva um código que interaja diretamente com o usuário final. Você também precisa interagir diretamente com a API do Dialogflow em cada turno da conversa para enviar expressões do usuário final e receber correspondências de intent. O diagrama a seguir mostra o fluxo de processamento ao interagir com a API.

Diagrama mostrando o fluxo da API
  1. O usuário final digita ou fala uma expressão.
  2. O serviço envia essa expressão de usuário final para o Dialogflow em uma mensagem de solicitação de intent de detecção.
  3. O Dialogflow, por sua vez, envia uma mensagem de resposta com intent de detecção ao seu serviço. Essa mensagem contém informações sobre a intent correspondida, a ação, os parâmetros e a resposta definida para a intent.
  4. O serviço toma as medidas necessárias, como consultas de banco de dados ou chamadas de API externas.
  5. O serviço envia uma resposta para o usuário final.
  6. O usuário final vê ou ouve a resposta.