Chatbots
são uma oportunidade para inovar em como interagir e tirar proveito da informação em tempo hábil. Para entender as possibilidades que eles nos oferecem, temos que ser claros sobre os conceitos que os constituem, tais como entidades e intenções; e quem são os principais fornecedores dos serviços necessários para o seu funcionamento. Convido você a ler este post para se aproximar de como trabalhar com chatbots e GeneXus. No dia a dia, podemos ver como os chatbots estão ganhando força, tornando-se presentes em novas empresas e até formando novos modelos de negócios através deles. Essas interfaces abrem novas possibilidades ao conectar informações dos negócios, empresas e instituições, com as necessidades dos usuários. Neste post, veremos as bases do seu funcionamento e quem são os jogadores presentes no ecossistema que foi formado através dessas tecnologias. Os Chatbots, como o nome indica, são uma combinação de chats com bots. Então, podemos refinar essas definições um pouco mais? Sim. Entendemos que um chat é uma comunicação entre duas ou mais pessoas. Se prestamos atenção, nós, como usuários de diferentes chats, conversamos constantemente com outras pessoas, diretamente ou através de grupos, como família, trabalho, etc. Durante essas conversas, estamos gerando uma grande quantidade de informações, o que, de certo modo, não está sendo usado pela tecnologia para nos ajudar. Por outro lado, temos o conceito de bots. Quando falamos de bots, falamos de software projetado para automatizar ações. Os bots existem entre nós há algum tempo, por exemplo, nós temos em sistemas de suporte para telefone, ou mesmo em jogos de vídeo. Justamente estes casos, que conhecemos, têm em comum com chatbots que procuram imitar o comportamento de uma pessoa. Então, se juntarmos os dois conceitos, temos a possibilidade de automatizar ações com base na informação que é interpretada em um chat. Agora, a ideia não é que você perceba que está respondendo a uma máquina, todos nós que interagimos com um chatbot esperamos um comportamento natural da sua parte, que seja tão humano quanto possível, que demonstre empatia, que não seja robótico e principalmente que saiba como orientar a conversa em torno do que ele sabe fazer. Ou seja, nós, como desenvolvedores, devemos oferecer essa experiência de interação como se fosse uma pessoa que respondeu a nós. Quanto à sua integração, os chatbots podem ser integrados em várias plataformas de mensagens (whatsapp, messenger, wechat, telegram, etc.). A escolha dessas plataformas dependerá do público-alvo ou do usuário a quem vamos focar. Se quisermos interagir com o mercado chinês, é vital integrar o chatbot com o wechat; Se quisermos interagir com o mercado americano, devemos integrar ao Messenger do Facebook. Os Chatbots também podem ser integrados aos nossos próprios sistemas, como no caso do Siri no Mac OS e IOS, ou com o Cortana no Windows. Na verdade, há alguns meses, no Encontro GeneXus (GX27), apresentamos nossos chatbots Rudi e Clarita (no caso do RUDI integrado ao próprio aplicativo do evento consumindo serviços dela mesma), que permitia a consulta na programação com mais de 150 atividades, os locais de diferentes atividades e os serviços dos 4 andares do prédio que ocupamos por 3 dias. Foi surpreendente a quantidade de mensagens recebidas durante o evento, atingindo aproximadamente 4.000 entre ambos. Isso mostra como as pessoas estão interessadas nesses chatbots e sua utilidade. Chegando neste ponto, vamos perguntar: “mas … e como um chatbot nos entende?”. A resposta é que eles são baseados no processamento de linguagem natural (popularmente conhecido como PNL, do Processamento Natural da Linguagem), um ramo de Inteligência Artificial que estuda essa interação entre as pessoas, em linguagem falada e escrita e sistemas informatizados. Se começarmos a partir de frases escritas, elas são estruturadas em predicados, sujeitos e verbos. Da mesma forma, o bot analisa as frases, mas as classifica por contexto, intenções e entidades reconhecidas. Aqui denominamos três conceitos bastante importantes: contexto, intenções e entidades. Quando falamos de contexto no cotidiano, nos referimos ao que define o ambiente em que fazemos algo, ou seja, agora que você está lendo este post, você conhece as diferentes variáveis do seu ambiente: você sabe em qual navegador você está olhando para isso, em qual cadeira você está sentada, que horas são, etc. Para um chatbot é o mesmo, são todas as variáveis do contexto da conversa: o nome do usuário, a hora, os parâmetros reconhecidos no chat. Em termos de intenções, podemos dizer que o chatbot pode reconhecer o que a intenção do usuário é: registrar um cliente ou procurar um cliente; Para fazer um exemplo mais específico, no aplicativo GX27, a intenção que o chatbot pode reconhecer é “conhecer a localização de uma sala”. É importante alimentar o chatbot com uma boa quantidade de exemplos para o reconhecimento de intenções. Por outro lado, temos as entidades, onde podemos definir conjuntos de objetos que contêm valores e cada valor seus sinônimos correspondentes. Por exemplo, posso ter uma entidade “Cores” e valores como “Vermelho” e “Laranja” (que pode ser sinônimo de “Alaranjado”); ou também continuando com o exemplo da APP GX27, a entidade “salas” e seus valores que são os “nomes” das salas. Existem várias plataformas que nos permitem criar chatbots e nos fornecer esse serviço de NLP. Neste post, mencionaremos 3 delas, das quais podemos falar corretamente porque as integramos com GeneXus. 1- Watson Conversation É a plataforma da IBM que nos dá a possibilidade de definir através de um IDE quais são as intenções que o nosso bot saberá reconhecer, com cada uma dessas intenções, daremos exemplos para que você possa treinar. Também permite que você defina as entidades que o bot pode gerenciar. Outro elemento importante que o Watson nos permite definir facilmente os diálogos que o chatbot gerenciará uma vez que as intenções do usuário sejam reconhecidas. O Watson também nos permite implantar o nosso chatbot através do Slack e, em breve, também ofereceremos integração com o Facebook Messenger. 2- Dialogflow Dialogflow (antes API.ai), também nos permite definir as intenções e entidades que ele gerencia, mas é bastante diferente do Watson na forma de definir os diálogos, uma vez que estes são inferidos na mesma definição de intenções. O Dialogflow nos permite integrar nossos chatbots com muitas plataformas de mensagens, bem como estabelecer quando o chatbot vai ao nosso servidor para coletar informações. 3- Lex É aí onde a Amazon chega, funciona de forma muito semelhante ao Dialogflow quando se trata de definir intenções e entidades, mas caracteriza-se por estar totalmente integrado aos serviços do Amazon Web Service. Esses três provedores têm em comum que identificam as intenções e entidades presentes em uma frase. Todos permitem enviar mensagens, consumir de uma API onde será enviada a mensagem e ela será devolvida uma vez processada. Em suma, o fluxo é o seguinte: alguém faz uma consulta, a PNL interpreta de acordo com a forma como foi treinada, responde. Ao ler estas linhas, você vai se perguntar qual é o melhor provedor. Isso dependerá do caso particular e da natureza do projeto. Posso recomendá-los para três casos específicos para cada uma dessas plataformas:
- Se o seu negócio precisar constantemente percorrer o servidor porque é necessário que todas as mensagens sejam armazenadas e gerenciar melhor a rastreabilidade, o Watson é apropriado.
- Se você precisa delegar a comunicação diretamente entre o cliente de onde a mensagem surge e o provedor, a melhor opção é Dialogflow porque nos permite definir um webhook que será usado em determinados momentos.
- Se estamos na Amazon, a opção é logicamente Lex.
Depois de escolher a plataforma, e muito importante, é o treinamento que o chatbot recebe. Defina claramente as intenções que o bot reconhecerá, com exemplos concretos de uso; defina com precisão as entidades, valores e sinônimos que são tratados pelas entidades. A interface do usuário também deve ser intuitiva o suficiente para gerar essa proximidade de conversa, seja por escrito ou falado. Ambos os aspectos bem conjugados nos proporcionam um complemento ideal para aproveitar ao máximo a informação e fornecê-la imediatamente. É o momento ideal para explorar oportunidades e inovações na forma como interagimos para resolver várias atividades diárias, desde procedimentos até transações ou eventos multitudinários. Se você chegou ao final deste post, tenho certeza que você gostaria de saber como criar seu próprio chatbot facilmente com GeneXus e é por isso que eu convido você a continuar sua leitura em: GeneXus Chatbots Generator.
