Dialogflow - Plataforma para desenvolvimento de ChatBots

Dialogflow é uma plataforma para construir interfaces de conversação para aplicativos e dispositivos. Desenvolvida pela Speaktoit e lançada em setembro de 2014 como api.ai, foi comprada pelo Google em 2016. Em outubro de 2017, foi renomeada de api.ai para Dialogflow.

Por meio dela, é possível criar chatbots para controlar dispositivos IoT, automatizar atendimentos, dentre outras utilidades.

Afinal, o que é um chatbot? Um chatbot nada mais é do que software que simula um ser humano em uma troca de mensagens, é amplamente utilizada para atender clientes, dar informações sobre produtos/serviços, entre outras funções.

Com a evolução da tecnologia, os chatbots estão sendo implementados em diversas plataformas/devices, desde a plataforma mais simples às grandes aplicações que envolvem complexos softwares de Inteligência Artificial, os bots estão, ou podem estar, presentes.

 

A plataforma

A plataforma de desenvolvimento do Dialogflow é online e pode ser acessada através do site https://dialogflow.cloud.google.com.

Dialogflow

Figura 1- Visão geral da plataforma

 

Funcionalidades

 

Intents

Intents, são usadas para categorizar as intenções de um usuário e mapear a entrada do usuário para ações e respostas. Por padrão, cada agente é criado com duas intenções: “Default Welcome Intent” e “Default Fallback Intent”, a primeira se trata de uma intenção de boas-vindas e caso o chatbot não consiga encontrar nenhuma intenção correspondente à entrada do usuário, a intenção de Fallback é acionada.

Dialogflow

 Figura 2- Intents

 

Nas intenções são configurados os seguintes parâmetros:

  • Contexts: Utilizado para controlar o fluxo da conversa;
  • Events: Os eventos permitem invocar intenções com base em algo que aconteceu, e não no que o usuário se comunica. O Dialogflow suporta eventos de várias plataformas (como Google Assistant, Slack e mais) com base nas ações que os usuários executam nessas plataformas.
  • Training phrases: Frases para treinar o modelo da machine learning. A machine learning compara a consulta com todas as intenções do agente e atribui a cada intenção uma pontuação. A correspondência é feita com a intenção de pontuação mais alta. Se a intenção de pontuação mais alta tiver uma pontuação muito baixa, a correspondência será feita com a intenção de fallback.
  • Action and parameters:
    • Action: O campo de ação é um campo de conveniência simples que ajuda na execução de lógica no serviço. No momento de criação de um agente, é possível definir esse campo para qualquer texto que achar útil. Quando há correspondência de uma intenção no ambiente de execução, o Dialogflow fornece o valor de ação para sua solicitação de webhook de fulfillment ou a resposta de interação da API. É possível usá-lo para acionar a lógica específica no serviço.
    • Parameters: Quando há correspondência de uma intenção no ambiente de execução, o Dialogflow fornece os valores extraídos do enunciado do usuário final na forma de parâmetros. 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. A documentação do Dialogflow fornece uma explicação mais detalhada sobre os parâmetros das intents, no final deste artigo constará a referência.
  • Responses: Resposta do agente. É possível adicionar variações de respostas, que serão mostradas ao usuário de forma aleatória, os parâmetros podem ser usados nas respostas (Ex.: Resposta: “Eu também gosto de $color”, se o usuário diz que a cor preferida dele é azul, o bot vai dizer: “Eu também gosto de azul”). Também é possível adicionar respostas customizadas para cada tipo de plataforma de integração (Ex.: Imagem, Card). Na seção “Integrations” são mostradas quais são as plataformas de integração disponíveis no Dialogflow.
  • Fulfillment: É possível habilitar o webhook para chamar a intenção e habilitar o preenchimento de slot. Na seção “Fulfillment” é detalhado o uso desta função.

 

Entities

As entidades são tipos específicos de dados que você quer que o Dialogflow extraia dos enunciados do usuário. Usado para criar lista de palavras, ou dar grande peso para uma palavra.

  • System entities: O Dialogflow já vem com algumas entidades pré-definidas, como por exemplo, data, horário, números inteiros, etc. As entidades do sistema começam com a palavra “sys” (Ex: @sys.date).
  • Developer entities: As entidades de desenvolvedor podem e precisam ser usadas para qualquer coisa que não esteja incluída nas entidades do sistema. É necessário que elas tenham valores que você espera que os usuários usem. Assim como no caso das “training phrases”, quanto mais entidades você fornecer, melhor o agente processará as entradas.

 

Figura 3- Entities

 

Para criar uma entidade, pode-se definir sinônimos, como por exemplo, criar uma entity “Linguagens de programação”, na imagem abaixo é mostrada a entity criada utilizando “Define synonyms”.

Figura 4- Exemplo de entidade

 

Quando é necessária uma correspondência exata, como por exemplo, número de cpf, Ids, etc., utiliza-se o “Regexp entity”. Neste caso, não é possível definir sinônimos, nem utilizar o “Fuzzy matching”. Pode-se também utilizar expressões regulares, por exemplo, “^[1-9]{2} [9][0-9]{4}\-[0-9]{4}$” para número de celular.

Com o “Allow automated expansion” marcado, o agente é capaz de reconhecer valores que não foram listados explicitamente na entidade, ou seja, o agente utiliza a machine learning para encontrar itens semelhantes aos listados na entidade.
O “Fuzzy matching” é responsável pela busca independentemente da posição na frase. É mais utilizado quando se tem valores com mais de uma palavra, por exemplo, bola pequena e pequena bola.

 

Knowledge[beta]

Suportado somente em Inglês. Quando habilitado, o agente analisa documentos (por exemplo, perguntas frequentes ou artigos) para encontrar respostas automatizadas. Para configurá-los, você define uma ou mais bases de conhecimento, que são coleções de documentos. Você pode ativar as bases de conhecimento para seu agente, para que todas as solicitações de intenção de detecção possam encontrar respostas automatizadas usando suas bases de conhecimento.

 

Fulfillment

Fulfillment é o código implantado como um webhook que permite que o agente do Dialogflow chame a lógica de negócios de intenção a intenção. Durante uma conversa, o fulfillment permite usar as informações extraídas pelo processamento de linguagem natural do Dialogflow para gerar respostas dinâmicas ou acionar ações no seu back-end.
Para usar o fulfillment, é necessário configurar um webhook, que é um endpoint de servidor da web criado e hospedado por você.

Solicitação de webhook:

  • Quando é feita a correspondência com uma intenção com fulfillment ativado, o Dialogflow faz uma solicitação HTTP POST para seu webhook com um objeto JSON contendo informações sobre a intenção correspondente.
  • Depois de receber uma solicitação, o webhook pode realizar todas as tarefas necessárias. Por exemplo, o webhook pode usar informações da solicitação para pesquisar um produto em um banco de dados ou fazer um pedido.
  • Por fim, o webhook precisa responder com instruções sobre o que o Dialogflow fará em seguida.

Resposta do webhook:

  • Depois de receber a solicitação, o webhook precisa fornecer uma resposta. Nessa resposta, é possível especificar os seguintes itens:
    • A resposta que o Dialogflow retorna ao usuário;
    • Atualizações nos contextos anexados à conversa;
    • Um nome de evento de continuidade que provoca a invocação de outra intenção;
    • Um payload arbitrário que pode ser enviado ao autor da chamada original do Dialogflow.
    • É possível criar e implantar um webhook usando seu ambiente de desenvolvimento preferido ou o editor de códigos in-line.

 

Figura 5- Fulfillment

 

Para um webhook personalizado, habilite a função no canto superior direito da tela e insira a URL do endpoint HTTPS criado por você. Para o funcionamento correto, é necessário ativar o fulfillment dentro de cada intenção.

Figura 6- Webhook

 

É importante proteger o webhook para evitar chamadas indesejadas e potencialmente mal-intencionadas. O Dialogflow é compatível com dois mecanismos de autenticação:

  • Autenticação básica com login e senha;
  • Autenticação com cabeçalhos de autenticação adicionais.

Se o webhook não exigir autenticação, deixe os campos em branco.

Também há a opção de criar um webhook com o editor in-line: Um código funcional é fornecido para ajudar você a dar os primeiros passos. Para implantar o código, basta clicar em ‘Deploy’.

Figura 7- Editor Inline

 

Para exportar o código, basta clicar no botão de download no canto superior direito da tela do código.

Webhook para preenchimento de slot (Slot filling): Se você ativar o preenchimento de slot de uma intenção, terá a opção de ativar o fulfillment para gerenciar parâmetros obrigatórios ausentes. Para utilizar essa ferramenta, basta habilitar as opções “Enable webhook call for this intent” e “Enable webhook call for slot filling”.

Figura 8- Preenchimento de slot

 

Assim, o webhook será chamado sempre que o Dialogflow detecta um parâmetro ausente.


 Integrations

Depois de compilar o agente no Dialogflow, use as ferramentas de integração para disponibilizá-lo em várias plataformas. Com as integrações em um clique do Dialogflow, é possível gerenciar a integração do agente com o Google Assistente por meio do Actions on Google e muitas outras plataformas de mensagens famosas, como o Slack, o Facebook Messenger e o Twitter. A documentação do Dialogflow fornece uma explicação mais detalhada sobre cada plataforma de integração, no final deste artigo constará a referência. A Imagem abaixo mostra as plataformas de integração disponíveis:

Figura 9- Integrações

 

Training

Como o processamento de linguagem natural do Dialogflow baseia-se em machine learning, é possível adicionar dados de treinamento que o agente aprenderá e usará para melhorar o desempenho.

O recurso de treinamento do Dialogflow fornece uma interface para incorporar registros externos e internos de interação com o cliente nas frases de treinamento do agente. É possível usar esse recurso para criar um novo agente do Dialogflow utilizando os registros de interação com o cliente que você já tem e/ou para melhorar o desempenho de um agente dinâmico com os próprios registros dele.

A página “Training” (Treinamento) mostra uma lista de conversas. À medida que os clientes conversam com o agente, os registros aparecem automaticamente na lista de conversas. Também é possível fazer upload dos dados de registro coletados externamente ao Dialogflow.

Figura 10- Training


Em cada conversa na lista, são exibidas as informações a seguir:

  • Conversation: O primeiro enunciado na conversa;
  • Requests: O número de solicitações na conversa. No caso de uma conversa registrada na interação com o agente, o termo solicitação refere-se a uma mensagem do usuário direcionada ao agente. No caso de upload de dados como um arquivo de texto, cada linha no arquivo é considerada uma solicitação;
  • No match: O número de solicitações “sem correspondência”. Equivale ao número de solicitações que atualmente não têm correspondência com uma intent;
  • Date: A data de registro ou upload da conversa;
  • Status (opcional): O status mostra se as solicitações foram anteriormente atribuídas a intenções, indicado por uma marca de verificação verde.

 

A documentação do Dialogflow fornece uma explicação mais detalhada sobre o processo de treinamento, no final deste artigo constará a referência.

 

Validation[beta]

O Dialogflow fornece um recurso de validação. Os resultados da validação do agente estão disponíveis automaticamente sempre que o treinamento do agente é realizado e concluído.

Os resultados da validação fornecem uma lista de erros e avisos que você deve corrigir para melhorar a qualidade e o desempenho do seu agente.

Você poderá ignorá-los e iniciar o seu agente. Aqui estão alguns exemplos que você pode encontrar:

  • Intenção possui frases de treinamento muito semelhantes;
  • Intent contém um parâmetro que não é usado em frases de treinamento suficientes;
  • Não há exemplos negativos para a intenção de fallback.

Figura 11- Validation

 

A documentação do Dialogflow fornece uma explicação mais detalhada sobre o Validation, no final deste artigo constará a referência.

 

History

A página History mostra uma versão simplificada das conversas com o agente. Esses registros são cronológicos e proporcionam uma visão geral de como os usuários interagem com o agente. É possível tirar o log de cada mensagem enviada pelo agente.

Figura 12- History

 

A documentação do Dialogflow fornece uma explicação mais detalhada sobre o History, no final deste artigo constará a referência.

 

Analytics

A página de análise oferece insights sobre o desempenho do agente. Esses insights ajudam você a definir o que é necessário para melhorar ainda mais a experiência do usuário.

São exibidos dois tipos de dados relacionados ao agente e às conversas:

  • Dados de uso: número de sessões e consultas por sessão;
  • Dados de processamento de linguagem natural (PLN): intents mais usadas e porcentagens de saída.

Figura 13- Analytics

 

A documentação do Dialogflow fornece uma explicação mais detalhada sobre o Analytics, no final deste artigo constará a referência.

 

Prebuilt Agents

Os Prebuilt Agents são uma coleção de agentes desenvolvidos pela equipe do Dialogflow com o objetivo de abranger casos de uso específicos. É possível usá-los para estabelecer uma base para criar conversas que abordam tópicos específicos, como jantar fora, reserva de hotel e navegação.

Figura 14- Prebuilt Agents

 

Configurações

Para acessar as configurações do agente, basta clicar na engrenagem ao lado do nome do projeto.

Figura 15- Configurações

 

  • General: Na aba General é possível alterar o nome do projeto, a descrição e o fuso horário. Logo abaixo está o ID do projeto e a conta de serviço. Depois estão disponíveis informações sobre APIs e configurações de LOG.
  • Languages: Idioma do agente.
  • ML Settings: Configurações e informações sobre a Machine Learning utilizada.
    Export and Import: Opções de exportar ou importar agentes. Todos os arquivos (Intents, Entities, etc) são no formato JSON.
  • Environments: Use os recursos de versões e ambientes do Dialogflow para implantar várias versões do seu agente em instâncias personalizáveis e separadas de ambientes, dependendo das suas necessidades. É possível configurar ambientes separados para teste, desenvolvimento e produção, além de controlar qual versão do agente será usada em cada um deles.
  • Speech: Habilitar TTS (Text to Speech). Quando este recurso é habilitado todas as respostas do chatbot ficarão disponíveis também em formato de áudio.
  • Share: Opções de compartilhamento, é possível adicionar pessoas como desenvolvedores ou revisores.
  • Advanced: Disponível apenas para Enterprise Edition.

 

Preço e Cotas para o DialogFlow

Estão disponíveis para uso as versões “Standard Edition” e “Enterprise Edition”. A versão “Standard Edition” é gratuita e bem completa, supre a necessidade da maioria dos desenvolvedores, já a “Enterprise Edition” oferece suporte corporativo pago. São disponibilizadas cotas para cada tipo de versão, o preço é calculado de acordo com o uso, ou seja, você paga o quanto você utiliza os serviços.


Preços:

Figura 16- Preços Standard Edition e Enterprise Edition - Imagem retirada de https://dialogflow.com/pricing


Cotas:

DialogFlow

Figura 17- Cotas de uso Standard Edition e Enterprise Edition - Imagem retirada de https://cloud.google.com/dialogflow-enterprise/quotas?hl=pt-br

 

Conclusão

Neste artigo foi apresentada a plataforma Dialogflow e suas funcionalidades. A plataforma, disponibilizada pelo Google, é fácil de usar e bem intuitiva, sua documentação é muito boa e consegue abranger toda a plataforma.  

No próximo texto vamos desenvolver um chatbot utilizando o Dialogflow para realizar reservas de mesas em um restaurante. Todos os detalhes do desenvolvimento desse chatbot serão documentados no texto e você poderá integrar o chatbot com qualquer tipo de aplicação web.

 

Referências - DialogFlow

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Software » Dialogflow - Plataforma para desenvolvimento de ChatBots
Talvez você goste:

Nenhum resultado encontrado.

Comentários:

Deixe um comentário

avatar
  Notificações  
Notificar

Séries

Menu