Categorias
Tecnologia

Você não precisa de inteligência artificial para criar um chatbot

Nem Machine Learning e Processamento de Linguagem Natural

Todo mundo que trabalha com desenvolvimento de software sabe que, cada vez mais, existem as “expressões do momento” no mercado. É por isso que eu adoro o texto Hype Driven Development

Uma das mais faladas “expressões do momento” é a inteligência artificial. Ela está em todo lugar, em todas as matérias nas mídias e diversos artigos acadêmicos e começou a ficar extremamente popular no último ano.

Cuidado! Inteligência artificial vai roubar seu emprego!

Depois que o Facebook resolveu liberar os chatbots para sua plataforma de mensagens, chatbot também virou uma expressão do momento. Eu mesmo gostava do assunto antes, mas a partir do ano passado comecei a estudar e aprender ainda mais sobre esse tipo de software.

A partir daí todo lugar onde se vê a palavra chatbot também se vê inteligência artificial. É uma questão bem óbvia, afinal para um robô falar com um humano, ele precisa ter o mínimo de inteligência…

Mas será mesmo que preciso saber criar inteligência artificial para criar um chatbot?

Citando um ótimo texto do Caio Calado que explica o que são chatbots:

Chatbots são serviços baseados em regras e (às vezes) inteligência artificial, onde você pode conversar e interagir através de aplicações/aplicativos de mensagens.

A parte importante dessa citação são as palavras entre parênteses: às vezes.

Como ele explica no texto, existem dois tipos de chatbots. Os baseados em regras e os baseados em inteligência artificial. A maioria dos bots que encontramos por aí é puramente baseado em regras e eles não são ruins por causa disso.

As plataformas de mensagens oferecem diversas maneiras para que o usuário posso interagir com o bot. São botões, listas com links, webviews que abrem uma página externa, etc. Utilizando essas interações fica muito fácil saber o que o usuário quer fazer, sem necessidade de inteligência artificial.

Você não precisa fazer com que o bot tenha um entendimento profundo da lingua portuguesa e entenda cada detalhe de tudo que o usuário está falando para que ele cumpra o que propõe.

Um bot tem que ter uma naturalidade na interação, mas isso depende muito mais do design da conversação do que de inteligência artificial.

Um chatbot é um software. A tecnologia que você vai usar no seu desenvolvimento precisa ser compatível com as necessidades das funcionalidades dele.

Machine Learning, Processamento de Linguagem Natural (NLP) e Inteligência Artificial (AI) são importantes para os mais diversos tipos de aplicações, mas para aquelas que realmente necessitam dessas tecnologias.

Se o bot precisa aprender com dados e interações para melhor atender o usuário e cumprir o objetivo proposto, então Machine Learning é necessário. Se ele precisa classificar textos que o usuário venha a enviar, você vai precisar de NLP… e assim por diante.

Agora se ele fala informações sobre o clima, não precisa ser “inteligente” para bater papo com o usuário ou aprender com as interações. Afinal o objetivo dele é previsão do tempo! Ele só precisa saber onde o usuário está ou de onde ele quer saber a previsão.

Outro grande problema desse hype todo é que essas expressões técnicas assustam quem não conhece e podem acabar afastando pessoas interessadas na construção de chatbots por acharem que é um impeditivo não saber essas tecnologias.

O hype é algo que sempre existirá, mas não devemos nos guiar por ele. Pense no objetivo que o seu chatbot terá e nas funcionalidades que serão necessárias para atingí-lo. Se ele realmente precisar de Inteligência Artificial, então pare de ler e vá estudar matemática agora!

Publicado originalmente no Medium.

Categorias
Tecnologia

O que aprendi publicando um chatbot

A importância do feedback dos usuários

Um tempo atrás eu quis falar sobre chatbots na empresa onde trabalho. Temos um evento interno para compartilhar conhecimento, que começou há pouco tempo por aqui, e aproveitei a chance para mostrar para meus colegas como desenvolver e quais eram as ferramentas que o Messenger do Facebook oferece para a criação de um robô de conversa. Para meu lightning talk resolvi criar um chatbot experimental chamado Climão.

O Climão é um bot bem simples e apenas recebe a localização da pessoa e informa como está o clima no local.

Para isso eu usei um dos templates do Facebook Messenger que cria um botão para o usuário enviar a localização e fiz uma busca em uma API aberta de informações meteorológicas.

Publiquei o bot no Facebook Messenger e aproveitei o que apresentei na empresa para escrever um tutorial.

Após a publicação, algumas pessoas começaram a usá-lo, provavelmente porque leram o tutorial e resolveram testar o bot para ver como funcionava.

Foi aí que comecei a perceber que o Climão precisava de algumas melhorias…

Aprendendo com a experiência do usuário

A primeira pessoa que usou o meu chatbot acessou através de um link que enviei no WhatsApp. Esse link abriu o navegador no celular dela e a primeira coisa que ela me disse foi que o bot não estava funcionando.

Eu dei uma olhada no que ela estava fazendo e vi que ela não usou o botão de enviar localização e sim escreveu o nome da cidade. Pedi para que usasse o botão, mas ela reportou que ele não aparecia para ela.

Fiquei sem entender nada… mas pedi para que abrisse no aplicativo do Messenger e a partir daí tudo funcionou normalmente.

Acessando o histórico de mensagens da página do Climão percebi que mais algumas pessoas estavam tentando escrever o nome da cidade e não usando o botão de enviar localização. Isso era algo que eu não tinha previsto e portanto o bot não entendia e acabava reenviando o botão o tempo todo.

A primeira coisa que pensei foi que as pessoas não estão acostumadas a usar botões em chats, deve ser esse o problema.

Mas a realidade era outra.

Quando montei o bot para a apresentação, não dei atenção alguma para o texto que convidava o usuário à escolher a sua localização. Ele dizia: “De qual cidade você quer saber o clima?”. Isso fazia com que a pessoa pensasse que tinha que responder à pergunta.

Esse feedback veio da mesma pessoa que citei a cima. Algo que não havia me passado pela cabeça!

Isso podia mesmo ser um motivo, mas os dias passavam e eu via mais gente usando o Climão e escrevendo repetidamente o nome da cidade em vez de usar o botão.

Será mesmo que apenas a pergunta estava levando tanta gente à escrever a cidade? Por acaso, acabei descobrindo que não.

Lendo outro texto do Medium que falava sobre um chatbot, resolvi clicar no link para experimentá-lo. Foi então que o mistério se resolveu.

As pessoas estavam acessando o Climão pelo texto do Medium, assim como eu, provavelmente pelo celular, assim com eu, e estavam caindo direto no navegador, assim como eu.

Abrindo a página do Facebook pelo navegador do celular e clicando em “Enviar mensagem” você entra em uma página terrível de mensagem que não tem nenhuma das funcionalidades dos bots do Messenger. Nela você pode interagir com o bot apenas por texto!

No lado esquerdo a versão do navegador mobile e na direita o aplicativo do Facebook Messenger.

Isso poderia ser mais um motivo, além do “texto-pergunta”, que estava fazendo as pessoas digitarem ao invés de enviarem sua localização pelo botão.

Foi então que resolvi melhorar o bot, mesmo ele sendo apenas um experimento para um tutorial, achei que valia a pena a experiência de aprender com a interação de usuários.

Gastei um tempinho nele e fiz com que também aceitasse o nome da cidade escrita. Mudei a frase que pede a localização. Agora ele escolhe aleatoriamente entre algumas opções de texto que indicam ao usuário que pode digitar uma cidade ou apertar o botão de envio de localização.

Aproveitei para dar um tapa no visual da apresentação dos dados também. Ao invés de enviar apenas um texto, resolvi utilizar o template de lista que a API de envio do Messenger proporciona.

Interações “fora do contexto”

Um outro fato que me chamou a atenção quando analisei as mensagens enviadas pelos usuários foram as mensagens que estavam “fora do contexto” das funcionalidades do Climão.

Com “fora do contexto” eu quero dizer interações que eu não previ.

Coisas simples como um “Olá” e um “Obrigado” não eram tratadas, deixando o bot muito “robótico” e pouco natural na conversação. O Climão era antipático!

Dei uma atenção para o tratamento desse tipo de interação, mas não gastei muito tempo com isso ainda, afinal ele é apenas um experimento. Podemos dizer agora que ele não é muito simpático, mas pelo menos já é educado.

Algumas coisas ele responde, mas não chega a ser tão esperto assim…

Conclusão

Esse bot tem sido um experimento incrível. Além de ter aprendido muita coisa com um chatbot tão simples, ainda tenho ganhado uma experiência importante sobre como evoluí-lo para melhor se adaptar às interações com os usuários.

O feedback é a melhor maneira de se aprender. Saber onde você errou ou o que deixou passar depende muito dessa interação com diferentes pessoas. Por isso foi tão importante tirar esse bot do “desenvolvimento” e deixá-lo disponível para o público em geral.

Se você leitor tiver alguma sugestão para melhorar o Climão, deixe sua resposta abaixo. E se quiser ver o código-fonte, acesse o repositório no Github. Quer saber o clima atual em algum lugar? Mande uma mensagem pro Climão!

Publicado originalmente no Medium.

Categorias
Crônicas

Músicas e memórias

Basta dar um play e se transportar através do tempo

Poucos dias atrás eu descobri o Daily Mix do Spotify. Estava cansado de escolher músicas para ouvir enquanto trabalho e queria delegar essa responsabilidade para outrem.

O Daily Mix prepara cinco listas de diferentes estilos musicais baseado no que você costuma ouvir. Resolvi dar uma chance para uma delas e dei o play.

Uma das listas continha músicas de meados dos anos 2000 e a primeira já me transportou diretamente para uma lembrança gostosa.

Eu me impressiono com o fato de que os primeiros acordes ou batidas de uma música são o suficiente para ativar algo no cérebro que faz com que ele reviva um momento específico do passado.

Com uma das músicas voltei para um palco onde a Karma Patrol, minha banda na época, fez o que consideramos a melhor apresentação da nossa curta história. Participamos de um festival/concurso num gelado inverno em Florianópolis.

Senti o cheiro do gelo seco, a aflição de não estar enxergando as casas do baixo por conta do breu e da fumaça. Lembro da emoção de ter acertado o riff na hora que a música começou e de me soltar depois disso. De várias apresentações aquela foi a mais inesquecível. Rolou até bis

Outra música me levou para um tempo onde eu, muito jovem, arriscava qualquer coisa por um sonho. Me vi deitado em um colchão estendido no chão de uma escola em Uberlândia, sem o mínimo dos confortos, como ter uma geladeira ou fazer três refeições por dia.

Ali vivi por alguns meses em busca de sucesso em uma carreira incerta que fazia parte de um propósito maior. Larguei aquilo que seria o mais promissor dos trabalhos no conforto de minha cidade para arriscar tudo em outro estado, longe de casa.

Logo depois surgiram as notas iniciais de uma canção que marcou um verão tranquilo, com muita praia, muitos encontros com os amigos e paixões que não duravam mais do que um final de semana. Morava com os pais e ainda assim só reclamava da vida, queria morar sozinho. Se eu soubesse o que me aguardava nos anos seguintes…

Outra música me leva ao primeiro apartamento em que morei sozinho. Minha primeira casa. Alugada. Lembro de decorar pessoalmente cada pedacinho do espaço. Referências orientais por todos os cantos. Ideogramas, estátuas, leques pintados e um incensário de bambu.

Apesar da música ter me trazido essa lembrança, ela desaparece quando me vejo deitando no sofá em silêncio no início da tarde de um dos dias raros em que podia fazer relaxar após o almoço. Ouvia o vento movendo as árvores à frente da porta da sacada e era uma canção de ninar. O vento adentrava a sala e eu cochilava numa tranquilidade dificilmente encontrada nos dias de hoje.

A viagem foi ainda mais longe com a próxima música. Estava de volta à uma praia do litoral sul de Santa Catarina. Um adolescente que tinha prazer em se isolar e ficar ouvindo música sozinho dentro do carro do pai em dias chuvosos de verão. Enquanto os primos, irmãos ou tios jogavam algo para se distrair dentro da casa da vó, eu preferia a companhia das músicas que poucos deles apreciavam.

As histórias continuam aparecendo a cada nova música conhecida que toca. A viagem é tão prazerosa que pulo aquelas que não conheço ou que não me trazem memória alguma.

A lista de músicas do Daily Mix é infinita. Se deixar tocando ela não para nunca, vai adicionando novas músicas à playlist eternamente. Corro o risco de ficar preso no passado, sem conseguir voltar.

É hora de vir para o presente e criar novas memórias para o futuro. Podem não ser tão marcantes quanto essas, mas existirão.

Desligo o Spotify e levanto para tomar um café. Volto ao trabalho em seguida.

Categorias
Empreendedorismo

O cliente e a razão

Cliente tem sempre razão… Então porque precisa de um especialista?

Todo mundo conhece a expressão “o cliente tem sempre razão”, não é? Talvez o que poucos saibam é que ela foi criada por um empresário no início do século XX como um slogan, ou seja, uma frase de marketing, que serve simplesmente para atrair clientes.

Harry Gordon Selfridge foi o primeiro a promover as vendas de Natal com a frase “Faltam _____ dias de compras até o Natal”, um slogan que foi rapidamente apanhado por varejistas em outros mercados. A ele ou a Marshall Field é creditada a popularização da frase “O cliente tem sempre razão.” fonte: Wikipedia

Essa frase é uma estratégia de marketing, tanto quanto as próprias vendas de Natal. Então por que ainda existem pessoas que usam esse lema? Talvez no comércio isso possa fazer algum sentido, mas na área de serviços a coisa é bem diferente.

Quando cito “pessoas” não estou me referindo aos clientes, mas sim aos prestadores de serviço. São eles que fazem com que esse mantra continue firme e forte no mercado.

A lógica é muito simples, se um cliente contrata uma pessoa para fazer um serviço especializado, como a criação de um website, um sistema, uma ilustração, uma marca, é porque ela é um especialista naquilo.

Se o cliente precisa de um especialista é porque quer alguém que saiba o que está fazendo. Que entenda do assunto, muito mais do que ele. Certo?

Mas muitos profissionais não conseguem mostrar confiança o suficiente para apontar isso para o cliente. Acabam fazendo tudo que o cliente deseja e não o que realmente é o melhor para aquele serviço.

Isso acontece por diversos motivos. Precisar muito do trabalho e ter medo que o cliente não goste da sua postura de quem sabe o que faz, por exemplo. Ou por que o profissional é iniciante e ainda não tem confiança no próprio trabalho.

É nesse momento que o cliente passa o controlar tudo o que está sendo feito e pede dezenas de mudanças que não fazem o menor sentido para aquele serviço.

O problema disso é que o cliente acaba com um resultado que ele “acha o certo”, mas que na verdade não é o melhor. O profissional acaba com um projeto que não é grande coisa divulgado por aí.

Se o cliente quer escolher tudo que você vai fazer, ele não precisa de um especialista e sim de um operador, alguém que execute o que ele deseja.

“Eu até sei fazer isso, mas não tenho tempo, por isso contratei você!” — muitos clientes por aí

Precisamos de mais profissionais que acreditem no próprio trabalho e que batam o pé para executar o melhor para o briefing que foi recebido.

Precisamos de mais clientes que entendam que se contratam alguém para prestar um serviço é porque precisam de um especialista. E que é esse profissional que entende do seu trabalho.

Existem casos e casos, mas de modo geral a coisa deveria funcionar dessa maneira. Decisões tomadas no “achismo” e forçadas em cima de profissionais contratados só causam problemas e retrabalho para ambas as partes.

O próprio mercado precisa ser educado nesse sentido e são os profissionais que precisam “treinar” os clientes para que, quem sabe um dia, possamos chegar mais perto de atingir essa utopia.