Dicas para criar um chatbot com ferramentas open source da Microsoft
Um Chatbot nada mais é do que um Bot Inteligente que entende a linguagem natural e tem a capacidade de criar e manter um diálogo com o usuário. Como já vimos, essa diálogo pode envolver vários tipos e níveis de serviços ao cliente, desde responder a perguntas básicas até fazer um pedido.
Quando falamos de Chatbots, a primeira coisa em que pensamos é na janelinha pop-up com campo para digitação. Isso se tornou o padrão de fato, mas há muitas outras possibilidades para interagir com o Chatbot. Por exemplo, você pode usar comandos de voz, gestos e movimentos porém não se limitam a só isso, os Chatbots podem ser acionados por exemplo com eventos enviados por um dispositivo IoT. A versatilidade dos Chatbots está em constante evolução e vamos vê-los implantados de maneiras cada vez mais diversificadas.
A Microsoft disponibiliza algumas ferramentas Open Source no seu pacote Microsoft Bot Framework que facilitam e aceleram o desenvolvimento para os mais diversos tipos de Chatbots, nesse texto vamos abordar algumas destas ferramentas, sendo elas, Bot Builder SDK, BotFramework-WebChat e BotFramework-Emulator. Dentre as vantagens de utilizar as soluções open source da Microsoft, podemos citar a grande comunidade engajada em auxiliar novos usuários, comunidade ativa usando, testando e discutindo melhorias, resolução rápida de bugs no código e até mesmo na redução dos custo no desenvolvimento.
Bot Builder SDK
O Bot Builder SDK permite construir bots para os mais diversos tipos de propósito, A versão 3 do sdk está disponível para csharp e node enquanto a versão 4 (em preview até o momento) está disponível para .NET, JavaScript, Python e Java, dentre os principais conceitos do Bot Builder SDK temos:
Connector, o SDK fornece as classes UniversalBot e ChatConnector para configurar o seu bot para enviar e receber mensagens através do Bot Framework Connector.
Messages, além de mensagens de texto comum, existe o conceito de cards, com os cards conseguimos criar mensagens mais ricas, mensagens por exemplo com:
Cards com botões, imagens, GIFs animados, vídeos, áudios, resposta rápida e com exibição única, carrossel ou lista para vários cartões.
Na imagem ao lado temos exemplos de como as mensagens e cards são exibidas no BotFramework-WebChat.
Dialogs, importante para isolar dialogos r organizar o fluxo da conversação.
Actions, com manipuladores globais podemos lidar com pedidos de cancelamento ou ajuda a qualquer momento durante o fluxo de conversação.
Recognizers, entender a intenção do usuário e tomar a ação mais adequada, talvez seja a principal função do SDK.
Saving State, fica guardado no session todas as informações relativas ao usuário e o dialogo durante a conversação.
Natural language understanding, com a classe LuisRecognizer podemos utilizar o LUIS por padrão e já acionar os diálogos de acordo com a intenção identificada.
Show me the code
Abaixo temos um exemplo bem básico em node.js de para subir um bot com o Bot Builder SDK, no exemplo subimos um servidor, configuramos o conector, disponibilizamos um endpoint e criamos um bot que repete tudo que foi digitado. Para posteriormente registrar o bot no Azure Bot Service esse código pode ser colocado em qualquer servidor e seu end-point deve responder com https.

BotFramework-WebChat
O BotFramework-WebChat é a interface web que possibilita o dialogo entre um usuário e o chatbot utilizando a API do DirectLine, sua construção é baseada em React porém pode ser incorporado a qualquer uma página web mesmo não React.
Para sites não React, basicamente é preciso adicionar em sua página os arquivos botchat.css e botchat.js gerados no build do projeto.
Totalmente personalizavél, faça um clone ou fork do repositorio no github, altere o que precisa, rode o build!
Na imagem ao lado temos o layout padrão do WebChat.
BotFramework-Emulator
O BotFramework-Emulator é um aplicativo de desktop feito em Electron que permite que desenvolvedores de bots testem e depurem seus bots no localhost sem necessidade do connector.
Na imagem ao lado temos um Emulador rodando, na barra superior colocamos a url do bot, na lateral esquerda temos a conversação entre o usuário e o bot, na lateral direita temos informações detalhadas das mensagens para facilitar o debug.
Azure Bot Service
Com ajuda do Azure Bot Service temos ambiente completo de criação, deploy, gerenciamento e integração de Chatbots, pagando somente pelo o que usar. Vamos abordar nesse texto alguns recursos intressantes do Azure Bot Service:
Azure Bot Service – Channels
Responsável pela integração entre o Chatbot e cliente, na área de Channels conseguimos disponibilizar o Chatbot para vários canais como:
- WebChat
- Direct Line
- Cortana
- Microsoft Teams
- Skype
- Bing
- Facebook Messenger
- GroupMe
- Kik
- Skype for Business
- Slack
- Telegram
- Twilio (SMS)
Azure Bot Service – Analytics
Na área de Analytics conseguimos visualizar algumas informações de acesso ao Chatbot como:
Totais Gerais, Retenção de Usuários, Total de Usuários, Total de Mensagem, Gráfico de Usuários, Gráfico de Canais, Filtro por Período, Filtro por Canal.
Azure Bot Service – Issues
Exibe erros na integração entre o Channel e o Chatbot, é uma maneira fácil e rápida para visualizar e encontrar o motivo do problema:
Azure Bot Service – Online Test
Serviço baseado no BotFramework-WebChat que nos permite testar o Chatbot antes mesmo de disponilizalo em algum canal.
A Dextra oferece total expertise na construção de um Chatbot para a sua necessidade, vamos conversar?