Framework para desenvolvimento de Bots: Contexto
Tags: botframework, watsonassistant, bots, dev
Published: 2020-07-13 21:40:55

---
title: Framework para desenvolvimento de Bots: Contexto
published: true
date: 2019-11-21 03:15:15 UTC
tags: botframework,watsonassistant,bots,dev
canonical_url: https://medium.com/@juscelioreis/framework-para-desenvolvimento-de-bots-contexto-3d25a553be8
---

> Inovar é arte, mas aplicar a inovação no contexto pratico do dia a dia e ainda mostrar resultado positivo, é genial!

Começo hoje uma serie de artigos sobre Framework para desenvolvimento de bots, ou pelo menos o que consegui compilar da minha experiencia com o que estudei.

Inovações em inteligência artificial e tecnologias de aprendizado de maquina estão cada dia mais refinadas e aprimoradas para a sua utilização com chatbots (bots conversacionais), transformando assim a forma com que empresas estão se relacionando com seus clientes.

Não posso deixar de realizar uma comparação entre o atendimento humano com atendimento automatizado. Os bots oferecem inúmeros benefícios, tais como: respostas instantâneas, processamento de perguntas complexas, capacidade de aprimoramento no decorrer do tempo, disponibilidade 24/7, escalabilidade (tanto atende 1 pessoa como consegue atender 1000 pessoas ao mesmo tempo), mas pode também traumatizar seus clientes com um péssimo atendimento.

O atendimento humano ainda é a melhor solução para nossos clientes. Empatia, atendimento humanizado, não traumático. Só que não conseguimos manter esse mesmo atendimento 24/7 ou mesmo escalar de 1 atendimento para 1000 atendimentos de forma simples e barata. Lembre temos o tempo da contratação, tempo de treinamento e sem falar no custo $ que esses atendentes vão custar para uma demanda sazonal.

Logo uma proposta viável é pegar o melhor dos 2 mundos, automatizar algumas tarefas e deixar o segundo nível de atendimento para os humanos. Sendo assim, damos aos nossos clientes o poder da escolha, se querem ser atendidos por bot ou pelos seres humanos! A ideia é ser escalável, barato mas sem deixar nossos clientes traumatizados!

Essa serie irá apresentar alguns conceitos sobre inteligencia artificial, processamento de linguagem natural e outros relacionados ao ecossistema de bots conversacionais. Vamos construir um projeto desde a concepção até a entrega do primeiro bot funcional com algumas intenções já treinadas. Todo o código fonte que irei utilizar pretendo disponibilizar na minha conta do [github](https://github.com/juscelior), fiquem a vontade para discordar, concordar ou adicionar sua opinião nos comentários. Você é importante!

Para iniciar qualquer projeto cognitivo precisamos saber qual o seu objetivo, quais as _intenções que_ vamos transcrever do comportamento humano para o contexto do bot. Perceba que a palavra chave é _aprender_, o bot vai aprender com alguém, e garanto que nas primeiras versões desse bot vamos falhar.

> Errar é preciso, logo erre rápido, aprenda e inove.

### Nosso contexto!

Vou tentar não falar mais “teorias” vamos aprender, juntos, com um caso próximo da realidade.

Digamos que você foi contratado para ajudar uma escola a melhorar seu atendimento da secretaria. Essa escola tem em sua propaganda que esta na era digital, onde utiliza conceitos da educação hibrida (blended learning) e faz uso massivo de tecnologia. Bom na realidade essa escola comprou soluções tecnológicas para a utilização por seus alunos, professores, pais, funcionários.

Os alunos gostam de poder utilizar celulares e tablets na escola, mas reclamam da conexão de internet e de constantes erros em seus aplicativos, pois eles não são integrados, já que existem vários aplicativos e em cada um deles devem usar um usuário e senha diferente.

Os professores, a sua maioria não gosta das soluções adquiridas e preferem não utilizar levando consigo material complementar como apostilas e questionários a parte desenvolvidos por eles mesmo. Mas usam a chamada online. Os professores que tem facilidade com a tecnologia, fazem uso intenso das soluções educacionais, mas esquecem com frequência de seus acessos aos diversos aplicativos adquiridos pela escola.

Os pais por sua vez, estão passando por um momento de crise financeira e com isso acabam “esquecendo” de pagar o boleto, e todo mês vários entram em contato com a secretaria para gerar um novo boleto com os valores atualizados. E outra funcionalidades que eles usam bastante é acompanhar a frequência de seus filhos alem de acompanhar a nota dos mesmos.

A equipe de tecnologia abrange 2 pessoas, um supervisor com muitos anos de experiencia e um ajudante, eles atendem todos os problemas de tecnologia da escola como problema de acesso ao wi-fi, falha nos aplicativos contratados pela escola e com isso não consegue fazer nada alem de dar suporte, e constantemente reclamam que trabalham demais e estão cansados.

Mas a equipe que mais sofre nessa escola seria o pessoal da secretaria, pois alem de atender presencialmente os pais, atendem por telefone e por e-mail. E constantemente precisam ficar até mais tarde para poder dar vazão a todos os contatos recebidos. Eles informaram que a maioria dos atendimentos são os mesmos, mas não tem como ser rápido pois envolve vários sistemas de fornecedores diferentes.

A diretora quer que nosso foco inicial seja no atendimento da secretaria, já que não quer mais pagar hora extra e o treinamento em todos os sistemas é complicado, pois nem todos os sistemas tem manual e esta sempre dependendo de uma pessoa “a mais antiga”.

### Nossa solução

Depois de analisar o problema apresentado, vamos apresentar para a escola a utilização de um canal de atendimento 24/7 automatizado (um bot) onde a escola pode ampliar sua presença online e ainda desafogar a secretaria.

Para isso precisamos conversar com quem esta sofrendo, temos de descobrir qual a real dor. Vamos conversar com o pessoal da secretaria. Descobrimos que o que eles desejam é automatizar 3 ações que gastam muito tempo para serem concluídas e não agrega tanto valor quanto outras tarefas mais importantes. As ações que eles desejam automatizar são:

1. Gerar segunda via do boleto.  
2. Consultar notas do filho.  
3. Consultar presença do filho.

> **Intenção** : nada mais é do que a tarefa que um usuário deseja realizar (obter informações, executar uma (trans) ação, relatar um problema,…).

Agora que já o motivo, a dor, vamos descobrir como vamos fazer isso. Para a solução tecnologia vamos utilizar a nuvem :) e vamos utilizar um framework de desenvolvimento de bot cujo o nome chama [Microsoft Bot Framework](https://github.com/microsoft/botframework#Bot-Framework-Composer), só que a diretora ligou avisando que um professor recomendou utilizar a solução da IBM o Watson para criar esse bot, e isso não é negociável. Sabendo disso vamos utilizar junto ao Bot Framework a inteligencia da IBM com o produto [IBM Watson Assistant](https://www.ibm.com/cloud/watson-assistant/). E ainda sabendo do contexto da escola vamos utilizar uma solução de Automação Robótica de Processos (RPA, na sigla em inglês) visando diminuir erros por repetição e ter as ações mapeadas e documentadas (quer entender melhor o que seria RPA leia esse artigo aqui: [Como o RPA e a análise do desktop aprimoram a experiência do cliente](https://cio.com.br/como-o-rpa-e-a-analise-do-desktop-aprimoram-a-experiencia-do-cliente/))

![](https://cdn-images-1.medium.com/max/1024/1*t5arK-6e9kw4FQGaDoFgDg.png)<figcaption>Desenho da nossa solução!</figcaption>

### Epílogo

Já esse artigo esta ficando muito grande, vou parar ele aqui. Até agora só abordamos o cenário e um pouco das tecnologias que iremos utilizar nos próximos capítulos (muito em breve).

Se por algum motivo o caro leitor achou que não teria código, lamento. Deixei o melhor para o final, fiz um template para que nós consigamos juntos resolver esses problemas apresentados (e quem sabe os seus no ambiente de trabalho também).

Para facilitar sua vida, criei como template do Visual Studio. Basta acessar o link [Bot Template Community](https://marketplace.visualstudio.com/items?itemName=juscelior.bot-template-community) ou se preferir fazer um fork do [repositório no github](https://github.com/juscelior/bot-template-community).

Sugiro baixar o template (botão verde com a palavra Download).

![](https://cdn-images-1.medium.com/max/731/1*7oIcCzqhOrIcgoom3719Tg.jpeg)<figcaption>Bot Template Community</figcaption>

E após a instalação, criar um novo projeto usando o template. Procure por bot e escolha o Template for developer Bots.

![](https://cdn-images-1.medium.com/max/1024/1*wW2PubA5HlXaLayCCvs2dQ.jpeg)<figcaption>Visual Studio 2019</figcaption>

Não perca os próximos capítulos, já adiantando que o próximo artigo irei abordar o Bot Framework da Microsoft e como sair do padrão, estendendo ele para o nosso cenário!

---

{% user juscelior %}