Case da VegPet — Parte 2

O desenvolvimento de um chatbot com inteligência artificial para a empresa VegPet

Pâmella Fialho
7 min readJul 1, 2021

Opa, se você parou aqui por acaso e deseja ler o case principal é só voltar aqui embaixo 🚀

<< Voltar para o case principal

Build

E chegou o momento de colocar a mão na massa no IBM Watson. As primeiras intenções e entidades foram criadas juntamente com as suas devidas respostas.

O cliente havia solicitado que o bot fosse capaz de responder:

  • Quais as principais rações e biscoitos da VegPet
  • Os benefícios das rações e dos biscoitos
  • Estudos sobre as rações e biscoitos veganos
  • Existência de transgênicos
  • Rastrear o pedido do usuário

Toda intenção a ser criada precisa ter “# e toda entidade “@”, pois é a maneira que o NLU entende essas duas funções. As intenções se referem a ação do usuário, ao seu objetivo no momento que conversa com o bot. Já as entidades se referem à informação que será extraída do usuário para obter a resposta.

A intenção sempre tem um verbo no início: #saber_benefícios

A entidade sempre é um substantivo: @ração

Se quiser saber mais detalhes sobre intenções e entidades, explico melhor aqui.

Lista de intenções criadas no Watson
Intenção #saudar com as frases de treinamento referentes a como o usuário diz

Para a intenção de rastrear o pedido do usuário, precisávamos realizar a primeira integração com uma API dos Correios. Certo, até aí parecia não ser algo tão complicado. Mas não é fácil realizar a integração do bot com a API dos Correios para utilizar um código rastreamento e mandar qual o status do pedido do usuário. Então como poderíamos fazer com que o bot retornasse o rastreio desse pedido se, analisando a arquitetura, acessar a API dos Correios seria mais complexa?

Para deixar mais claro, uma API é como se fosse o garçom em um restaurante. Quando você chega a um restaurante, o garçom vai até você e anota o seu pedido. Mas perceba que você não passa diretamente pela cozinha, quem faz isso é o garçom. Ele é quem faz a conexão entre você e a cozinha. Já pensou se para todo pedido você tivesse de ir à cozinha? Seria complicado, não é mesmo? Então no mundo da tecnologia, uma API é como um serviço externo que é necessário consultar para realizar alguma ação.

O desafio estava lançado e o cliente havia pedido. Então realizamos pesquisas sobre alternativas para a API dos Correios e encontramos o Link & Track. Esse, por sua vez, já comtempla essa integração com os Correios para retornar o status de um pedido por um código de rastreamento existente. Sendo assim, foi realizada a integração da API do Link & Track com o Watson, utilizando o webhook. Esse último se refere ao servidor que realiza o intermédio entre a API do Link & Track e o Watson. Nesse ponto, admito que tive dificuldade para entender o conceito de webhook que estava abstrato para mim. Solucionei esse problema revendo as aulas do curso algumas vezes, pesquisando e perguntando para o meu professor.

Tela principal do site Link & Track
Tela de rastreio do site Link & Track

Training

Após todo o processo de Build, foram realizados testes no ambiente de homologação e testes do Watson. Desse modo, poderíamos verificar se realmente o bot estava respondendo corretamente o que o usuário digitava e se estava atendendo os requisitos solicitado pelo cliente.

Antes de disponibilizar o assistente virtual em produção para que os usuários finais testem, é de extrema importância realizar testes internamente a fim de prevenir possíveis bugs e problemas que um usuário poderá encontrar. Enquanto o bot está em homologação, existe segurança de que se encontrar alguma falha, poderá ser corrigida sem ter de arcar com as consequências de um usuário final encontrá-la, o que consequentemente causaria uma péssima experiência na conversa com o bot e o seu usuário poderia se tornar um possível detrator da sua marca. Não quer dizer que o bot não está sujeito a falhas, porém, podemos fazer a nossa parte como testadores para minimizar esse risco.

A etapa de Training traz consigo a responsabilidade de treinar o bot a fim de garantir que as intenções, entidades e frases de treinamento estão sendo compreendidas e interpretadas.

Ambiente de teste do Watson com as intenções, entidades e respostas. Na imagem o teste realizado é para o rastreamento de pedido.

Por fim, foi enviado o link do assistente para que os usuários finais pudessem conversar com o bot. Só assim teríamos análises de melhorias e de como o usuário pergunta. Chegamos então a uma das fases mais importantes: Curadoria.

Curate

A curadoria é a etapa de melhoria contínua. É o momento que temos os insights dos verdadeiros usuários e analisamos o que faz sentido incluir como frase de treinamento, intenção e entidade. No Watson é possível visualizar as conversas que um usuário teve com o bot e a partir disso verificarmos se ele reconheceu a intenção correta ou não, se ele respondeu o que o usuário precisava, se será necessário alterar a intenção reconhecida, entre outras possibilidades.

Tela de Analytics do Watson em que mostra as conversas dos usuários por um período de tempo
Tela para alterar a intenção que o bot reconheceu

Durante a curadoria, percebi que o bot que eu havia criado possuía respostas assertivas para o usuário, mas ao final, não orientava o próximo passo que ele poderia seguir e qual pergunta poderia fazer. Com esse insight, alterei a resposta final para o usuário em todas as intenções após uma explicação. Isso é extremamente importante para que o usuário não se sinta frustrado e faça-o pensar muito. O usuário precisa saber para onde ele pode ir e quanto mais orientadoras forem as respostas, melhor.

Respostas para os usuários. Na primeira imagem, o bot orienta sobre quais biscoitos ele consegue conversar. Na segunda imagem, o bot orienta sobre quais assuntos consegue conversar.

Algumas vezes o bot ficou preso no chamado slot. O slot é utilizado quando se quer extrair alguma informação do que o usuário digita e é preciso guardá-la em algum lugar. Ou seja, quando o bot espera uma entidade e enquanto o usuário não digita, fica preso em uma mesma pergunta. Na primeira imagem acima, o usuário poderia ficar preso no slot caso não respondesse qual dos dois biscoitos ele gostaria de saber mais informações.

Para essa situação a curadoria técnica esteve presente e a solução para esse problema é o que chamamos de handler. O handler se refere ao que o bot vai responder se não encontrar a informação que o usuário digitou para assim sair do slot. Com essa funcionalidade é possível determinar um limite de vezes que o usuário poderá digitar uma informação que o bot não encontra e caso ele realmente não encontre, permitirá que o usuário saia da pergunta que o deixou preso e fale sobre outro assunto. Outra possibilidade do handler é a de o usuário digitar que deseja sair ou cancelar e, por conseguinte, a intenção de despedida é reconhecida e o usuário poderá sair desse slot.

Outro insight que tive durante a curadoria foi a de o usuário perguntar quais os produtos que a VegPet tinha e o bot entender como a intenção de saber se ele é um robô. Com o intuito de resolver, precisei acessar a funcionalidade de Analytics do Watson para corrigir a intenção que ele reconheceu erroneamente. Por fim, o meu bot tem sido melhorado a cada feedback e insight que tenho através dos testes com os usuários. Negligenciar essa etapa é um grande erro, pois no processo de criação de um assistente virtual a melhoria contínua precisa estar presente, sobretudo quando nos referimos a bots com inteligência artificial.

Conclusão

Aceitei um desafio e prontamente corri atrás de resolvê-lo, mas nem sempre foi fácil. Precisei pesquisar, testar e pensar sobre a experiência do usuário e como poderia melhorá-la. Sei que minha dedicação trará bons resultados que daqui uns anos quando eu olhar para trás, verei todos os aprendizados que tive e a resiliência que desenvolvi com o projeto e com o desafio. Embora eu seja da área de tecnologia, certos conceitos se tornaram abstratos durante o percurso e foi necessário ser curiosa e persistente o suficiente para encontrar a solução.

Ressalto a importância de ter um processo para a construção de um chatbot, seja ele baseado em regras ou com inteligência artificial. Os chatbots não são ruins, mas a forma como são projetados podem ocasionar péssimas experiências para o usuário, custos altos para o negócio e prejuízos. Portanto, desenvolver um bot é mais do que utilizar uma ferramenta, é entender o usuário, entender o contexto, analisar os custos e objetivos e durante esse processo focar na melhoria contínua.

Se você leu até o final, espero que tenha gostado e que possa ter acrescentado em alguma coisa 🤖

Vamos nos conectar? 💬

LinkedIn Instagram

E-mail: pamella-fialho3008@hotmail.com

<< Voltar para o case principal

--

--

Pâmella Fialho
Pâmella Fialho

Written by Pâmella Fialho

Alguém que curte aprender coisas novas e compartilhar conhecimento usando a escrita para tal. Plantando e podando árvores por aí.

Responses (1)