Davi Cunha eBook Criando Chatbot Sem Programacao
Short Description
Davi Cunha eBook Criando Chatbot Sem Programacao...
Description
GUIA DEFINITIVO PARA CRIAR O SEU CHATBOT COGNITIVO SEM PROGRAMAÇÃO GUIA COMPLETO PARA CRIAR O SEU CHATBOT, EM PLATAFORMA FACEBOOK MESSENGER, USANDO APIS e SERVIÇOS COGNITIVOS
Autor: Davi Cunha
ÍNDICE A Revo Rev o l u ç ão d o s Ch Chat atb bots 1
IBM Watso Watson n Conve Conv ers rsa atition on
2
Cri ria and ndo o uma u ma pági página na no Facebook Facebook
3
Con onfifigu gurando rando o Chatb Chatbot ot do d o Me Mess sse eng nge er
4
Con one ect cte e-se co com m o serv serviç iço o IBM API Connect
5
Test sta and ndo o o seu Chatb Chatbot ot
ÍNDICE A Revo Rev o l u ç ão d o s Ch Chat atb bots 1
IBM Watso Watson n Conve Conv ers rsa atition on
2
Cri ria and ndo o uma u ma pági página na no Facebook Facebook
3
Con onfifigu gurando rando o Chatb Chatbot ot do d o Me Mess sse eng nge er
4
Con one ect cte e-se co com m o serv serviç iço o IBM API Connect
5
Test sta and ndo o o seu Chatb Chatbot ot
INTRODUÇÃO
A Revolução dos Chatbots
A Revolução dos bots O avanço d os apps de mensagens, da inteligência artificial e a necessidade de personalização extrema está criando um cenário perfeito para os chatbots Vivemos em uma era de profunda disrupção digital. O impacto da automação de tarefas, dos sistemas cognitivos, dos aplicativos de mensagem e dos bots irá afetar decisivamente nosso dia-a-dia e nossas relações com o trabalho. E para isso, é fundamental que estejamos preparados para estas mudanças. Mas afinal, você sabe o que são Bots ? Para quem ainda não conhece o termo, bots (diminutivo de robots), são programas de computador, ou softwares, que permitem automatizar interações entre seres humanos e máquinas. Estas interações podem acontecer de diferentes formas: voz, escrita em linguagem natural, sensores de movimento, entre outros. Chatbot é uma definição atribuída a um tipo comum de bot que interage com seres humanos através da escrita, normalmente utilizando linguagem natural. Estes softwares são programados para realizar diversas tarefas específicas do nosso dia-a-dia, como por exemplo: -
Prover primeiro nível de atendimento ao cliente, através de um aplicativo de mensagens ou telefone. Obter notificações customizadas e notícias em tempo real Permitir jogos multi-usuários Obter um relatório atualizado de previsão do tempo Reservar um assento em um vôo, receber informações de uma reserva de hotel, e muitos outros serviços
Os avanços dos aplicativos de mensagem, da inteligência artificial e a necessidade de personalização extrema está criando o cenário perfeito para o desenvolvimento dos chatbots. Não é à toa que a automação de bots é um tipo de Inteligência artificial que tem despertado grande interesse de grandes empresas do setor de tecnologia, tais como IBM, Microsoft, Google, Oracle , Salesforce, entre outras. Mas afinal, por que este assunto tem despertado tanto i nteresse? See this study from Business Insider. It shows that people are using and spending more time in messaging applications than on social networks .
Fonte: The messaging App Report – BI Intelligence
Devido ao uso massivo destes aplicativos de mensagem, inúmeras empresas estão visumbrando um grande potencial para lançar novos serviços diferenciados nestes canais. Dado o contínuo e crescente uso destas plataformas, os aplicativos de mensagem estão, naturalmente, transformando-se em uma espécie de “central” para todo o tipo de serviço.
Um estudo interessante é do Gartner que mostra que 33% das interações relacionadas a serviços de atendimento ao cliente ainda precisarão de envolvimento humano em 2017, contra cerca de 60% em 2014. Uma notícia importante para o avanço dos chatbots foi o anúncio do Facebook, que lançou sua API de mensagens para seu aplicativo Messenger, em abril de 2016 . Em setembro de 2016, o Facebook anunciou que seus chatbots já suportam funcionalidade de pagamento i ntegrada . Isto, sem dúvida, abre inúmeras novas oportunidades para os desenvolvedores de chatbots nesta plataforma. Diante deste cenário um grande número de marcas e empresas tais como HP, CNN, KLM, Sephora, Nordstrom, Uber, entre muitas outras, já publicaram seus chatbots, e entregam experiências e serviços diferenciados em diversos aplicativos de mensagens, tais como: Facebook Messenger, Telegram, Kik, Slack, entre outros. Além da ampla acessibilidade, os chatbots têm um grande diferencial. Não é necessário baixar um aplicativo mobile para utilizá-los. Eles estão tão integrados aos aplicativos de mensagens que às vezes é dificil perceber que, de fato, você está conversando com um Robô. Diante deste cenário eu me deparei com um desafio: Como construir um chatbot cognitivo, de maneira simples, ágil e sem programação? Depois de muito estudar o assunto e avaliar diferentes plataformas, eu percebi que faltava uma peça-chave que iria se tornar fundamental para alcançar este meu objetivo. O nome dela: Appl ication Progr amming Interfaces ou APIs . Sim, as boas e velhas APIs! Na prática pude experimentar que as APIs simplificam muito a criação de chatbots e permitem integrar este apps de maneira simples a uma infinidade de serviços digitais . Conforme o uso dos bots ganham escala, nada mais natural do que beneficiar-se dos serviços digitais atualmente disponiveis nas plataformas em núvem.
Conforme a utilização dos bots cresce e ganha escala, fica claro que uma combinação correta de capacidades cognitivas avançadas e um plataforma avançada para consumo, exposição e monetização de APIs, é fundamental para estimular a expansão do ecossistema de bots. Mas afinal, como c onstruir um chatbot cognitivo, de maneira simples, ágil e sem programação?
Neste eBook demonstro o passo-a-passo de como construir um chatbot para plataforma Facebook Messenger, utilizando: •
•
•
•
Um serviço de Broker , responsável por prover a conectividade com a Plataforma facebook, abstraindo as chamadas às APIs do Facebook (Chatfuel). Serviço IBM Watson Conversation , responsável pelo gerenciamento dos diálogos entre o usuário e o bot, além da capacidade de interpretação de linguagem natural. Serviço IBM API Connect responsável por prover a comunicação entre o Broker e o serviço Watson, tradução de formatos de mensagens assim como ampla conectividade serviços externos, via APIs. Plataforma cloud IBM Bluemix, permitindo acesso simplificado aos serviços IBM API Connect and IBM Watson Conversation.
IBM Bluemix (cloud) Facebook Messenger
APIs
Broker App (Chatfuel)
APIs
IBM API Connect s I P A
IBM Watson Conversation
Figura: Diagrama de arquitetura de solução proposta
CAPÍTULO 1
IBM Watson Conversation
IBM Watson Conversation Crie bots e agentes virtuais, utilizando o s serviços cognitivos do IBM Watson O serviço IBM Watson Conversation permite a criação de chatbots e agentes virtuais inteligentes, combinando técnicas de machine learning, interpretação de linguagem natural e ferramentas de diálogo integradas. ™
O Watson Conversation provê um ambiente gráfico para a criação de serviços de conversação, entre aplicações e usuários, utilizando linguagem natural. O serviço IBM Watson foi escolhido pelos seguintes motivos: Ambiente em núvem (Bluemix), gráfico e baseado em configuração Simples e fácil aprendizado e utilização Reconhecimento de linguagem natural Capacidade de estabelecer diálogos complexos e recursos de cognição Capacidade de complementar a solução com outros serviços cognitivos avançados, tais como: Insights de personalidade, reconhecimento visual de imagens, identificação de tons de linguagem, tradutor, entre outros. Integração com agentes virtuais, tal como o IBM Watson Virtual Agent. Maturidade da plataforma e reconhecimento de mercado
Para mais detalhes do serviço IBM Watson Conversation, acesse: https://www.ibm.com/watson/developercloud/doc/conversation/ O serviço IBM Watson Conversation está hospedado na plataforma em núvem digital IBM Bluemix.
1 – Acessar sua conta no IBM Bluemix
Para criar o seu serviço Watson Conversation, primeiro você precisa acessar a sua conta na plataforma IBM Bluemix. Caso este seja seu primeiro contato com a plataforma, basta acessar o endereço abaixo e se registrar. A plataforma oferece um serviço trial por 30(trinta) dias. https://console.ng.bluemix.net/
Figura 1: Tela de cadastro do IBM Bluemix
2 – Criar o serviço Watson Conversation
Após o processo normal de autenticação no IBM Bluemix, o primeiro passo é clicar no menu Catálogo , depois em ‘Watson’ (barra laterial esquerda) e, por fim, selecionar o serviço ‘Conversation’ (ver figura 2).
Figura 2: Consulta pelo serviço Watson Conversatio n
O próximo passo é selecionar o serviço Conversation, manter as opções padrões e clicar em ‘Criar’. Para quem está iniciando na plataforma há uma excelente opção free, que permite até 1000 chamadas por mês. Um novo serviço do Watson Conversation é automaticamente criado e iniciado. Ao clicar no menu ‘Painel’, você tem acesso à todos os serviços criados na plataforma Bluemix.
Figura 3: Serviço Watson Conversation (Plano Free)
Ao clicar sobre o serviço criado você terá acesso à tela de visão geral`do Watson Conversation. Para configurar o serviço de Conversation, clicar no botão ‘Launch tool’ .
Figura 4: Visão geral do Serviço de Conversation
Na tela seguinte é possível criar um novo workspace (botão Create), que contêm as definições necessárias para a configuração e execução do serviço Watson. Para efeito de demonstração já foi pré-carregado um Workspace chamado de Assistente_Virtual.
Figura 5: Tela de configuração do Workspace
Clicar nos três botões verticais no canto direito do Workspace. Selecionar a opção ‘Visualizar Detalhes’ e então copiar e anotar o valor do campo do campo ‘Workspace ID’. Este valor será utilizado posteriormente na chamada da API a ser criada usando o serviço do IBM API Connect.
Figura 6: Tela de configuração do Workspace
Em seguida, deve-se voltar à tela anterior e clicar sobre o Workspace. O mesmo será aberto e você terá acesso à tela de configuração do serviço do Watson. Aqui você poderá configurar o seu serviço do Conversation. Como parte da configuração do mesmo, você precisa configurar as Intenções (Intents), Entidades (Entities) e Diálogos (Dialogs). Na figura 7 abaixo, temos um exemplo da configuração de um Dialog. Nela o usuário configura as respostas automáticas que são apresentadas ao usuário final do chatbot. Note que, além de criar os diálogos, o usuário pode treinar o serviço de Conversation e testar as respostas de maneira interativa (ver figura 8). Entrar no detalhe da configuração do Watson Conversation está fora do escopo deste eBook . Desta forma, deixo abaixo algumas referências para acelerar e auxiliar no processo de criação deste serviço. Arti go: Build a chat bot in ten minutes with Watson Documentação (Watson Developer Cloud): https://www.ibm.com/watson/developercloud/doc/conversation/
Figura 7: Tela de configuração de um Diálogo
Figura 8: Tela de treino do s erviço Watson
O serviço do Watson Conversation disponibiliza uma API REST, que será utilizada, posteriormente, para a configuração do nosso Chatbot. Nesta página você tem informações detalhadas de como usar a API do Watson, para a comunicação do serviço de Conversation. Note que esta API usa padrão JSON, para entrada e saída de dados, além de autenticação HTTP BASIC, devendo-se informar usuário e senha. Você pode, facilmente testar a API usando ferramentas tais como CURL ou SOAPUI. Para obter o usuário e senha do serviço, basta novamente acessar o serviço de Conversation no painel do Bluemix e depois em ‘Credencias de serviço’ (ver figura 9). Link para a API REST: http://www.ibm.com/watson/developercloud/conversation/api/v1/
Figura 9: Credenciais para chamada do serviç o Conversation
CAPÍTULO 2
CRIANDO UMA CRIANDO PÁGINA PÁG INA NO FACEBOOK
Cr i and ndo o um u m a Pági gina na no Facebook Crie uma página perso nalizada no Fa Faceboo ceboo k para hospeda hos pedarr o seu Chatbot Chatbot Para que possamos integrar o novo Chatbot com seu Facebook e com o Mess Me ssen enge gerr, é prec precis isoo cria criarr um umaa pá pági gina na pe pers rson onal aliz izad adaa no Face Facebo book ok.. Lembrando que você pode utilizar uma página pré-existente associada à sua conta. No seu Facebook, acesse o Menu e então a opção ‘Create Page’ .
Figura Figur a 10: 10: Criando um a página no Facebook Facebook
Na tela de configuração da página você pode associá-la a um produto, negócio, ou mesmo apenas para entretenimento. entretenimento. Neste caso foi selecionado a opção ‘Marca ou Produto’. Basta atribuir um nome da sua preferência para o seu Chatbot.
Figura Figur a 11: 11: Configuração Config uração da página do Facebook Facebook
Altere o botão de ação principal da página, clicando no pincel do lado direito e selecione a opção ‘Send Message ’.
Figura Figur a 12: 12: Alterando o botão pri ncipal nci pal de Click li ck to actio ction n
nst ant replies ’ Habilite a opção ‘Turn on i nstant
Figura 13: Tela de configuração do bot ão ‘Send Message’
Para mais detalhes de como criar sua página no Facebook, acessar: https://www.facebook.com/business/learn/set- up-facebook-page Por fim, você pode customizar a página (ver figura 14), por exemplo, colocando uma imagem de fundo, auxiliando o usuário para que ele clique em seu botão de ação. Esta ação irá abrir o seu Chatbot. Outra opção é acessá-lo diretamente pelo aplicativo do Messenger, pesquisando pelo nome da página que você acabou de criar.
Figura 14: Customização da página
CAPÍTULO 3
CONFIGURANDO O CHATBOT DO MESSENGER
Configurando o Chabot do Messenger Crie um chatbot no Facebook Messenger, de maneira simples e sem programação O serviço Chatfuel (https://chatfuel.com) foi utilizado, baseado em nossos critérios de construir um Chatbot, em plaforma Facebook Messenger, de forma simples, ágil e 100% baseada em configuração. O serviço atua como um Broker e abstrai as chamadas às APIs do Facebook, além de permitir a geração de um bot em plataforma Facebook, sem programação. O Chatfuel foi escolhido pelos seguintes motivos: Abstrai de maneira transparente as APIs do Facebook Messenger Permite a integração com APIs externas, no formato JSON Capacidade de integração com serviço cognitivo externo (IBM Watson) Baseado em configuração Serviço gratuito
Figura 15: Tela inicial de configuração do Chatbot
O primeiro passo é criar um Chatbot Messenger, atribuir um nome (no nosso caso, Assistente Virtual) e escolher um template.
Figura 16: Tela de criação com seleção de Template
Em seguida, selecionamos o Chatbot criado e clicamos no botão ‘CONNECT TO FACEBOOK ’.
Figura 17: Tela de configuração inicial do chatbot
Selecionar a página criada ‘Assistente Virtual’ e clicar no botão ‘CONNECT TO PAGE’. Após a conexão ser estabelecida, aparecerá a mensagem ‘Connected to Facebook Page’. Importante: Na primeira vez que for esta conexão for estabelecida o Facebook lhe enviará uma mensagem solicitando sua permissão para que o Chatfuel tenha acesso a alguns serviços do Facebook. Você deve aceitar.
Figura 18: Tela de configuração da conexão com o Facebook
Nesta mesma tela, o usuário pode definir os links de Menu. Este é um menu persistente que fica disponível para o usuário acionar a qualquer momento no seu Chatbot. Aqui você pode definir links como por exemplo: ‘Mensagem de Boas-Vindas’ ou mesmo ‘Reiniciar o Chat’.
Em seguida, o usuário pode definir blocos de perguntas e reposta padrões (figura 19).
Figura 19: Tela de configuração dos blocos de mensagem
Após configurar os blocos de mensagens, o passo final é configurar o serviço do Watson Conversation. Para tal, deve ser utilizado dois plugins: User Input e Plugin JSON. User Input é responsável por solicitar informações do usuário e armazená-los em variáveis, para posterior utilização. Plugin Json, executa uma chamada REST JSON (HTTP GET).
Primeiro configuramos o plugin User Input . Devemos atribuir um nome de variável qualquer, neste caso watsonMessage e selecionar a opção ‘Save user variables ’ na seção Result.
Figura 20: Configuração do plugin User Input
Em seguida, configuramos o plugin JSON. Além deste plugin, o serviço provê alguns outros, que permitem, por exemplo, fazer uma pequisa no Google.
Figura 21: Seleção do pl ugin JSON
Ao selecionar a opção JSON Plugin, é solicitado o link para a API JSON. Você poderia dizer, “OK agora basta chamar a API JSON do Watson e o serviço está funcionando”. Na verdade, não é bem assim. O serviço do Chatful espera um formato de JSON diferente daquele que API do Watson responde . Logo, precisamos de um serviço adicional. De uma nova API que traduza o retorno da chamada do serviço do Watson, de modo que seja corretamente interpretado pelo Chatfuel. Neste caso precisamos do IBM API Connect para fazer a tradução entre estes dois serviços .
Figura 22: Configuração do plugin JSON
Para configurar o plugin JSON, devemos atribuir a URL de chamada à API criada utilizando o serviço IBM API connect (ver figura 22) . O capítulo 4: ‘Conecte-se com o serviço IBM API Connect’, demonstra o passo-a-passo da criação desta API. Abaixo exemplo de URL: https://api.us.apiconnect.ibmcloud.com/davicbbribmcomdev/sb/conversation/watson/$(workspace_id)?message={{watsonMessage}}
, onde: $(workspace_id) é o ID do workspace do serviço Watson Conversation, obtido no capítulo 1. {{watsonMessage}} , deve seguir o mesmo padrão definido na figura 20: Configuração do plugin de user input.
Para mais detalhes sobre a definição desta API, acessar o item: Obtendo a URL para a chamada do serviço Chatfuel (JSON plugin), no final do Capitulo 4.
CAPÍTULO 4
CONECTE-SE COM O SERVIÇO IBM API CONNECT
Conecte-se com o serviço IBM API Connect Exponha APIs de maneira simp les e conecte o seu chatbot Messenger com o IBM Watson As APIs ou application programming interfaces atuam como uma “cola” digital entre serviços, aplicativos, sistemas ou mesmo empresas. Elas permitem acelerar o caminho para o digital, e conectar sistemas de maneira ágil e segura. É a maneira mais rápida para sua aplicação em núvem conectar-se com outros serviços digitais, ao mesmo tempo em que habilita novas experiências para seus clientes. O IBM API Connect é pois a plataforma que oferece os recursos necessários para criar, executar, gerenciar e proteger estas APIs. O IBM API Connect foi escolhido pelos seguintes motivos: Desenvolvimento`de APIs 100% visual, sem necessidade de programação Integração simples com o serviço IBM Watson e o Chatfuel. Utilização de padrões REST e JSON Capacidade de interpretar automaticamente os formatos de mensagens de ambas as plafaformas Capacidades analíticas avançadas e de monitoramento das chamadas das APIs. Simplicidade para testar e depurar as APIs criadas.
1 – Criar o serviço do API Connect no Bluemix
O primeiro passo é acessar a plataforma IBM Bluemix e criar um novo serviço do IBM API Connect. A IBM oferece uma versão gratuita para desenvolvedores .
Após o processo normal de autenticação, o primeiro passo é clicar no menu Catálogo, depois em ‘APIs’ (barra laterial esquerda) e, por fim, clicar no serviço ‘API Connect ’. Você será redirecionado para a tela de criação do serviço do API Connect. Há várias opções de planos e para nosso teste selecionamos a opção ‘Básico ’ que é gratuita e suporta até 50.000 chamadas de API por mês.
Figura 23: Criação do servi ço API Connect
Uma vez criado, o serviço fica disponível no console do Bluemix (ver figura 24).
Figura 24: Novo Serviço do API Connect
2 – Configurar a API de chamada do serviço do Watson
Ao clicar sobre o nome do serviço (figura 24), você tem acesso ao console do API connect . Note que o serviço cria um catálogo padrão, chamado de Sandbox. O catálogo nada mais é do que um agrupamento de APIs, associado a um ambiente de execução (ex. Desenvolvimento, testes, produção).
Figura 25: Tela inicial do API Connect e catálogo
O próximo passo é iniciar a construção da API. Para tal, deve-se clicar no menu ‘ Rascunhos ’ (Drafts) e depois e incl uir API.
Figura 26: Menu ‘Rascunhos’
Figura 27: Inclur nova API
Na tela de definição da API, informar o nome, clicar no botão ‘Add a product...’, e por fim a opção ‘ Create API’. A figura 28 apresenta a tela final, já configurada.
Figura 28: Tela de criação ini cial da API
Como próximo passo vamos configurar a nova API criada, para tal, devemos selecionar a aba ‘Design ’. Você deve manter as opções padrões e alterar apenas os campos destacados abaixo. • •
•
Campo Host: Deixar este campo em branco. Caminho base: Este é o caminho base padrão da URL de chamada de API. Aqui você deve colocar um label que represente sua API. No nosso exemplo foi informado o valor: /conversation Definições de segurança: Neste exemplo nenhuma foi selecionada.
Figura 29: Tela de configuração da API
Na aba Segurança, desabilitá-la, caso a mesma venha habilitada por padrão (ver figura abaixo).
Agora temos que definir uma Operação e um Caminho (Path), para sua api. Primeiro criamos um novo Caminho (sinal de + ao lado da palavra Caminho), atribuimos um nome para o mesmo e, em em seguida, incluimos uma Nova operação do tipo GET (ver figura 30). Para o nome do caminho ut ilizamos o padrão:
/watson/{workspace_id} , sendo que {workpace_id} é um parâmetro de Path da requisição GET. Este parâmetro será utilizado para passar o ID do Workspace do projeto Watson Conversation a ser chamado. Este ID já foi obtido anteriormente, conforme detalhado no Capítulo 1, Figura 6, para maiores detalhes.
Figura 30: Criando um novo caminho
Para finalizar a construção do Caminho, deve-se criar um novo parâmetro , chamado w orkspace_id , localizado em Caminho (path), do tipo String e obrigatório . Para tal, clicar no botão Incluir parâmetro (ver figura 51).
Figura 31: Criando um novo caminho (definição de parâmetro)
Opcionalmente, pode-se atribuir um nome para o campo ID da Operação. Este campo auxilia durante o processo de construção de API, quando temos que trabalhar com diversas operações de chamada (GET, POST, etc). Neste caso, atribuimos a string get.WatsonReponse (qualquer string aqui é válida). Deve-se criar um segundo parâmetro para armazenar a string de consulta (parâmetro de entrada) para o serviço Watson. Esta string armazena a pergunta (texto) informada pelo usuário através do Chatbot do Messenger. Atribuimos o nome ‘message’, localizando em ‘Consulta (Query)’, do tipo string e obrigatório .
Figura 32: Criação do parâmetro de entrada para o serviço Watson
No parâmetro Resposta, deixamos configurado apenas o código de status HTTP 200 OK e esquema do tipo object . Outros status HTTP podem ser configurados, como por exemplo para tratar mensagens de erro na chamada da API. Para efeito de simplicidade, utilizaremos os valores padrões.
Construção do fluxo da API (assemble) Em seguida, clicamos na aba ‘Montar ’ (Assemble, em inglês). Clicar no simbolo de menu suspenso e selecionar a opção ‘Políticas do Datapower Gateway’. Desenhar o um fluxo contendo: 1(uma) operação de invoke e 2(duas) políticas do tipo map (ver figura 33). Para tal, basta arrastar e soltar os componentes do menu lateral para a tela principal.
Figura 33: Construção do fluxo de montagem (assemble)
- Configuração da política de invoke (Consulta Watson):
Clicar sobre a política de invoke e configurar os seguintes campos: 1. URL : URL do serviço Watson Conversation. Deve seguir o seguinte padrão:
https://gateway.watsonplatform.net/conversation/api/v1/workspaces /$(request .parameters.workspace_id) /message?version=2016-09-20
, onde: $(request.parameters.workspace_id): deve ser substituído pelo parâmetro workspace_id enviado no caminho(path) da consulta da API. version=2016-09-20: parâmetro que informa a versão do serviço Watson utilizada.
Os seguintes campos também devem ser configurados. 1. Nome do usuário: Nome do usuário do serviço do Watson (veja como obter as credenciais no capítulo 1) 2. Senha: Senha para acesso ao serviço watson (veja como obter as credenciais no capítulo 1) 3. Método de HTTP: POST 4. Tipo de Cache: Sem cache 5. Variável do objeto de resposta: respostaWatson (qualquer string neste caso serve). Esta variável é utilizada para armazenar a resposta JSON da chamada ao serviço watson.
Figura 34: Configuração da atividade Invoke
- Configuração da atividade de mapeamento de entrada (map – entrada):
Esta atividade deve ser posicionada antes da chamada invoke ‘Consulta Watson’, previamente configurada. Selecionar a atividade ‘map-entrada’ e clicar sobre o pincel ao lado da coluna Entrada (Input), conforme a figura abaixo.
Figura 35: Configuração da atividade de mapeamento de entrada Informar: Variável de contexto: request.parameters.message Tipo de conteúdo : none Definição: string
, onde a variável de contexto, contêm o valor da string de consulta, informada pelo usuário do Chatbot, a ser enviado ao serviço Watson. Clicar no botão Pronto
De volta à tela de configuração da atividade de mapeamento ‘map - entrada’, clicar no lápis ao lado da coluna Saída.
Figura 36: Config uração da atividade de mapeamento de saída
Informar: Variável de contexto: message.body (valor padrão) Tipo de conteúdo : none Definição: Esquema sequencial (inline schema)
, ao clicar no par de setas ao lado da opção ‘Esquema Sequencial’, abrirá o popup seguinte.
Figura 37: Configuração da mensagem de entrada do serviço Watson
Selecionar a opção ‘Generate from sample JSON’. Copiar e colar o conteúdo JSON abaixo. Este é um exemplo de conteúdo JSON a ser enviado para o serviço do Watson conversation. { "input": { "text": "Eu tive um problema com a TV" }, "alternate_intents": true, "context": { "conversation_id": "1b7b67c0-90ed-45dc-85089488bc483d5c", "system": { "dialog_stack": [ { "dialog_node": "root" } ], "dialog_turn_counter": 2, "dialog_request_counter": 2 } } }
Clicar no botão Pronto
Figura 38: Tela de configuração do mapeamento de entrada
O próximo passo é fazer o mapeamento visual dos campos para a chamada do serviço Watson. Para tal deve-se configurar os segui ntes campos:
1. Arrastar e soltar o campo Input (Entrada) para o campo Input -> Text (Saída) 2. Atribuir um valor para o campo conversation_id . No meu caso eu utilizei o valor: 1b7b67c0-90ed-45dc-8508-9488bc483d5c – este é um ID que representa uma sessão conversacional com o Watson. Pode ser um número randômico gerado pela aplicação cliente. 3. Atribuir o valor 2 para dialog_turn_counter 4. Atribuir o valor 2 para dialog_request_counter Obs: para atribuir os valores dos itens 2, 3 e 4 acima, basta clicar no botão ao lado do atributo e atribuir um mapeamento padrão, conforme figura abaixo.
Figura 39: Tela de configuração de mapeamento padrão - Configuração da atividade de mapeamento de saída (map2 – saida):
Esta atividade deve ser posicionada depois da chamada invoke ‘Consulta Watson’, previamente configurada. Selecionar a atividade ‘map2-saida’ e clicar sobre o pincel ao lado da coluna Entrada (ou Input), conforme a figura abaixo.
Figura 40: Configuração da atividade de mapeamento de saída
Informar: Variável de contexto: respostaWatson.body Tipo de conteúdo : application/json Definição: Esquema sequencial (Inline Schema)
, onde a variável de contexto, contêm o retorno da consulta ao serviço Watson. Note o nome da variável respostaWatson , definido na configuração da atividade invoke. Clicar no par de setas ao lado da opção ‘Esquema Sequencial’, abrirá o popup seguinte.
Figura 41: Configuração da mensagem de saída do serviço Watson
Selecionar a opção ‘Generate from sample JSON’. Copiar e colar o conteúdo JSON abaixo. Este é um exemplo de conteúdo JSON enviado como resposta do serviço Watson conversation.
{ "output": { "log_messages": [], "text": ["Entendi! Você já seguiu todas as instruções do manual de instalação, disponível em:\nhttp://img.submarino.com.br/manuais/119536460.p df"], "nodes_visited": [ "node_1_1474384157081", "node_2_1474384216770" ] }, "context": { "conversation_id": "1b7b67c0-90ed-45dc-85089488bc483d5c", "system": { "dialog_stack": [{"dialog_node": "node_2_1474384216770"}], "dialog_turn_counter": 3, "dialog_request_counter": 3 } } }
Clicar no botão Pronto. Clicar em Pronto novamente na tela da atividade de mapeamento ‘map2 - saída’. De volta à tela de configuração da atividade de mapeamento ‘map2 - saida’, clicar no lápis ao lado da coluna Saída.
Figura 42: Configuração da atividade de mapeamento de saída
Informar: Variável de contexto: message.body (valor padrão) Tipo de conteúdo : application/json Definição: Esquema sequencial (inline schema)
Ao clicar no par de setas ao lado da opção ‘Esquema Sequencial’, abrirá o popup seguinte.
Figura 43: Configuração da atividade de mapeamento de saída
Selecionar a opção ‘Generate from sample JSON’. Copiar e colar o conteúdo JSON abaixo. Este é um exemplo de conteúdo JSON de retorno a ser enviado ao serviço Chatfuel. O serviço espera receber um array de mensagens do tipo texto. [ {"text": "Welcome to our store!"}, {"text": "How can I help you?"} ]
Este é um exemplo de retorno de mensagem de texto simples. O chatbot pode exibir imagens, galerias de imagens e vídeos. Para outros exemplos de como retornar conteúdo multi-media, acessar a documentação (chatfuel): https://help.chatfuel.com/facebook-messenger/plugins/json-plugin/
O próximo passo é configurar o mapeamento da variável de Entrada (input) para a Saída (output_1). Ligar o campo text de input ao campo text de output_1 (ver figura abaixo).
Figura 44: Mapeamento da mensagem de retor no do API Connect
Para finalizar o mapeamento falta um último passo para configurar o array. Deve-se clicar sobre o botão de seleção verde ao lado do campo text , de output_1. No popup de ‘Configurar mapeamento’, você precisa informar as seguintes opções: • •
No campo iterate over (select box), select input.output No campo Valor , informar: $(text)
Figura 45: Mapeamento das mensagens retornadas pelo s erviço Watson
Este mapeamento é necessário uma vez que o serviço ChatFuel espera um array de mensagens. Para simplificar o nosso serviço Watson retorna apenas uma mensagem .
A tela final de configuração da API, fica com a seguinte configuração. O próximo passo é testar a API. Para tal, basta clicar no botão Testar (botão de seta), localizado diretamente acima do fluxo de montagem.
Figura 66: Fluxo de montagem final e botão de Teste
Na tela de Testes o primeiro passo é clicar no botão ‘Mudar configuração ’ (figura 47), selecionar o novo produto criado (Watson product 1.0.0 ) e então clicar no botão Republicar produtos (figura 68).
Figura 47: Fluxo de montagem fi nal e botão de Teste
Figura 48: Republicar Produto
Nesta mesma tela informar: • workspace_id: ID do workspace do Watson, obtido no capítulo 1. • message: Mensagem enviada pelo usuário que simula o chatbot
Figura 49: Informações para teste da API
Por fim, basta clicar no botão Chamar. Após a realização do teste, a API retorna com uma mensagem de HTTP Status 200 OK e o seguinte texto: [ { "text": "Entendi! Você já seguiu todas as instruções do manual da instalaçao da sua TV, disponível em http://..." } ] Esta é uma mensagem do serviço Watson Conversation que detectou que o usuário estava reclamando quanto ao funcionamento de um aparelho de TV, recentemente adquirido (ver figura 50).
Figura 50: Mensagem de retorno da chamada do servi ço Watson
- Redefinindo a configuração do Produto ‘Watson product’ .
Como uma etapa adicional de configuração, o usuário pode configurar o novo produto ‘Watson product 1.0.0’ criado para sua API, além de definir os planos de consumo. Através dos Planos é possível impor limites ao número de chamadas para a API do Watson , assim como definir condições adicionais de segurança, como por exemplo, a necessidade de aprovação do processo de subscrição ao Plano, de modo que somente usuários autorizados possam consumir sua nova API.
Figura 51: Seleção do novo produto criado
Figura 52: Tela de confi guração do plano
Quando testamos a API, a mesma é automaticamente publicada no Portal do API Connect. Através do portal, o usuário pode testar e consumir as APIs, além de acessar a documentação e exemplos de códigos de disparo em diferentes linguagens (ver figura 54).
Figura 53: Portal do API Connect
Figura 54: Documentação e ferramenta de testes da API
Por fim, o usuário pode ter acesso a uma interface avançada de análise de dados, consumo das APIs e configuração de key performance indicators (KPIs). O próprio usuário pode criar seus próprios dashboards e visualizações com base nos dados obtidos através da execução das APIs.
Figura 55: Visão analítica do con sumo das APIs criadas.
- Obtendo a URL para a chamada do serviço Chatfuel (JSON plugin)
Com a API pronta, o passo final é definir a URL de chamada à API, à partir do componente JSON plugin do Chatfuel. Exemplo de URL: https://api.us.apiconnect.ibmcloud.com/davicbbribmcomdev/sb/conversation/watson/$(workspace_id)?message={{watsonMessage}}
A URL tem o seguinte formato: URL base + Caminho base + Path + /$(workspace_id)?message={{watsonMessage}} , onde: $(workspace_id) é o ID do workspace do serviço Watson Conversation, obtido no capítulo 1. {{watsonMessage}} , deve seguir o mesmo padrão definido na figura 20: Configuração do plugin de user input.
Para obter a URL base, acessar: Menu Painel -> Sandbox -> Configurações -> Endpoints , conforme a figura 56 abaixo.
Figura 56: Obtenção da URL base da API
Esta URL final deve ser utilizada na configuração do plugin JSON do serviço Chatfuel, conforme descrito na figura 22 do capítulo 3.
CAPÍTULO 5
TESTANDO O SEU CHATBOT
Para acessar o Chatbot, basta pesquisar por sua nova página do Facebook criada, seja na Web, no Messenger ou no aplicativo mobile. Na página web, é necessário clicar no botão Enviar Mensagem (ver figura 57). Pelo aplicativo do Messenger a comunicação é mais natural.
Figura 57: Iniciando uma uma conversa com o chatbot pela Web
Figura 58: Usuário envia um a mensagem inicial
Em seguida, você terá acesso à tela de chat e poderá comunicar-se normalmente com o seu bot. Abaixo alguns exemplos de perguntas e respostas.
Na resposta à pergunta ‘Quero devolver o celular ’, observe a capacidade o Watson de identificar não somente tratar-se de uma devolução, mas também que o aparelho em questão era um celular.
Observe que, a qualquer momento, o usuário você tem acesso ao menu suspenso onde é possível acessar os links pré-definidos como, por exemplo, para reiniciar o chat.
“People are now spending more time in messaging apps than in social media and that is a huge turning point. Messaging apps are the platforms of the future and bots will be how their users access all sorts of services.” — Peter Rojas, Entrepreneur in Residence at Betaworks
“
Intelligence is the electricity of our era. Shubha Nabar
View more...
Comments