Site icon Embarcados – Sua fonte de informações sobre Sistemas Embarcados

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.

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.

 Figura 2- Intents

 

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

 

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.

 

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:

Resposta do webhook:

 

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:

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:

 

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:

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:

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

 

 

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:

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