Criando um bot para o Telegram Utilizando o Wit.ai

No decorrer da série de posts sobre o Wit.ai, já demonstrei como criar, treinar e vincular um agente criado no Wit.ai ao Messenger. Por meio desses posts foi possível notar as principais funcionalidades do Wit.ai e entender como a integração a uma plataforma de mensagens pode ser feita.

Partindo do princípio (já virou regra kkkk) de que, aqui no blog, todas as ferramentas para bots são abordadas tanto para o Messenger quanto para o Telegram, neste post, eu apresentarei as etapas necessárias para vincular o agente do Wit.ai criado nos posts anteriores ao Telegram. É importante esclarecer que na parte de implementação deste post iremos fazer uso da linguagem PHP.

Vamos lá!

1-Criar o Bot no Telegram

Como já existe uma série de posts sobre a criação de bots para o Telegram aqui no blog, não detalharei esse tópico.

2-Implementação do Bot

Com o bot para o Telegram devidamente criado, a próxima etapa é integrá-lo ao nosso agente do Wit.ai. Para isso, inicialmente, precisamos acessar o console do Wit.ai e selecionar o menu “Settings”. Nesse menu, como mostra a imagem abaixo, encontraremos a URL da API que utilizaremos para enviar e obter as respostas a partir do nosso agente.

Ao realizarmos uma requisição à API, precisaremos informar, no cabeçalho (header) HTTP, o token do agente para possamos ter acesso às respostas geradas a partir dele. Além disso, a requisição deve ser feita via GET, sendo que a mensagem enviada pelo usuário deve ser atribuída ao parâmetro “q” da URL.

Definida a URL, podemos implementar o método que executará a requisição. Esse método, nomeado de callWitAi, recebe a mensagem do usuário e a envia, via API, para o agente.

Ao receber essa requisição, o agente do Wit.ai irá processá-la de acordo com a base de treinamento e responderá com um JSON semelhante ao abaixo:

Ao receber o JSON, o nosso método callWitAi, faz uso do método checkConfidence para checar a taxa de correspondência entre as informações presentes na mensagem e as entidades treinadas no agente. Assim como no post do sobre o Messenger, foi definido um limiar de 0.8. Dessa forma, acima do limiar, utilizaremos a interpretação do Wit.ai. Caso contrário, o bot informa que não entendeu a mensagem. É importante notar que o nome da loteria que foi identificado é obtido através do atributo value.

De posse do nome da loteria definido após a interpretação, podemos criar o código completo do nosso bot para o Telegram. Esse código é semelhante aos de posts anteriores aqui do blog, sendo acrescido apenas os métodos callWitAi e checkConfidence.  Dessa forma, o funcionamento dele, basicamente, é receber a mensagem do usuário, enviar ao Wit.ai, verificar a taxa de correspondência, utilizar o nome de loteria identificado para obter os resultados da loteria através de um parser da página do G1 e enviar essa resposta ao usuário (Ufa!!!).

A imagem abaixo mostra o funcionamento do bot que implementamos neste post:

Para testar o bot no Telegram acesse: Loteria Wit.ai

O código completo do bot desenvolvido nesse post pode ser encontrado em: Código Telegram Wit.ai

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

Deixe uma resposta