Hora do upgrade no seu bot

Como o Botgrade melhora a eficiência das equipes de curadoria e pode se encaixar no seu dia-a-dia

Certsys Labs
Chatbotson
11 min readJul 22, 2019

--

Este artigo é a segunda parte de uma série sobre curadoria. A primeira parte, “Alimente o seu robô”, pode ser lida aqui.

Por Luís Hansen

Como melhorar o processo de curadoria do seu chatbot? No último artigo listei algumas práticas comuns de curadoria, mostrei seus benefícios e potenciais problemas que podem surgir. Aqui, vou mostrar como funciona o Botgrade, a ferramenta de curadoria que nós criamos aqui na Certsys Labs, e como ele ajuda a definir um fluxo de curadoria sempre coerente e extremamente eficiente.

Vou começar explicando o Botgrade. Ele é composto por 6 módulos:

  • Um dashboard customizável
  • Sistema de validação de treinamento
  • Módulo de curadoria integrada
  • Mapeador de fluxos de conversa
  • Visualização das conversas
  • Gerenciador de testes unitários automatizados

A seguir, vou mostrar em detalhes como cada um desses módulos funciona.

Dashboard

Talvez o dashboard seja o ponto de partida da curadoria de muitos times. A dashboard padrão mostra umas série estatísticas sobre o seu bot que são coletados automaticamente e geram as KPIs mais utilizadas no mercado para acompanhar o dia-a-dia de um chatbot. São medidas como o número de conversas não compreendidas, o total de mensagens trocadas, quais as intenções e termos mais utilizados, além de vários gráficos que geram insights sobre como as pessoas tem utilizado o seu chatbot.

Todos os dados podem ser refinados por data: colocamos alguns botões para seleção de alguns períodos úteis no topo, mas também é possível escolher um período personalizado.

A customização também é um grande diferencial da dashboard do Botgrade. Alguns serviços de construção de chatbots tem uma dashboard própria, porém elas geralmente são estáticas, e qualquer métrica nova precisa de grande esforço de desenvolvimento, além de demandar tempo para ser criada.

Aqui, é possível reorganizar as métricas para o layout que mais faça sentido para você, com total liberdade para redimensionar ou até remover módulos que não lhe tragam valor.

Também é possível criar métricas próprias sem esforço algum: basta definir que tipo de métrica quer — o Botgrade vai automaticamente criar a visualização para você, inclusive com dados antigos. “Puxa, eu queria saber quantas pessoas falaram sobre um assunto específico usando a palavra X há dois meses atrás” — sem problemas, o Botgrade consegue criar essa estatística pra você!

Validação do treinamento

Este é um sistema que realiza testes de acurácia no seu agente conversacional. Talvez isso soe técnico demais, mas não se assuste — na verdade ele é bem fácil de usar. Neste módulo, transformamos técnicas amplamente utilizadas para medir modelos de inteligência artificial em algo extremamente simples e visual. Desse modo, não é preciso ser técnico para realizar uma curadoria profundamente baseada em dados.

Como o motor funciona? Este motor analisa o funcionamento da rede neural por trás do entendimento das intenções entendidas pelo seu bot. Ele cria várias “cópias” temporárias do seu robô, cada uma ligeiramente diferente das outras — com exemplos diferentes para cada intenção. Ele então testa cada uma dessas cópias e, assim, identifica quais intenções não estão sendo entendidas, quais estão sendo confundidas com outras e quais precisam de mais exemplos de treinamento.

“Não é preciso ser técnico para realizar uma curadoria profundamente baseada em dados”

Além desses insights, o motor também atribui uma nota geral para a qualidade do entendimento do seu chatbot, e mantém registrada uma série histórica para comparação. Essa nota é gerada a partir da compilação de três métricas técnicas geradas por ele.

Mas eu quero entender os dados técnicos! Sem problemas, você também pode acessar dados mais técnicos clicando em “Ver detalhes” ao lado da pontuação do seu bot. Agora já aviso: o resto desse parágrafo é extremamente técnico, então se você não se importa realmente com esse tipo de coisa, pode pular se preferir. Lá, quatro dados estão disponíveis: a acurácia média, a precisão, revocação e a matriz de confusão das intenções. Você pode ler mais sobre cada um desses dados e o que eles significam nesta série de artigos.

Curadoria integrada

Nós sabemos que não é possível, e nem desejado, retirar totalmente o trabalho humano da curadoria e treinamento dos agentes conversacionais. É o olhar humano, com todas as suas sutilezas, que garante uma experiência refinada ao chatbot.

Por isso, criamos o módulo de curadoria integrada. Nossa ideia é oferecer um lugar centralizado para realizar toda a curadoria do bot. O módulo é divido em três partes: a barra de filtros, a janela de visualização e a central de ações.

Na barra de filtros, você escolhe o período com o qual quer trabalhar, uma ou várias intenções e uma faixa de confiança específica, de 0 a 100%. Pode ainda habilitar a exibição das respostas dadas pelo bot, bem como exibir as mensagens que não foram entendidas por ele, além de pesquisar por palavras ou frases na barra de busca. A janela de visualização permite redimensionamento, paginação e, clicando no ícone de chat ao lado de cada mensagem, a conversa inteira é exibida numa barra lateral, exatamente como no módulo de visualização de conversas que será apresentado mais adiante. Todas as interações são selecionáveis, e, após realizar uma seleção, a central de ações é ativada.

Na central de ações é possível treinar o seu chatbot diretamente do Botgrade! É possível adicionar frases a uma determinada intenção, criar uma nova intenção e populá-la com exemplos e até mesmo marcar frases como irrelevantes no contexto do seu agente. No momento, o Botgrade possui integração com a curadoria para chatbots IBM Watson.

Mapeador de fluxos de conversa

O mapeador de fluxos nasceu diretamente de conversas que tivemos com pessoas que trabalham diariamente com curadoria de diferentes chatbots. Ele foi fruto de diversas sugestões muito convergentes que todas elas nos deram: algumas queria ver estatísticas específicas que quantas pessoas abandonavam o chatbot em determinado ponto, outras queriam entender quais fluxos eram pouco utilizados, enquanto outras gostariam de saber sobre quais assuntos as pessoas falavam ao final de determinados fluxos.

Juntamos tudo isso em um único lugar, num “mapa” capaz de mostrar essas informações e muito mais.

Com uma visualização interativa, é possível entender exatamente como os usuários estão usando os fluxos existentes no seu chatbot. Cada nó de conversa contém estatísticas de quantas pessoas passaram por ele, como chegaram até lá e para onde foram depois. É possível visualizar uma lista de conversas que passaram por cada nó com apenas um clique.

Esse mapa de fluxos gerado pelo Botgrade reúne a análise de conversas de forma estatística, algo muito complicado de se fazer manualmente. Assim, por muitas vezes, é possível substituir a análise manual das mensagens trocadas por uma análise muito mais rápida e efetiva.

Visualização das conversas

Sabemos que não é possível e nem desejado tirar completamente o trabalho manual da curadoria. Porém, é possível torná-lo mais simples e rápido. Esse foi nosso foco ao criar a visualização de conversas. Esse módulo reúne todas as mensagens em uma lista com filtros, que reúne as mensagens de uma mesma conversa num único lugar. Clicando em uma das conversas, você tem uma visão de todas as mensagens trocadas, com todas as intenções e entidades mapeadas junto.

Teste unitários

Como garantir que mudanças feitas no bot não quebrem ou interfiram no funcionamento da versão anterior? Pode-se testar extensivamente todas as possibilidades de fluxos, mas isso é um processo manual, tedioso e, dependendo da escala, impossível. Por isso criamos um conceito novo: o de testes unitários em chatbots.

O que é um teste unitário? Teste unitário é um conceito que vem do desenvolvimento de software. Ele consiste em testar todas as partes do seu software unitariamente, isto é, dividir cada componente em suas menores partes e testar se cada uma dela executa sua função corretamente. Testes unitários são a parte mais importante dos testes de software. É impossível gerar todas as combinações de inputs que podem ocorrer num sistema real, então é apenas com esse tipo de teste que é possível ter alguma certeza de que o software está bem estruturado e desenvolvido. O mesmo conceito pode ser aplicado em chatbots.

Criando um ou mais testes para cada nó de diálogo, é possível garantir que a estrutura dos diálogos criada funciona. Esse tipo de certeza é extremamente importante quando se está desenvolvendo um chatbot novo ou adicionando novas funcionalidades em um existente. Assim, é possível ter a tranquilidade de que o funcionava antes das mudanças continua funcionando com certeza.

Os testes podem ser criados utilizando diferentes condições de entrada (inputs), e diferentes resultados esperados, como intenções, nós de diálogo, entidades ou variáveis de contexto. Os testes são separados em conjuntos, suítes, diferentes, para cada parte do seu bot. Cada vez que uma suite é executada, seus resultados são exibidos no painel, mostrando com clareza quais testes falharam e o que precisa ser corrigido.

Botgrade no dia a dia da curadoria

Você já conhece grande parte do que o Botgrade tem a oferecer tecnicamente. Agora, vou mostrar como podemos gerar um fluxo de trabalho simples e extremamente eficiente de curadoria totalmente centralizado no Botgrade.

Vamos estabelecer alguns cenários: o da construção inicial do bot, curadoria comum do dia-a-dia, expansão do bot e um momento de crise em que algo precisa ser alterado rapidamente.

Cenário 1: construção do bot

Durante a construção do bot, é muito importante conseguir validar o treinamento do seu bot em termo de criação de intenções e fluxos. Para tal, o motor de teste de acurácia será muito útil. Também é importante tomar nota do progresso do desenvolvimento, garantindo que aquilo que acabou de ser criado continue funcionando no dia seguinte. O que nos auxiliará nessa tarefa é o módulo de testes unitários. Talvez haja a liberação de uma versão de testes do bot para um grupo controlado. Para a análise das interações desse grupo, podemos usar a visualização de conversas.

Fluxo de trabalho para o cenário 1 — criação de um chatbot novo

Cenário 2: curadoria comum do dia-a-dia

Num chatbot, o trabalho nunca termina quando a primeira versão é lançada. Parte fundamental do sucesso de qualquer bot é o acompanhamento da equipe de curadoria, geralmente diária nas primeiras semanas e depois semanal. É muito importante que esse processo seja muito bem estruturado, eficiente e tenha métricas bem definidas.

Primeiro, é preciso entender o uso no dia ou semana anterior: analisar a quantidade de mensagens, de usuários, de fluxos não terminados, etc. Todos esses dados são facilmente obtidos na Dashboard do Botgrade. Após uma coleta de estatísticas gerais, parte-se para a análise das conversas passadas. Tradicionalmente, isso é feito pela análise de logs de mensagens trocadas com o bot. Aqui, o Botgrade facilita e agiliza muito o trabalho. Analisando estatisticamente as conversas usando o mapeador de fluxos, a análise de conversas individuais é reduzida ao essencial, já que só será preciso analisar aquelas conversas em que os usuários não foram compreendidos, saíram abruptamente dos fluxos, ou se destacam das outras por algum motivo. Para tal, usa-se o visualizador de conversas, que simplifica a tarefa ao agrupar mensagens de uma mesma conversa, mostrar informações sobre o entendimento do chatbot e oferecer diversos filtros.

Após todas as análises, é possível definir os problemas que deverão ser resolvidos. Algumas problemas que podem ser identificados são: fluxos que não funcionam, pois tem algum erro na implementação ou na lógica, fluxos muito requeridos mas não mapeados, ou intenções com entendimento baixo, que potencialmente precisam ser retreinadas ou até repensadas. Módulos do Botgrade podem ser usados para auxiliar na definição dos problemas: o motor de teste de acurácia e o mapeador de fluxos de conversa.

Fluxo de trabalho para o cenário 2 — acompanhamento do dia-a-dia

Para resolver os problemas encontrados, então, define-se um plano de ação, que pode incluir melhorar o treinamento de intenções, refinar ou refazer fluxos de conversa ou até mesmo criar fluxos novos.

Cenário 3: expansão do bot

Após uma implementação inicial, as equipes geralmente fazem implementações iterativas de novas funcionalidades, expandindo as capacidades do bot. Para tal, é preciso primeiro definir o que de novo será implementado. No primeiro artigo, eu comentei sobre duas maneiras de se criar novos fluxos de conversa, e uma delas é partindo do que os usuários buscam mas não encontram — ou seja, fluxos não mapeados. O mapeador de fluxos de conversa é a ferramenta ideal para se utilizar nesse cenário, já que ele oferece uma visão de tudo que as pessoas estão falando com seu bot.

Fluxo de trabalho para o cenário 3 — modificação de um bot existente

Tendo o escopo da expansão definido, parte-se para a implementação. Para auxiliar na criação de novas intenções pode-se usar o motor de teste de acurácia, bem como o gerenciador de testes unitários para garantir que os fluxos implementados anteriormente não parem subitamente de funcionar. Na fase de testes controlados, vale a pena checar as conversas que os usuários estão tendo usando o visualizador de conversas.

As mudanças são então encaminhadas para a avaliação e aprovação interna antes de serem integradas ao bot. Esse processo é iterativo, e geralmente é repetido diversas vezes em cada ciclo de expansão.

Cenário 4: momento de crise

Sim, o Botgrade também ajuda na hora do desespero! Como sabemos, nem tudo são flores ao desenvolver chatbots. Muitas vezes o uso do seu bot é influenciado repentinamente por algum incidente inesperado. Imagine que alguns serviços dependentes de sistemas externos são muito usados no seu bot e, um dia, um desses sistemas tem uma mudança repentina de funcionamento, ou sai do ar por algum problema. Ou, pior ainda, ele para de funcionar sem motivo aparente.

Com certeza a utilização do bot vai mudar bastante por causa de um incidente como esse. E, novamente, é possível utilizar o Botgrade para agilizar a solução dos problemas. Usando a dashboard em conjunto com o mapeador de fluxos, é possível entender em que parte do bot houve erro e como os usuários estão se comportando. Também pode-se usar o Botgrade para facilitar a criação de algum fluxo emergencial, avisando sobre o erro, por exemplo. Usando os testes unitários, garante-se que o fluxo novo não interfere no bom funcionamento dos outros, tornando mais rápida e segura a implantação desse fluxo de conversa emergencial.

Fluxo de trabalho para o cenário 4 — controle de crise

A ideia desse artigo era apresentar tudo que o Botgrade tem a oferecer e mostrar como ele pode se encaixar na sua rotina e simplificar seu processo de curadoria. Convido o leitor a descobrir mais sobre o Botgrade em seu site: www.botgrade.com.br.

Este artigo é o segundo de uma série de artigos sobre curadoria. A primeira parte, “Alimente o seu robô”, pode ser lida aqui.

--

--

Certsys Labs
Chatbotson

Certsys Labs was created with the use of our marketing and software development clients. We work with the most recent technologies and want to share in here.