Criando um bot para o Messenger Utilizando o Wit.ai

No post anterior, eu demonstrei como criar e treinar um app no Wit.ai . Agora chegou a hora de integrarmos esse app a uma plataforma de mensagens. Para isso, neste post, eu irei mostrar como pode ser feita a integração entre o Wit.ai e o Facebook Messenger com o objetivo de criar um bot para apresentar os resultados da loteria (o exemplo de sempre kkkk).

Neste post, eu estou supondo que você já criou uma página no Facebook, a qual será associada ao nosso bot.

Sem mais blá-blá-blá, vamos lá! =]

1- Configuração no Console do Facebook

Primeiramente, precisamos criar um app no console de desenvolvedores do Facebook. Para isso, basta acessar o link: https://developers.facebook.com. Ao acessar a página, no menu “Meus Aplicativos” clicamos em “Adicionar Novo Aplicativo”.

Logo em seguida, será exibido um popup no qual devemos inserir o nome do app e um email para contato. Feito isso, é só clicar em “Criar Identificação do Aplicativo”.

Com o app criado, na seção “Adicionar um Produto”, clicamos em “Configurar” no Messenger.

Na página de configuração do Messenger, selecionamos a página que será associada ao bot para que o token possa ser gerado.

Feito isso, o próximo passo é informamos ao Facebook a URL do nosso Webhook e o token (todo esse processo é semelhante ao descrito no post sobre bots para o Messenger).

Agora que o Webhook está salvo, selecionamos a página que será inscrita para receber seus eventos.

Com o Webhook configurado, vamos agora integrar nosso app do Wit.ai. Para isso, na seção “PLN integrado”, escolhemos a página, mudamos o botão para “Ativado” e escolhemos o modelo de idioma “Custom Model”.

Na imagem acima é possível perceber que existe um botão “Link para o aplicativo Wit existente”. Esse botão tem como objetivo associar o nosso app no Wit.ai com app do Facebook. Sendo assim, ao clicarmos nele, deveremos inserir o token (o post anterior mostra onde ele pode ser encontrado) do nosso app no Wit.ai.

Feito isso, a seção “PLN integrado” ficará semelhante a da imagem abaixo:

A parte que deve ser feita no console de desenvolvedor do Facebook acaba aqui. Agora, iremos parte para a codificação.

2- Implementação do Bot

Quando ativamos o PLN no console de desenvolvedor, nós informamos ao Facebook que nosso bot irá fazer uso de processamento de linguagem natural através do Wit.ai. Sendo assim, quando o usuário enviar uma mensagem, ela irá primeiro ao servidor do Wit.ai para ser processada. Quando o Wit.ai identificar a entidade e a intenção da mensagem, ai sim, esses dados serão enviados ao nosso Webhook e nosso bot poderá responder de acordo com a solicitação do usuário.
Seguindo essa linha de raciocínio, a mensagem, no formato JSON, recebida pelo nosso bot terá o seguinte formato:

Se compararmos esse JSON, ao que mostrei no post sobre a criação de bots para o Messenger, podemos notar que foram acrescentadas à mensagem os atributos identificados pelo Wit.ai. Esses atributos estão contidos no objeto nlp. Com eles em mãos, precisamos apenas extraí-los e responder de acordo.

O código abaixo mostra a implementação completa do bot. Nesse código, mais precisamente no método checkConfidence, foi definido um limiar (0,8 no caso) para o atributo confidence do Wit.ai. Dessa forma, acima do limiar nós utilizamos a interpretação do Wit.ai. Caso seja abaixo, o bot informa que não entendeu a mensagem. Esse limiar é utilizado tanto para verificar se a mensagem é sobre resultados quanto para saber qual é o nome da loteria solicitada. É importante observar que o nome da loteria é obtido no atributo value.

O funcionamento do bot, pode ser visto na imagem abaixo:

O código completo do bot desenvolvido nesse post pode ser encontrado em: Código Fonte

Bom, é isso! Qualquer dúvida, deixa um comentário. =]

 

 

 

Deixe uma resposta