9 Março 2018

Chatbots – Os assistentes virtuais do futuro

Os Chatbots são programas informáticos que simulam conversações com pessoas utilizando mecanismos de Inteligência Artificial.

Apesar de ainda ser uma tecnologia recente, atualmente os chatbots são utilizados nas mais variadas áreas de negócio, basta que cada uma das áreas tenha a sensibilidade de como poderá usufruir corretamente esta tecnologia. Turismo, Banca e Seguros e até mesmo na Medicina, são exemplos de como esta tecnologia pode ser utilizada.

Existem vários tipos de chatbots, desde os mais básicos até aos mais complexos.

Os chatbots mais básicos utilizam formulários para comunicar, ou seja, o utilizador coloca uma pergunta e o chatbot retorna uma lista de possíveis respostas. Nos modelos mais avançados existem layers de interpretação de linguagem natural, em que o chatbot consegue interpretar frases escritas naturalmente ao invés de pequenos comandos por palavras. Nestes modelos mais avançados, são requeridos treinos aos modelos de aprendizagem, e assim a inteligência artificial por detrás do chatbot vai ficando mais enriquecida e preparada para retornar respostas.

 

Assim, quando falamos em chatbots, temos 3 layers principais a considerar:

  1. CLIENTE – O utilizador irá enviar uma mensagem direta para o chatbot, sendo estes frequentes em webchats através de um site, aplicações móveis que suportam conversações, como o slack, facebook messenger, Skype e muitas outras. Para este caso prático foi considerado o Skype.
  2. BOT – Um evento que “escuta” as mensagens provenientes do CLIENTE, entende a mensagem e invoca pedidos HTTP POST apropriados para o tratamento da mensagem de modo a enviar uma resposta de volta ao CLIENTE.
  3. INTEGRAÇÃO – Dependendo do tipo de aplicação que se faz ao chatbot, podemos enriquecer a resposta dada ao cliente através da integração de diferentes sistemas. Como por exemplo o Machine Learning/cognitive services, bem como aceder a sistemas externos.

 

Caso Prático – Integração chatbot com uma WEBAPI

Para este caso em concreto, vamos considerar apenas os chatbots mais básicos.

O core deste bot é composto pelos seguintes módulos:

• Message Handler - Trata as mensagens que são enviadas para o chatbot e redireciona para os diálogos corretos
• Dialogs - Os diálogos são divididos por tipo de conversas, por exemplo: contactos, simulações, suporte
• Forms - Os formulários são utilizados pelos diálogos, oferecem várias hipóteses a um determinado tema e consoante a ação escolhida executam os métodos correspondentes

Apesar de atualmente existirem diferentes frameworks, o caso apresenta o funcionamento da Microsoft Bot Framework.

Para esta prova de conceito, foi criado um sistema de suporte ao cliente (de apoio ao crédito) que após a submissão de dados pessoais, este irá simular um determinado empréstimo.

O diagrama abaixo representa o comportamento do bot sempre que este recebe uma mensagem.

 

  1. O utilizador inicia uma conversação com o Bot enviando uma mensagem “Olá” de modo a “ativar” o Bot, uma vez que este está à “escuta” de um evento especifico, verifica a mensagem do utilizador. Sendo este canal para efetuar simulações, o Bot pede os dados pessoais ao utilizador para que este possa efetuar a mesma. Os dados são pedidos de forma sequencial: data de nascimento, montante do crédito e número de meses de contracto. Sempre que os dados são introduzidos pelo utilizador estes são validados pelo Bot de acordo com o seu tipo e formato.

  2. O utilizador envia os dados para o Bot, tal como pedido sequencialmente.

  3. O Bot comunica a uma WEB API, através de um pedido HTTP POST, os dados pessoais do utilizador, sendo esta responsável por fornecer o resultado do cálculo da simulação ao Bot.

  4. O Bot tendo o resultado da simulação, retorna o valor da simulação ao cliente SKYPE.

Na seguinte imagem podem ver o comportamento do Chatbot em funcionamento:

 

De acordo com a Gartner, os chatbots deverão ser considerados por todos, uma vez que é previsível que num futuro muito próximo (apontando para 2021)  as empresas despendam mais em desenvolvimento de chatbots do que em desenvolvimento de aplicações, sendo estes o “rosto” da Inteligência Artificial dos sistemas.