Botcamp Letsbot: criando um bot a partir de um case real

Como aluna do Botcamp da Letsbot, escrevo esse artigo com o objetivo de contar como está sendo minha experiência até agora.

Izabella Radichi
8 min readNov 6, 2021
Imagem retirada do artigo da Coinext

“Oi!”

Em meados de setembro/2021 participei da Hello Bot, uma imersão online e gratuita de 5 dias onde foram abordados diversos assuntos sobre um mercado que tem crescido exponencialmente dentro da tecnologia: os chatbots.

Após ter participado dessa “pequena” imersão, fiquei ainda mais curiosa para aprender sobre a área. Já havia tido contato durante alguns meses atrás em uma outra capacitação que participei: o Cappacitadev.

Finalizada a Hello Bot, surgiu a oportunidade do Botcamp, sim, Botcamp 🤓

Decidi me matricular e fazer parte dessa turma com o objetivo de aprofundar meus conhecimentos no assunto. Anteriormente fiz diversos cursos voltados ao UX Writing e já entrei neste botcamp sabendo que tendia a ter mais interesse pela parte que envolve o design conversacional.

Estrutura do curso

O BotCamp da Letsbot é estruturado com base em uma metodologia ágil: o SCRUM.

Imagem que representa o funcionamento do SCRUM

E o que é o SCRUM?

Conforme artigo no blog da Conta Azul:

A metodologia Scrum é um framework simples para trabalhar com projetos complexos, criada pelos desenvolvedores Ken Schwaber e Jeff Sutherland.

Ela faz parte das metodologias ágeis e é comumente utilizada por desenvolvedores de softwares e sistemas.

Trata-se de um método de trabalho realizado a partir de pequenos ciclos de atividades dentro de um projeto.

Cada ciclo de atividade é planejado previamente e se chama Sprint, composto por um período de tempo predefinido em que as tarefas devem ser realizadas pela equipe.

A metodologia Scrum permite potencializar o trabalho em equipe, acompanhar a evolução do produto, sempre com foco na qualidade da produção e nos prazos estipulados.

Além do SCRUM, o Botcamp da Letsbot utiliza o framework denominado “Bot Learning Flow”.

A estrutura é dividida em sete etapas que abordam os diversos assuntos envolvidos na criação de um bot.

As etapas são:

  • Behavior
  • Interaction
  • Architect
  • Build
  • Training
  • Curate
  • Business

A primeira etapa do botcamp é uma etapa Multi-Skill com cinco sprints e, destas, já concluímos as três primeiras:

Resumo da etapa Multi-Skill

Vamos à parte prática do Botcamp: criar um bot no IBM Watson.

A proposta

A proposta foi criar um bot no IBM Watson tendo como base um case real: a VegPet. A Vegpet comercializa produtos veganos e vegetarianos para animais, dentre outros produtos. O case é real porém o bot não será colocado em produção. Apesar disso teremos a possibilidade de realizar iterações durante o processo de aprendizado, solicitados pelo próprio CEO da empresa.

A ideia inicial era que o bot funcionasse como um apoio ao time de atendimento da Vegpet, esclarecendo as dúvidas mais frequentes das pessoas usuárias e assim “desafogando” o atendimento, evitando tanto transbordo ao atendimento humano.

Meu bot

O nome dado ao meu bot foi: Vegginho, o estagiário robô da Vegpet 🤖

Quis usar esse nome para fazer um paralelo entre os tipos de produtos vendidos pela loja (vegetarianos e veganos) e o diminutivo para aproximar a pessoa usuária do “personagem”.

A ferramenta

Para a criação do bot utilizamos o IBM Watson Assistant, estrutura bem robusta da IBM. Eu nunca havia tido contato com a plataforma e no início senti um certo estranhamento pela estruturação dos diálogos. No outro curso sobre IAs que fiz usamos uma plataforma onde a criação dos diálogos era feita a partir de fluxos, diferente do IBM Watson. Apesar disso, segui firme no propósito de aprender sobre o “Watsão”.

Para a criação de um bot dentro do IBM Watson, é preciso, primeiro, criar as intenções.

Intenções

Intenções se referem ao que a pessoa usuária busca ao entrar em contato com o bot, ou seja, qual é a sua intenção ao fazer determinado questionamento. Ao criar a intenção, é preciso ter atenção ao nome dado pois isso vai facilitar o trabalho durante o processo de curadoria. Escolher um nome que faça sentido dentro do cenário daquela intenção é fundamental. O símbolo que representa as intenções é o #.

Junto ao nome da intenção é preciso ensinar ao Watson algumas frases ou termos (cuidado com os termos isolados!) que correspondam ao que a pessoa usuária dirá quando tiver a intenção de falar sobre aquele assunto. A sugestão da plataforma é incluir pelo menos cinco exemplos para representar as frases de treinamento.

No print abaixo mostro um exemplo onde criei uma intenção chamada #informar_sobre_preco:

O ideal é usar sempre um verbo no nome da intenção e ignorar acentos e cedilha.

As frases de treinamento que usei nessa intenção foram as abaixo:

  • preço da ração
  • preço da ração vegana
  • Preços
  • qual é o preco
  • qual é o preço das rações
  • qual é o valor
  • quanto custa
  • saber preco

Ou seja, sempre que uma pessoa entrar em contato com o Vegginho e perguntar, por exemplo, “qual é o preço das rações?”, ele entenderá que a intenção da pessoa é saber sobre os preços.

Para exemplificar a criação do diálogo de um desses assuntos, mostro abaixo a resposta que será dada pelo Vegginho ao entender a intenção da pessoa em falar sobre o preço:

Na prática, funcionaria assim:

Ótimo, intenção criada agora é a hora de criar um nó de diálogo.

Os diálogos são a forma como o bot vai interagir com as pessoas a partir do reconhecimento dessa intenção e precisam ter no mínimo uma condição e uma resposta.

Como default, o IBM Watson já possui duas intenções e dois nós de diálogo que precisam ser mantidos no início e no fim da estrutura conversacional, respectivamente: o welcome e o anything_else.

Dentro do meu welcome, quis criar uma resposta bem divertida para trazer a pessoa pra mais próximo da marca e ter um interesse maior em prosseguir com o atendimento. Meu welcome ficou assim:

Primeira interação do Vegginho

Decidi disponibilizar os assuntos que podem ser tratados pelo Vegginho a fim de auxiliar as pessoas e, também, alinhar expectativas sobre o que pode ser tratado por esse canal de atendimento.

As respostas podem ter variações que farão com que o bot responda determinadas pergunta de formas diferentes. No meu bot eu tentei usar essa opção sempre que possível, para evitar que as respostas fiquem muito robotizadas e repetitivas.

Outro ponto importante dentro da criação do bot são as entidades.

Entidades

Entidades são elementos de texto passíveis de extração e também associação de sinônimos para que o bot entenda que diversos termos podem se referir ao mesmo assunto. A inclusão dos sinônimos também evita que algum erro de digitação influencie no entedimento, alô alô acessibilidade. As intenções são representadas pelo símbolo de “@”.

Para exemplificar, mostro a minha entidade @racao. No bot falamos sobre duas rações: Bicho Green e Fridog, que serão os valores. Na coluna ao lado constam todos os sinônimos que incluí para cada valor.

Entidade @racao com valores Bicho Green e Fridog

Como dito anteriormente, podemos evitar que erros de digitação causem a quebra do bot, portanto, neste caso, eu optei por incluir diversas palavras com erros em relação ao nome original do produto.

O Vegginho já tem:

✔️24 intenções

✔️05 entidades

✔️74 nós de diálogo

Outra funcionalidade importante é o slot.

Slot

O slot é uma gavetinha que guarda as informações repassadas pelo usuário durante a conversa. Para utilizar essa funcionalidade, é preciso que ele esteja associado a uma intenção + entidade. A solicitação feita pela pessoa usuária é salva e, faltando alguma informação indispensável, o IBM Watson as solicita para que o bot entenda e interaja da forma correta.

Por exemplo, se a pessoa diz para o Vegginho: “me fale sobre a ração”, ela não informa qual é a ração que precisa e nós temos dois tipos. Nesse caso, o slot guarda a informação já repassada pela pessoa (me fale sobre a ração) e em seguida faz o questionamento sobre qual ração ela deseja. Nesse caso eu incluí as opções como botão para que o bot fique mais interativo e evite que a pessoa precise ficar digitando.

Na prática funciona assim:

A partir dessa escolha, o bot segue o fluxo normal.

Rastreamento da entrega

Além disso tudo (muuuuuita coisa!!!), aprendemos também sobre o funcionamento da integração com serviços externos via API. Nesse momento foi solicitado que incluíssemos no bot o rastreamento de encomendas nos Correios e, para isso, usamos a API pública da Link & Track.

Para que o sistema reconhecesse o código de rastreamento informado pela pessoa usuária foi preciso criar uma entidade contendo, ao invés de sinônimos, uma expressão regular. Para isso, utilizamos o site regex101.com.

Caso alguém não saiba, os códigos de rastreamento dos correios seguem esse padrão:

AB012345678BC

Sendo assim, a expressão regular para reconhecimento do código de rastreio ficou assim:

^[a-zA-Z]{2}[0–9]{9}[a-zA-Z]{2}

Onde:

Explicação da expressão regular

Junto a inclusão da consulta do rastreamento da encomenda, incluímos também a possibilidade de receber retornos do webhook nos diálogos que tratam desse assunto. Com isso, o bot consegue receber a informação do código de rastreio informado pela pessoa usuária, consultar na API do Link & Track e trazer o retorno do webhook, que mostra o andamento da entrega de sua encomenda.

Na prática funciona assim:

Funcionamento do rastreio

API Whatsapp Business

Por último, na sprint 3, vimos sobre as estratégias de utilização da API do Whatsapp Business e entendemos que a autorização para consumir a API diretamente é muito difícil de conseguir.

Como não temos essa autorização, utilizaremos um provedor parceiro do Whatsapp para implantar a solução. Esse provedor parceiro é chamado de broker.

A próxima sprint promete! Vamos ver na prática como funciona essa integração com o Whatsapp! Já ansiosa por aqui :)

Durante todo o curso temos mentorias via Zoom e também damos feedbacks aos colegas. É uma prática comum compartilhar nosso próprio bot e propor o famoso “quebre meu bot!”.

A partir disso, realizamos a curadoria e consequente melhora de todo o fluxo.

Pretendo escrever novos artigos a medida que o curso for evoluindo e o Vegginho se tornar o robô sênior da Vegpet :)

Se tiver curiosidade de interagir com o Vegginho, clica neste link e bate um papo com ele: Watson Assistant Preview

Se você chegou até aqui, fico muito agradecida!

Tem algum feedback ou encontrou algum comportamento não esperado no bot? Me chama no Linkedin para trocarmos figurinhas.

--

--

Izabella Radichi
Izabella Radichi

Written by Izabella Radichi

34 anos, moradora de Belo Horizonte, UX Writer de chatbots e apaixonada por consistência e padrões na escrita.

No responses yet