Davi Cunha eBook Criando Chatbot Sem Programacao

Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF