Oi pessoal, tudo bem com vocês? Há algumas semanas, comecei a fazer a maratona chatbots da Microsoft, onde aprendi a utilizar o Bot Service para desenvolver chatbots de maneira fácil e divertida. Eu e o Gustavo Bigardi, também da Lambda3, achamos a experiência tão legal que resolvemos criar uma série de posts para dividir com vocês todas as possibilidades que a ferramenta proporciona. Espero que gostem tanto quanto nós 🙂

O que são Chatbots?

Antes de tudo, uma definição simples: chatbots são bots que operam em chats virtuais (como chats do Facebook, Skype, Slack, etc.) para auxiliar um usuário a realizar tarefas específicas – podem ser programados para fazer desde as tarefas mais simples, tal como criar lembretes, até as mais complexas, como realizar uma triagem para alguma empresa. Quer um exemplo? Imagine que você tem uma companhia aérea e quer auxiliar o usuário a escolher o local das férias antes de passar o controle para um de seus vendedores; nesse cenário, um bot que fornecesse respostas às dúvidas do usuário cairia como uma luva 😀

Onde posso usar meu Chatbots?

Quer dizer que os chatbots podem ser usados para resolver qualquer problema? Não! É bom ter sempre em mente: como qualquer programa de computador, existe um limite para o que seu bot será capaz de fazer – claro, podemos estender o limite usando uma série de serviços de inteligência artificial que tornam nosso bot um pouco mais esperto (falaremos mais sobre nos próximos posts), mas o limite continuará existindo. Chatbots são ideais para lidar com tarefas bem definidas. Na imagem abaixo, por exemplo, nosso bot é capaz de anotar os pedidos de um cliente que acessou a página da nossa pizzaria, e então ele repassa o pedido a um atendente humano que o finalizará.

Imagem 1 – Bot de Pizzaria

Claro, se quiséssemos, poderíamos ter feito nosso bot concluir todo o pedido sozinho… mas isso seria mesmo necessário? Uma coisa que demorei um pouco para entender é: “todo bot tem um limite, e quanto mais você tenta estender esse limite, quanto mais tenta torná-lo capaz de lidar com os diferentes rumos que uma conversa pode tomar, mais difícil se tornará programá-lo e mantê-lo”. A tendência é que isso mude no futuro, mas, por hoje, é como as coisas são.

Sobre o Bot Service

O Bot Service é o nome do serviço da Microsoft que fornece todo o conteúdo necessário para se desenvolver, testar e fazer deploy dos seus bots. É um serviço que fornece as ferramentas que permitem ao programador ter controle sobre o canal de comunicação entre o bot e usuário, enviar e receber mensagens dos mais diversos tipos (imagens, vídeos, hiperlinks, áudio), além de construir uma comunicação fluida com o usuário de modo a fazê-lo se sentir confortável durante a conversa. Ele dá suporte à programação em duas linguagens: Node.js e .Net. O serviço é como um “guarda-chuva”, englobando os seguintes componentes:

  • Bot Builder: É o SDK utilizado no desenvolvimento em si;
  • BotFramework: é o framework utilizado para conectar Bots aos chats de comunicação;

O Bot Service ainda dá suporte à utilização de outros serviços, como, por exemplo: o interpretador de linguagem natural (LUIS), que ensina o bot a compreender as intenções do usuário quando este envia uma mensagem; o serviço de respostas simples à perguntas específicas (QnAMaker); os chamados Serviços Cognitivos que trazem toda uma gama de possibilidades, como o reconhecimento de voz, tradução de texto, reconhecimento facial; etc. Juntos, estes serviços conseguem aumentar a inteligência do seu bot, permitindo que ele lide com situações complexas de maneira eficiente.

Como funciona um Bot?

Seu bot funciona como uma API ou um Web Service; ele recebe mensagens em forma de texto, enviadas pelo usuário de uma plataforma (chat, slack, etc.), as processa e envia de volta ao remetente uma resposta programada. Basicamente, é isso. Agora, para tornar o bot esperto, você usa os serviços que citei no tópico anterior. Por exemplo: ao receber uma mensagem, o bot pode enviá-la ao serviço do LUIS, que irá interpretar qual a intenção do usuário e então redirecionar o fluxo da aplicação para um método que cuide deste tipo de intenção (tudo bem se não ficar muito claro agora, vamos entrar em mais detalhes nos próximos posts). 

O bot é baseado em serviços REST. Todas as mensagens trocadas entre cliente e servidor são mapeadas em JSON. Na imagem abaixo temos um exemplo onde um bot contador de piadas responde ao usuário como está se sentindo… note que no canto à direita, na janela Details, você pode ver um JSON com os dados que foram enviados do bot ao usuário (incluindo a mensagem que o usuário visualizou):

Imagem 2 – JSON de mensagem

Onde posso fazer deploys?

Com o BotFramework, você pode integrar seus bots diretamente à conectores como chats, emails do Office 365, Skype, Slack, Telegram, entre outros (ver imagem abaixo). Os projetos criados podem ser publicados no ambiente do Azure, numa integração feita através de serviços REST.  

Imagem 3 – Canais disponíveis

E se eu precisar de ajuda com o Framework?

Fiquei surpreso com a quantidade de informações que você já encontra para trabalhar com seu bot. Grupos como o StackOverflow possuem um enorme acervo de perguntas e dúvidas respondidas; além dele, há github da Microsoft, onde você pode encontrar diversos exemplos de implementações de diferentes tipos de ChatBots prontas para serem usadas. Há também a documentação do Bot Builder, ideal para se compreender suas possibilidades.

Finalizando…

Bom gente, por enquanto é isso. Este post foi só uma introdução ao assunto de bots; nos próximos dessa série (que eu e o Gustavo Bigardi escreveremos em conjunto), vamos nos aprofundar mais em cada  ferramenta que citamos aqui, além de ajudá-los com tutoriais de como utilizá-las na programação de seus próprios bots! Espero que tenham gostado e até a próxima 🙂

William Pinto