Tecnologia

Dicas para criar um chatbot com ferramentas open source da Microsoft

Por: , julho 13, 2018

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.

bot

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

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:

rich-messages

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.

code

BotFramework-WebChat

webchat

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

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:

channels-big

  • WebChat
  • Direct Line
  • Cortana
  • Microsoft Teams
  • Skype
  • Bing
  • Email
  • 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.

dashboard-full

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:

issues

Azure Bot Service – Online Test

Serviço baseado no BotFramework-WebChat que nos permite testar o Chatbot antes mesmo de disponilizalo em algum canal.

teste-online-2

 

A Dextra oferece total expertise na construção de um Chatbot para a sua necessidade, vamos conversar?

  • Receba nosso conteúdo em primeira mão.