Crie o Seu Primeiro Chatbot em 15 minutos

O guia completo e simples para começar a usar o Dialogflow

Michael Barney Jr
Bots Brasil
12 min readMay 29, 2020

--

Recentemente, vimos uma Expansão enorme no mundo das Interfaces Conversacionais. Elas vão desde a sua conversa com a Siri e o Google Assistant até a troca de mensagens no bot de atendimento de diversas empresas.

Existem realmente vários tipos de chatbots, mas você sabia que a porta de entrada para criar o seu próprio é muito fácil?

Nesse texto, vou te mostrar em 15 minutos como criar o seu próprio chatbot usando a ferramenta profissional do Dialogflow.

1- O que é o Dialogflow?

O Dialogflow é uma ferramenta profissional criada pela Google para a criação de Interfaces Conversacionais. Ela tem dois objetivos:

  • Permitir a construção das conversas de um Chatbot
  • Fornecer uma Inteligência Artificial capaz de entender propósitos, entidades e contextos de uma conversa.

Para acessar a plataforma, basta entrar em dialogflow.com e fazer o Sign-In com a sua conta do Google e ir para o console.

2- Criando o seu Agente

Assim que entrar no console… bem, não tem nada ainda. Então vamos criar o primeiro Agente. O agente é justamente o bot responsável por lidar com a conversa dos usuários. Para fazer isso, é só clicar em "Create Agent".

Depois disso, precisamos só fazer algumas configurações:

  • Agent Name: O nome do seu Agente.
  • Default Language: A língua do seu chatbot. A Inteligência Artificial em inglês é a que tem o melhor funcionamento, mas a de português também é incrível.
  • Default Time Zone: O fuso horário que seu bot vai obedecer. Se um usuário escrever: "quero um alarme amanhã". O bot usará o fuso horário para determinar essa data e horário.
  • Google Project: O projeto da Google Cloud (servidor na núvem) usado para hospedar o seu Chatbot. Você pode deixar em "Create a New Google Project" para criar um projeto novo. Mas não se preocupe, você não vai pagar por nada disso! A plataforma será GRATUITA enquanto seu bot enviar menos do que 180 mensagens por minuto. (ex: 180 mensagens por minuto seria equivalente a seu bot enviar 2 mensagens para 90 pessoas em 1 minuto)

Agora é só clicar em "Create" para criar o seu chatbot.

3- Comece a Conversa

Com o agente criado, vamos começar a preencher a conversa. Para isso, vamos para a parte de Intents do Dialogflow.

Cada Intent (ou propósito) representa uma troca de mensagem entre o usuário e o chatbot. Assim, cabe à Inteligência Artificial (IA) do Dialogflow detectar qual é Intent deve ser chamado de acordo com a mensagem que o usuário enviou.

Por exemplo, se um usuário digitar "Oi!", a IA vai detectar que o usuário está com o propósito de saudar o chatbot, chamando a intent de saudação que responderá para o usuário "Olá!".

Veja que o Dialogflow já criou para você duas Intents, uma de Saudação (Default Welcome Intent) e uma para Exceção (Default Fallback Intent).

Ao clicar no Default Welcome Intent, veja que existe uma seção para frases de treinamento (training phrases):

Cada expressão adicionada reflete uma maneira diferente do usuário enviar uma saudação para o bot, ativando este intent. O bom da IA do Dialogflow é a sua capacidade de entender também mensagens parecidas com frases de treinamento. Assim, não só o bot entenderá quando o usuário falar "oi tudo bem" mas também variações como "Opa! Tudo bem?"

Mais abaixo — lá em baixo mesmo — você vai ver também uma seção para adicionar respostas (responses). Estas serão as respostas enviadas para o usuário quando o Intent for detectado.

No exemplo acima, quando o Default Welcome Intent for detectado, será enviado a mensagem "Olá!" ou a mensagem "Oi!".

😃— “Opa!”

🤖 — “Olá!".

Caso você queira mandar mais de uma mensagem para o usuário, basta clicar em "Add Responses" e em seguida "Text Response":

Através dessas respostas, o bot agora vai ter o comportamento:

😃 — “Opa!”

🤖 — “Oi! Seja Bem-vindo à Monster Loja!”

🤖 — “Você quer comprar ou vender?”

Para testar o envio dessa mensagem, basta ir à seção de teste, localizada à direita da página. Nela, você pode escrever um texto e ver qual foi a Intent detectada.

Mas, o que acontece se um usuário enviar uma mensagem que não seja categorizado em uma Intent criada?

É para isso que existe o Default Fallback Intent. Nele, suas respostas serão enviadas somente se nenhum outro Intent for detectado:

Assim, o bot irá enviar uma resposta mesmo que não tenha sido programado para responder ela:

😃 — “Como você está?”

🤖 — “Lamento, mas não compreendi”

4- Continuando a Conversa

Nesse exemplo da Monster Loja, o bot pergunta ao usuário se ele quer "Comprar ou Vender" assim que o usuário começa a conversa. Assim, podemos fazer uma Intent para detectar essas respostas.

Para isso, é só clicar em "Create new Intent" no painel principal das Intents e preencher o Intent Name (com o nome desejado), as frases de treinamento e respostas.

No caso da Monster Loja, criei a Intent Comprar:

e a Intent Vender:

Assim, podemos dar continuidade à conversa:

🤖 — “Você quer comprar ou vender?"

😃 — “Comprar”

🤖 — “O que você quer comprar?”

🤖 — “Temos Poções, Antídotos e MonsterBolas”

Agora, o próximo passo da conversa é fazer a venda de um produto para o usuário. Para isso, o bot precisa saber quais produtos ele está vendendo! Para isso, vamos usar entidades.

5- Criando Entidades

As entidades representam os grupos semânticos de palavras e textos. Veja alguns exemplos:

  • Números (Um, dois, 3, 4…)
  • Cidades (São Paulo, Londres, Orlando…)
  • Datas (25 de janeiro, Amanhã, Quinta, Mês Passado…)

O Dialogflow já vem com algumas entidades já criadas, como as listadas acima. Porém, existem outras que você tem que criar sozinho, como é o caso dos produtos da Monster Loja.

Para acessar o painel de criação de entidades, basta entrar na seção de Entities e clicar em "Create Entity".

Dentro do painel, o primeiro passo é definir o nome da sua entidade (Entity Name). Em seguida, basta preencher as diferentes entradas que essa entidade pode ter e os seus sinônimos. Veja o exemplo:

Por último, veja que existem algumas opções para a sua entidade. Você pode ativar cada uma delas de acordo com a sua necessidade:

  • Define Synonyms — Essa opção permite que você defina sinônimos para as suas entidades (como fiz no exemplo acima). Por padrão, ela já vem ativada.
  • Regexp Entity — Expressões regulares são representações de padrões de texto (e um assunto inteiro que você pode aprender aqui). Ativando essa opção você vai poder definir padrões mais complexos, como um CPF.
  • Allow Automated Expansion — Ao ativar essa opção, o agente poderá reconhecer valores que não foram fornecidos explicitamente. Por exemplo, se eu criar uma entidade para frutas somente com os valores: banana, maçã e melão. Se o usuário digitar "Quero comprar uvas", e essa opção estiver ativada, o bot irá adicionar uvas à entidade frutas automaticamente.
  • Fuzzy Matching — Por padrão, é necessária uma correspondência exata para que uma entidade seja detectada. Porém, se você ativar essa opção, seu agente poderá entender também entradas fora de ordem, escritas incorretamente ou faltando palavras.

No caso da Monster Loja, ativei apenas os Sinônimos e o Fuzzy Matching.

6- Usando Parâmetros

Agora que as entidades foram criadas, está na hora de utilizar elas! Para isso, vou criar uma Intent que detecte quando o usuário pedir um produto:

Nela, defini as frases de treinamento com as maneiras que o usuário pode pedir os produtos da loja. Veja que o Dialogflow já detectou duas categorias de entidades: números (padrão do Dialogflow) e produtos (criada previamente). Caso ele não detecte sozinho, basta selecionar a palavra desejada e selecionar a entidade correspondente:

Agora, você verá que a seção de Ações e Parâmetros (Actions and Parameters) aparecerá logo abaixo:

As Ações do Dialogflow serão úteis quando começarmos a integrar ele com programação escrita, mas isso será um tema para outro texto. Por enquanto, vamos apenas olhar para os parâmetros.

Como você já deve ter visto, o Dialogflow já preencheu os parâmetros de acordo com as entidades utilizadas. Caso deseje, você pode alterar o nome deles ou até adicionar novos através dessa interface.

Veja que têm duas opções que podem ser marcadas:

O Is List deve ser marcado caso o usuário possa escrever o mesmo parâmetro mais de uma vez na mesma frase, por exemplo:

😃 — “Quero comprar uma Banana e uma Maçã”.

Já a opção Required determina que este parâmetro é necessário para finalizar o Intent, apresentando uma mensagem caso não seja enviado pelo usuário.

No caso da Monster Loja, por exemplo, se um usuário escrever apenas "MonsterBolas" (sem informar o parâmetro de número) ou digitar um produto que não exista (sem informar o parâmetro de produto), deve ser enviado uma mensagem solicitando o preenchimento desse parâmetro. Essa mensagem é configurada preenchendo o campo "Prompt" (ele aparecerá na direita, depois do Is List, assim que a opção Required for marcada):

Perceba que no prompt de "number", escrevi dentro do texto o padrão "$produtos". Esse padrão é definido no campo value do parâmetro, sendo substituído automaticamente pelo valor preenchido:

😃 — “Quero poções”

🤖 — "Poções? Ok! Quantas serão?"

Esse padrão, chamado de variável, pode ser adicionado em qualquer parte de uma mensagem enviada pelo bot:

No exemplo acima, a resposta será automaticamente substituída com os valores escritos pelo usuário:

😃 — “Quero MonsterBolas

🤖 — “MonsterBolas? Ok! Quantas serão?”

😃 — “Duas

🤖 — "2 MonsterBolas, posso confirmar a compra?"

Agora, vamos terminar a compra do usuário. Para isso, o usuário deve responder à pergunta feita acima com uma resposta de "Sim" ou "Não". Podemos ver que, diferente das Intents criadas previamente, se um usuário escrever "Sim" em um contexto que não seja o da pergunta, o bot não deverá dar continuidade ao fluxo de compra:

🤖 — “Você quer comprar ou vender?”

😃 — “Sim!”

Portanto, precisamos de uma maneira de saber o Intent correto a ser chamado de acordo com as mensagens previamente enviadas.

7- Mantendo o Contexto

Se uma pessoa disser “isso é azul”, você precisa saber o contexto da conversa para entender ao que ela está se referindo.

Da mesma maneira, o seu bot precisa saber o contexto que o seu usuário está inserido quando ele diz "sim", podendo assim determinar a pergunta na qual o usuário está dando a resposta.

A maneira mais rápida de adicionar um Intent com contexto é através do botão "Add Followup Intent":

Através dele, você vai ser apresentado opções de Intents que são comuns necessitarem contexto (sim, não, cancelar…). Caso você queira criar um Intent vazio, é só escolher a opção “custom”. No caso da Monster Loja, vamos escolher a opção para quando o usuário diz “sim” (yes):

Quando fizer isso, um novo Intent e os contexos no qual está inserido serão criados:

O Intent original emitirá um Contexto de Saída (Output Context) que está conectado com o Contexto de Entrada (Input Context). Assim, o "Escolher Produto — Yes" somente será chamado depois do "Escolher Produto".

Por ter escolhido o padrão yes, a Intent já virá frases de entrada configuradas:

Na definição das frases de saída, podemos ainda utilizar as variáveis usadas na Intent anterior através do contexto! Veja o exemplo:

Através do #EscolherProduto-followup, pudemos usar a variável produtos criada previamente. Assim, o bot terá o seguinte comportamento:

🤖 — “2 MonsterBolas, posso confirmar a compra?”

😃 — “Sim”

🤖 — “Pronto! MonsterBolas foi adicionado no seu inventário.”

Mas, o que acontece se usuário disser não? Para resolver isso, podemos criar um Follow-Up Intent do tipo Fallback também. Basta fazer o mesmo processo que a criação da Intent yes, mas escolhendo dessa vez a opção fallback. Assim, se o usuário disser qualquer coisa que não seja "sim", essa Intent será chamada:

Assim, quando o bot obedecerá ao fluxo:

🤖 — “2 MonsterBolas, posso confirmar a compra?”

😃 — “Deixa pra lá”

🤖 — “Que pena…”

🤖 — “Quando quiser comprar algo, é só falar!”

E…pronto! Terminamos de configurar a conversa do bot.

Ainda não estamos programando nada (quando o bot diz que um item foi adicionado no inventário nada está acontecendo realmente). Nos próximos textos, vou mostrar como integrar o Dialogflow com APIs, Bancos de Dados e códigos próprios, mas por enquanto vamos logo testar o bot em alguma plataforma!

8- Adicionando Integrações

Ao entrar na seção de "Integrations", você vai se deparar com uma lista enorme de plataformas na qual o Dialogflow consegue facilmente se comunicar.

A principal com certeza é o Google Assistant, mas existem diversas outras:

Nos próximos textos, mostrarei como conectar o Dialogflow com plataformas como o WhatsApp, Facebook Messenger, Google Assistant e Telegram. Mas, para você já ver o seu bot funcionando, vamos adicionar a integração do Dialogflow Messenger.

Para ativar ela, basta selecioná-la:

Agora, você pode copiar e colar este código no seu website para que qualquer pessoa possa conversar com ele! Se você quiser ver o funcionamento do bot direto no dialogflow, é só clicar em "Try it Now" para aparecer a seguinte bolha no canto inferior-direito da página:

Ao clicar na bolha, um chat aparecerá, permitindo que você converse com o bot:

Conclusão

Hooray! Você terminou de criar o seu primeiro chatbot. Não só isso…você criou uma Interface Conversacional com uma Inteligência Artificial integrada capaz de detectar Propósitos, Entidades, Parâmetros e Contextos!

E agora? Tá animado para ir além no mundo dos chatbots? Aqui estão alguns textos para você dar o próximo passo:

Quer saber como planejar uma Interface Conversacional?

Que tal saber quais são os diferentes chatbots que você pode criar?

Se empolgou mais com as tecnologias de um bot? Já sei o texto para você:

Quer tornar a experiência do seu bot ainda melhor? Deixa comigo:

Não encontrou o que você estava procurando? Sem estresse, deixa aqui um comentário com sua pergunta ou sugestão que com certeza vou te responder!

u/Koolbob

--

--

Michael Barney Jr
Bots Brasil

Desenvolvedor apaixonado por Produtos Digitais e Plataformas Conversacionais 🤖