Case da VegPet — Parte 2
O desenvolvimento de um chatbot com inteligência artificial para a empresa VegPet
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.
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.
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.
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.
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.
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? 💬
E-mail: pamella-fialho3008@hotmail.com