You are on page 1of 60

GUIA DEFINITIVO

PARA CRIAR O SEU


CHATBOT
COGNITIVO
SEM
PROGRAMAO
GUIA COMPLETO PARA CRIAR O SEU CHATBOT, EM
PLATAFORMA FACEBOOK MESSENGER, USANDO
APIS e SERVIOS COGNITIVOS

Autor: Davi Cunha


NDICE

A Revoluo dos Chatbots

1 IBM Watson Conversation

2 Criando uma pgina no Facebook

3 Configurando o Chatbot do Messenger

4 Conecte-se com o servio IBM API


Connect

5 Testando o seu Chatbot


INTRODUO

A Revoluo dos
Chatbots
A Revoluo dos bots

O avano dos apps de mensagens, da inteligncia


artificial e a necessidade de personalizao extrema
est criando um cenrio perfeito para os chatbots

Vivemos em uma era de profunda disrupo digital. O impacto da automao


de tarefas, dos sistemas cognitivos, dos aplicativos de mensagem e dos bots
ir afetar decisivamente nosso dia-a-dia e nossas relaes com o trabalho. E
para isso, fundamental que estejamos preparados para estas mudanas.

Mas afinal, voc sabe o que so Bots?

Para quem ainda no conhece o termo, bots (diminutivo de robots), so


programas de computador, ou softwares, que permitem automatizar
interaes entre seres humanos e mquinas. Estas interaes podem
acontecer de diferentes formas: voz, escrita em linguagem natural, sensores
de movimento, entre outros. Chatbot uma definio atribuda a um tipo
comum de bot que interage com seres humanos atravs da escrita,
normalmente utilizando linguagem natural. Estes softwares so programados
para realizar diversas tarefas especficas do nosso dia-a-dia, como por
exemplo:

- Prover primeiro nvel de atendimento ao cliente, atravs de um aplicativo


de mensagens ou telefone.
- Obter notificaes customizadas e notcias em tempo real
- Permitir jogos multi-usurios
- Obter um relatrio atualizado de previso do tempo
- Reservar um assento em um vo, receber informaes de uma reserva
de hotel, e muitos outros servios
Os avanos dos aplicativos de mensagem, da inteligncia artificial e a
necessidade de personalizao extrema est criando o cenrio perfeito para
o desenvolvimento dos chatbots. No toa que a automao de bots um
tipo de Inteligncia 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 interesse?

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, inmeras


empresas esto visumbrando um grande potencial para lanar novos
servios diferenciados nestes canais. Dado o contnuo e crescente uso
destas plataformas, os aplicativos de mensagem esto, naturalmente,
transformando-se em uma espcie de central para todo o tipo de servio.
Um estudo interessante do Gartner que mostra que 33% das interaes
relacionadas a servios de atendimento ao cliente ainda precisaro de
envolvimento humano em 2017, contra cerca de 60% em 2014.

Uma notcia importante para o avano dos chatbots foi o anncio do


Facebook, que lanou 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 integrada.
Isto, sem dvida, abre inmeras novas oportunidades para os
desenvolvedores de chatbots nesta plataforma.

Diante deste cenrio um grande nmero de marcas e empresas tais como


HP, CNN, KLM, Sephora, Nordstrom, Uber, entre muitas outras, j
publicaram seus chatbots, e entregam experincias e servios diferenciados
em diversos aplicativos de mensagens, tais como: Facebook Messenger,
Telegram, Kik, Slack, entre outros.

Alm da ampla acessibilidade, os chatbots tm um grande diferencial. No


necessrio baixar um aplicativo mobile para utiliz-los. Eles esto to
integrados aos aplicativos de mensagens que s vezes dificil perceber
que, de fato, voc est conversando com um Rob.

Diante deste cenrio eu me deparei com um desafio: Como construir um


chatbot cognitivo, de maneira simples, gil e sem programao?

Depois de muito estudar o assunto e avaliar diferentes plataformas, eu


percebi que faltava uma pea-chave que iria se tornar fundamental para
alcanar este meu objetivo. O nome dela: Application Programming
Interfaces ou APIs. Sim, as boas e velhas APIs!

Na prtica pude experimentar que as APIs simplificam muito a criao de


chatbots e permitem integrar este apps de maneira simples a uma
infinidade de servios digitais. Conforme o uso dos bots ganham escala,
nada mais natural do que beneficiar-se dos servios digitais atualmente
disponiveis nas plataformas em nvem.
Conforme a utilizao dos bots cresce e ganha escala, fica claro que uma
combinao correta de capacidades cognitivas avanadas e um plataforma
avanada para consumo, exposio e monetizao de APIs, fundamental
para estimular a expanso do ecossistema de bots.

Mas afinal, como construir um chatbot cognitivo, de maneira simples,


gil e sem programao?

Neste eBook demonstro o passo-a-passo de como construir um chatbot


para plataforma Facebook Messenger, utilizando:

Um servio de Broker, responsvel por prover a conectividade com a


Plataforma facebook, abstraindo as chamadas s APIs do Facebook
(Chatfuel).
Servio IBM Watson Conversation, responsvel pelo gerenciamento
dos dilogos entre o usurio e o bot, alm da capacidade de
interpretao de linguagem natural.
Servio IBM API Connect responsvel por prover a comunicao entre o
Broker e o servio Watson, traduo de formatos de mensagens assim
como ampla conectividade servios externos, via APIs.
Plataforma cloud IBM Bluemix, permitindo acesso simplificado aos
servios IBM API Connect and IBM Watson Conversation.

IBM Bluemix
(cloud)

APIs
Facebook Broker App IBM API
Messenger (Chatfuel) Connect
APIs
APIs

IBM Watson
Conversation

Figura: Diagrama de arquitetura de soluo proposta


CAPTULO 1

IBM Watson
Conversation
IBM Watson Conversation

Crie bots e agentes virtuais, utilizando os servios


cognitivos do IBM Watson

O servio IBM Watson Conversation permite a criao de chatbots e


agentes virtuais inteligentes, combinando tcnicas de machine learning,
interpretao de linguagem natural e ferramentas de dilogo integradas.

O Watson Conversation prov um ambiente grfico para a criao de


servios de conversao, entre aplicaes e usurios, utilizando linguagem
natural.

O servio IBM Watson foi escolhido pelos seguintes motivos:

Ambiente em nvem (Bluemix), grfico e baseado em configurao


Simples e fcil aprendizado e utilizao
Reconhecimento de linguagem natural
Capacidade de estabelecer dilogos complexos e recursos de cognio
Capacidade de complementar a soluo com outros servios cognitivos
avanados, tais como: Insights de personalidade, reconhecimento visual de
imagens, identificao de tons de linguagem, tradutor, entre outros.
Integrao com agentes virtuais, tal como o IBM Watson Virtual Agent.
Maturidade da plataforma e reconhecimento de mercado

Para mais detalhes do servio IBM Watson Conversation, acesse:


https://www.ibm.com/watson/developercloud/doc/conversation/

O servio IBM Watson Conversation est hospedado na plataforma em


nvem digital IBM Bluemix.
1 Acessar sua conta no IBM Bluemix

Para criar o seu servio 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 endereo abaixo e se registrar. A
plataforma oferece um servio trial por 30(trinta) dias.

https://console.ng.bluemix.net/

Figura 1: Tela de cadastro do IBM Bluemix

2 Criar o servio Watson Conversation

Aps o processo normal de autenticao no IBM Bluemix, o primeiro passo


clicar no menu Catlogo, depois em Watson (barra laterial esquerda) e, por
fim, selecionar o servio Conversation (ver figura 2).
Figura 2: Consulta pelo servio Watson Conversation

O prximo passo selecionar o servio Conversation, manter as opes


padres e clicar em Criar. Para quem est iniciando na plataforma h uma
excelente opo free, que permite at 1000 chamadas por ms.

Um novo servio do Watson Conversation automaticamente criado e


iniciado. Ao clicar no menu Painel, voc tem acesso todos os servios
criados na plataforma Bluemix.
Figura 3: Servio Watson Conversation (Plano Free)

Ao clicar sobre o servio criado voc ter acesso tela de viso geral`do
Watson Conversation. Para configurar o servio de Conversation, clicar no
boto Launch tool.

Figura 4: Viso geral do Servio de Conversation


Na tela seguinte possvel criar um novo workspace (boto Create), que
contm as definies necessrias para a configurao e execuo do servio
Watson. Para efeito de demonstrao j foi pr-carregado um Workspace
chamado de Assistente_Virtual.

Figura 5: Tela de configurao do Workspace

Clicar nos trs botes verticais no canto direito do Workspace. Selecionar a


opo Visualizar Detalhes e ento 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 servio do IBM API Connect.
Figura 6: Tela de configurao do Workspace

Em seguida, deve-se voltar tela anterior e clicar sobre o Workspace. O


mesmo ser aberto e voc ter acesso tela de configurao do servio do
Watson. Aqui voc poder configurar o seu servio do Conversation. Como
parte da configurao do mesmo, voc precisa configurar as Intenes
(Intents), Entidades (Entities) e Dilogos (Dialogs).

Na figura 7 abaixo, temos um exemplo da configurao de um Dialog. Nela o


usurio configura as respostas automticas que so apresentadas ao usurio
final do chatbot. Note que, alm de criar os dilogos, o usurio pode treinar o
servio de Conversation e testar as respostas de maneira interativa (ver
figura 8).

Entrar no detalhe da configurao do Watson Conversation est fora do


escopo deste eBook. Desta forma, deixo abaixo algumas referncias para
acelerar e auxiliar no processo de criao deste servio.

Artigo:
Build a chat bot in ten minutes with Watson

Documentao (Watson Developer Cloud):


https://www.ibm.com/watson/developercloud/doc/conversation/
Figura 7: Tela de configurao de um Dilogo

Figura 8: Tela de treino do servio Watson


O servio do Watson Conversation disponibiliza uma API REST, que ser
utilizada, posteriormente, para a configurao do nosso Chatbot. Nesta
pgina voc tem informaes detalhadas de como usar a API do Watson,
para a comunicao do servio de Conversation. Note que esta API usa
padro JSON, para entrada e sada de dados, alm de autenticao HTTP
BASIC, devendo-se informar usurio e senha. Voc pode, facilmente testar a
API usando ferramentas tais como CURL ou SOAPUI.

Para obter o usurio e senha do servio, basta novamente acessar o servio


de Conversation no painel do Bluemix e depois em Credencias de servio
(ver figura 9).

Link para a API REST:


http://www.ibm.com/watson/developercloud/conversation/api/v1/

Figura 9: Credenciais para chamada do servio Conversation


CAPTULO 2

CRIANDO UMA
PGINA NO
FACEBOOK
Criando uma Pgina no
Facebook
Crie uma pgina personalizada no Facebook para
hospedar o seu Chatbot

Para que possamos integrar o novo Chatbot com seu Facebook e com o
Messenger, preciso criar uma pgina personalizada no Facebook.
Lembrando que voc pode utilizar uma pgina pr-existente associada sua
conta. No seu Facebook, acesse o Menu e ento a opo Create Page.

Figura 10: Criando uma pgina no Facebook

Na tela de configurao da pgina voc pode associ-la a um produto,


negcio, ou mesmo apenas para entretenimento. Neste caso foi selecionado
a opo Marca ou Produto. Basta atribuir um nome da sua preferncia para
o seu Chatbot.
Figura 11: Configurao da pgina do Facebook

Altere o boto de ao principal da pgina, clicando no pincel do lado direito


e selecione a opo Send Message.

Figura 12: Alterando o boto principal de Click to action

Habilite a opo Turn on instant replies


Figura 13: Tela de configurao do boto Send Message

Para mais detalhes de como criar sua pgina no Facebook, acessar:


https://www.facebook.com/business/learn/set-up-facebook-page

Por fim, voc pode customizar a pgina (ver figura 14), por exemplo,
colocando uma imagem de fundo, auxiliando o usurio para que ele clique
em seu boto de ao. Esta ao ir abrir o seu Chatbot. Outra opo
acess-lo diretamente pelo aplicativo do Messenger, pesquisando pelo nome
da pgina que voc acabou de criar.

Figura 14: Customizao da pgina


CAPTULO 3

CONFIGURANDO O
CHATBOT DO
MESSENGER
Configurando o Chabot do
Messenger
Crie um chatbot no Facebook Messenger, de maneira
simples e sem programao

O servio Chatfuel (https://chatfuel.com) foi utilizado, baseado em nossos


critrios de construir um Chatbot, em plaforma Facebook Messenger, de forma
simples, gil e 100% baseada em configurao. O servio atua como um
Broker e abstrai as chamadas s APIs do Facebook, alm de permitir a
gerao de um bot em plataforma Facebook, sem programao.

O Chatfuel foi escolhido pelos seguintes motivos:

Abstrai de maneira transparente as APIs do Facebook Messenger


Permite a integrao com APIs externas, no formato JSON
Capacidade de integrao com servio cognitivo externo (IBM Watson)
Baseado em configurao
Servio gratuito

Figura 15: Tela inicial de configurao 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 criao com seleo de Template

Em seguida, selecionamos o Chatbot criado e clicamos no boto CONNECT


TO FACEBOOK.

Figura 17: Tela de configurao inicial do chatbot


Selecionar a pgina criada Assistente Virtual e clicar no boto CONNECT
TO PAGE. Aps a conexo ser estabelecida, aparecer a mensagem
Connected to Facebook Page. Importante: Na primeira vez que for esta
conexo for estabelecida o Facebook lhe enviar uma mensagem
solicitando sua permisso para que o Chatfuel tenha acesso a alguns
servios do Facebook. Voc deve aceitar.

Figura 18: Tela de configurao da conexo com o Facebook

Nesta mesma tela, o usurio pode definir os links de Menu. Este um menu
persistente que fica disponvel para o usurio 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 usurio pode definir blocos de perguntas e reposta padres
(figura 19).

Figura 19: Tela de configurao dos blocos de mensagem

Aps configurar os blocos de mensagens, o passo final configurar o servio


do Watson Conversation. Para tal, deve ser utilizado dois plugins: User Input
e Plugin JSON. User Input responsvel por solicitar informaes do
usurio e armazen-los em variveis, para posterior utilizao. Plugin Json,
executa uma chamada REST JSON (HTTP GET).
Primeiro configuramos o plugin User Input. Devemos atribuir um nome de
varivel qualquer, neste caso watsonMessage e selecionar a opo Save
user variables na seo Result.

Figura 20: Configurao do plugin User Input

Em seguida, configuramos o plugin JSON. Alm deste plugin, o servio prov


alguns outros, que permitem, por exemplo, fazer uma pequisa no Google.
Figura 21: Seleo do plugin JSON

Ao selecionar a opo JSON Plugin, solicitado o link para a API JSON.


Voc poderia dizer, OK agora basta chamar a API JSON do Watson e o
servio est funcionando. Na verdade, no bem assim.

O servio do Chatful espera um formato de JSON diferente daquele que


API do Watson responde. Logo, precisamos de um servio adicional. De
uma nova API que traduza o retorno da chamada do servio do Watson, de
modo que seja corretamente interpretado pelo Chatfuel. Neste caso
precisamos do IBM API Connect para fazer a traduo entre estes dois
servios.

Figura 22: Configurao do plugin JSON


Para configurar o plugin JSON, devemos atribuir a URL de chamada API
criada utilizando o servio IBM API connect (ver figura 22). O captulo 4:
Conecte-se com o servio IBM API Connect, demonstra o passo-a-passo da
criao desta API.

Abaixo exemplo de URL:


https://api.us.apiconnect.ibmcloud.com/davicbbribmcom-
dev/sb/conversation/watson/$(workspace_id)?message={{watsonMessage}}

, onde:

$(workspace_id) o ID do workspace do servio Watson Conversation, obtido no


captulo 1.

{{watsonMessage}}, deve seguir o mesmo padro definido na figura 20:


Configurao do plugin de user input.

Para mais detalhes sobre a definio desta API, acessar o item: Obtendo a
URL para a chamada do servio Chatfuel (JSON plugin), no final do
Capitulo 4.
CAPTULO 4

CONECTE-SE COM O
SERVIO
IBM API CONNECT
Conecte-se com o servio
IBM API Connect
Exponha APIs de maneira simples e conecte o seu
chatbot Messenger com o IBM Watson

As APIs ou application programming interfaces atuam como uma cola


digital entre servios, aplicativos, sistemas ou mesmo empresas. Elas
permitem acelerar o caminho para o digital, e conectar sistemas de maneira
gil e segura. a maneira mais rpida para sua aplicao em nvem
conectar-se com outros servios digitais, ao mesmo tempo em que habilita
novas experincias para seus clientes. O IBM API Connect pois a plataforma
que oferece os recursos necessrios 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 programao


Integrao simples com o servio IBM Watson e o Chatfuel.
Utilizao de padres REST e JSON
Capacidade de interpretar automaticamente os formatos de mensagens de
ambas as plafaformas
Capacidades analticas avanadas e de monitoramento das chamadas das
APIs.
Simplicidade para testar e depurar as APIs criadas.

1 Criar o servio do API Connect no Bluemix

O primeiro passo acessar a plataforma IBM Bluemix e criar um novo


servio do IBM API Connect. A IBM oferece uma verso gratuita para
desenvolvedores.
Aps o processo normal de autenticao, o primeiro passo clicar no menu
Catlogo, depois em APIs (barra laterial esquerda) e, por fim, clicar no
servio API Connect. Voc ser redirecionado para a tela de criao do
servio do API Connect. H vrias opes de planos e para nosso teste
selecionamos a opo Bsico que gratuita e suporta at 50.000
chamadas de API por ms.

Figura 23: Criao do servio API Connect

Uma vez criado, o servio fica disponvel no console do Bluemix (ver figura
24).

Figura 24: Novo Servio do API Connect


2 Configurar a API de chamada do servio do Watson

Ao clicar sobre o nome do servio (figura 24), voc tem acesso ao console
do API connect. Note que o servio cria um catlogo padro, chamado de
Sandbox. O catlogo nada mais do que um agrupamento de APIs,
associado a um ambiente de execuo (ex. Desenvolvimento, testes,
produo).

Figura 25: Tela inicial do API Connect e catlogo

O prximo passo iniciar a construo da API. Para tal, deve-se clicar no


menu Rascunhos (Drafts) e depois e incluir API.
Figura 26: Menu Rascunhos Figura 27: Inclur nova API

Na tela de definio da API, informar o nome, clicar no boto Add a


product..., e por fim a opo Create API. A figura 28 apresenta a tela final,
j configurada.

Figura 28: Tela de criao inicial da API


Como prximo passo vamos configurar a nova API criada, para tal, devemos
selecionar a aba Design. Voc deve manter as opes padres e alterar
apenas os campos destacados abaixo.

Campo Host: Deixar este campo em branco.


Caminho base: Este o caminho base padro da URL de chamada de
API. Aqui voc deve colocar um label que represente sua API. No nosso
exemplo foi informado o valor: /conversation
Definies de segurana: Neste exemplo nenhuma foi selecionada.

Figura 29: Tela de configurao da API

Na aba Segurana, desabilit-la, caso a mesma venha habilitada por padro


(ver figura abaixo).
Agora temos que definir uma Operao 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
operao do tipo GET (ver figura 30).

Para o nome do caminho utilizamos o padro:

/watson/{workspace_id}

, sendo que {workpace_id} um parmetro de Path da requisio GET.


Este parmetro ser utilizado para passar o ID do Workspace do projeto
Watson Conversation a ser chamado. Este ID j foi obtido anteriormente,
conforme detalhado no Captulo 1, Figura 6, para maiores detalhes.

Figura 30: Criando um novo caminho

Para finalizar a construo do Caminho, deve-se criar um novo parmetro,


chamado workspace_id, localizado em Caminho (path), do tipo String e
obrigatrio. Para tal, clicar no boto Incluir parmetro (ver figura 51).
Figura 31: Criando um novo caminho (definio de parmetro)

Opcionalmente, pode-se atribuir um nome para o campo ID da Operao.


Este campo auxilia durante o processo de construo de API, quando temos
que trabalhar com diversas operaes de chamada (GET, POST, etc). Neste
caso, atribuimos a string get.WatsonReponse (qualquer string aqui vlida).

Deve-se criar um segundo parmetro para armazenar a string de consulta


(parmetro de entrada) para o servio Watson. Esta string armazena a
pergunta (texto) informada pelo usurio atravs do Chatbot do Messenger.
Atribuimos o nome message, localizando em Consulta (Query), do tipo
string e obrigatrio.

Figura 32: Criao do parmetro de entrada para o servio Watson


No parmetro Resposta, deixamos configurado apenas o cdigo 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 padres.

Construo do fluxo da API (assemble)

Em seguida, clicamos na aba Montar (Assemble, em ingls). Clicar no


simbolo de menu suspenso e selecionar a opo Polticas do Datapower
Gateway. Desenhar o um fluxo contendo: 1(uma) operao de invoke e
2(duas) polticas do tipo map (ver figura 33). Para tal, basta arrastar e soltar
os componentes do menu lateral para a tela principal.

Figura 33: Construo do fluxo de montagem (assemble)

- Configurao da poltica de invoke (Consulta Watson):

Clicar sobre a poltica de invoke e configurar os seguintes campos:

1. URL: URL do servio Watson Conversation. Deve seguir o seguinte


padro:

https://gateway.watsonplatform.net/conversation/api/v1/workspaces/$(request
.parameters.workspace_id)/message?version=2016-09-20
, onde:

$(request.parameters.workspace_id): deve ser substitudo pelo parmetro


workspace_id enviado no caminho(path) da consulta da API.
version=2016-09-20: parmetro que informa a verso do servio Watson
utilizada.

Os seguintes campos tambm devem ser configurados.

1. Nome do usurio: Nome do usurio do servio do Watson (veja como


obter as credenciais no captulo 1)
2. Senha: Senha para acesso ao servio watson (veja como obter as
credenciais no captulo 1)
3. Mtodo de HTTP: POST
4. Tipo de Cache: Sem cache
5. Varivel do objeto de resposta: respostaWatson (qualquer string
neste caso serve). Esta varivel utilizada para armazenar a resposta
JSON da chamada ao servio watson.

Figura 34: Configurao da atividade Invoke


- Configurao 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: Configurao da atividade de mapeamento de entrada

Informar:
Varivel de contexto: request.parameters.message
Tipo de contedo: none
Definio: string

, onde a varivel de contexto, contm o valor da string de consulta, informada


pelo usurio do Chatbot, a ser enviado ao servio Watson.

Clicar no boto Pronto


De volta tela de configurao da atividade de mapeamento map - entrada,
clicar no lpis ao lado da coluna Sada.

Figura 36: Configurao da atividade de mapeamento de sada

Informar:
Varivel de contexto: message.body (valor padro)
Tipo de contedo: none
Definio: Esquema sequencial (inline schema)

, ao clicar no par de setas ao lado da opo Esquema Sequencial, abrir o


popup seguinte.
Figura 37: Configurao da mensagem de entrada do servio Watson

Selecionar a opo Generate from sample JSON. Copiar e colar o


contedo JSON abaixo. Este um exemplo de contedo JSON a ser enviado
para o servio do Watson conversation.

{
"input": {
"text": "Eu tive um problema com a TV"
},
"alternate_intents": true,
"context": {
"conversation_id": "1b7b67c0-90ed-45dc-8508-
9488bc483d5c",
"system": {
"dialog_stack": [
{
"dialog_node": "root"
}
],
"dialog_turn_counter": 2,
"dialog_request_counter": 2
}
}
}

Clicar no boto Pronto


Figura 38: Tela de configurao do mapeamento de entrada

O prximo passo fazer o mapeamento visual dos campos para a chamada


do servio Watson.

Para tal deve-se configurar os seguintes campos:

1. Arrastar e soltar o campo Input (Entrada) para o campo Input -> Text
(Sada)
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 sesso conversacional com o Watson. Pode ser um
nmero randmico gerado pela aplicao 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


boto ao lado do atributo e atribuir um mapeamento padro, conforme
figura abaixo.
Figura 39: Tela de configurao de mapeamento padro

- Configurao da atividade de mapeamento de sada (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: Configurao da atividade de mapeamento de sada


Informar:
Varivel de contexto: respostaWatson.body
Tipo de contedo: application/json
Definio: Esquema sequencial (Inline Schema)

, onde a varivel de contexto, contm o retorno da consulta ao servio


Watson. Note o nome da varivel respostaWatson, definido na configurao
da atividade invoke.

Clicar no par de setas ao lado da opo Esquema Sequencial, abrir o


popup seguinte.

Figura 41: Configurao da mensagem de sada do servio Watson

Selecionar a opo Generate from sample JSON. Copiar e colar o


contedo JSON abaixo. Este um exemplo de contedo JSON enviado como
resposta do servio Watson conversation.
{
"output": {
"log_messages": [],
"text": ["Entendi! Voc j seguiu todas as instrues do
manual de instalao, disponvel
em:\nhttp://img.submarino.com.br/manuais/119536460.p
df"],
"nodes_visited": [
"node_1_1474384157081",
"node_2_1474384216770"
]
},
"context": {
"conversation_id": "1b7b67c0-90ed-45dc-8508-
9488bc483d5c",
"system": {
"dialog_stack": [{"dialog_node":
"node_2_1474384216770"}],
"dialog_turn_counter": 3,
"dialog_request_counter": 3
}
}
}

Clicar no boto Pronto. Clicar em Pronto novamente na tela da atividade de


mapeamento map2 - sada.

De volta tela de configurao da atividade de mapeamento map2 - saida,


clicar no lpis ao lado da coluna Sada.
Figura 42: Configurao da atividade de mapeamento de sada

Informar:
Varivel de contexto: message.body (valor padro)
Tipo de contedo: application/json
Definio: Esquema sequencial (inline schema)

Ao clicar no par de setas ao lado da opo Esquema Sequencial, abrir o


popup seguinte.
Figura 43: Configurao da atividade de mapeamento de sada

Selecionar a opo Generate from sample JSON. Copiar e colar o


contedo JSON abaixo. Este um exemplo de contedo JSON de retorno a
ser enviado ao servio Chatfuel. O servio 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 vdeos. Para outros exemplos de
como retornar contedo multi-media, acessar a documentao (chatfuel):

https://help.chatfuel.com/facebook-messenger/plugins/json-plugin/

O prximo passo configurar o mapeamento da varivel de Entrada (input)


para a Sada (output_1). Ligar o campo text de input ao campo text de
output_1 (ver figura abaixo).
Figura 44: Mapeamento da mensagem de retorno do API Connect

Para finalizar o mapeamento falta um ltimo passo para configurar o array.


Deve-se clicar sobre o boto de seleo verde ao lado do campo text, de
output_1. No popup de Configurar mapeamento, voc precisa informar as
seguintes opes:

No campo iterate over (select box), select input.output


No campo Valor, informar: $(text)

Figura 45: Mapeamento das mensagens retornadas pelo servio Watson

Este mapeamento necessrio uma vez que o servio ChatFuel espera um


array de mensagens. Para simplificar o nosso servio Watson retorna
apenas uma mensagem.
A tela final de configurao da API, fica com a seguinte configurao. O
prximo passo testar a API. Para tal, basta clicar no boto Testar (boto de
seta), localizado diretamente acima do fluxo de montagem.

Figura 66: Fluxo de montagem final e boto de Teste

Na tela de Testes o primeiro passo clicar no boto Mudar configurao


(figura 47), selecionar o novo produto criado (Watson product 1.0.0) e ento
clicar no boto Republicar produtos (figura 68).

Figura 47: Fluxo de montagem final e boto de Teste

Figura 48: Republicar Produto


Nesta mesma tela informar:

workspace_id: ID do workspace do Watson, obtido no captulo 1.


message: Mensagem enviada pelo usurio que simula o chatbot

Figura 49: Informaes para teste da API

Por fim, basta clicar no boto Chamar. Aps a realizao do teste, a API
retorna com uma mensagem de HTTP Status 200 OK e o seguinte texto:

[
{
"text": "Entendi! Voc j seguiu todas as instrues do manual da
instalaao da sua TV, disponvel em
http://..."
}
]

Esta uma mensagem do servio Watson Conversation que detectou que o


usurio estava reclamando quanto ao funcionamento de um aparelho de TV,
recentemente adquirido (ver figura 50).
Figura 50: Mensagem de retorno da chamada do servio Watson

- Redefinindo a configurao do Produto Watson product.

Como uma etapa adicional de configurao, o usurio pode configurar o novo


produto Watson product 1.0.0 criado para sua API, alm de definir os planos
de consumo. Atravs dos Planos possvel impor limites ao nmero de
chamadas para a API do Watson, assim como definir condies adicionais
de segurana, como por exemplo, a necessidade de aprovao do processo
de subscrio ao Plano, de modo que somente usurios autorizados possam
consumir sua nova API.

Figura 51: Seleo do novo produto criado


Figura 52: Tela de configurao do plano

Quando testamos a API, a mesma automaticamente publicada no Portal do


API Connect. Atravs do portal, o usurio pode testar e consumir as APIs, alm
de acessar a documentao e exemplos de cdigos de disparo em diferentes
linguagens (ver figura 54).

Figura 53: Portal do API Connect


Figura 54: Documentao e ferramenta de testes da API

Por fim, o usurio pode ter acesso a uma interface avanada de anlise de
dados, consumo das APIs e configurao de key performance indicators (KPIs).
O prprio usurio pode criar seus prprios dashboards e visualizaes com
base nos dados obtidos atravs da execuo das APIs.

Figura 55: Viso analtica do consumo das APIs criadas.


- Obtendo a URL para a chamada do servio 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/davicbbribmcom-
dev/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 servio Watson Conversation, obtido no
captulo 1.

{{watsonMessage}}, deve seguir o mesmo padro definido na figura 20: Configurao do


plugin de user input.

Para obter a URL base, acessar:


Menu Painel -> Sandbox -> Configuraes -> Endpoints

, conforme a figura 56 abaixo.

Figura 56: Obteno da URL base da API

Esta URL final deve ser utilizada na configurao do plugin JSON do servio
Chatfuel, conforme descrito na figura 22 do captulo 3.
CAPTULO 5

TESTANDO O SEU
CHATBOT
Para acessar o Chatbot, basta pesquisar por sua nova pgina do Facebook
criada, seja na Web, no Messenger ou no aplicativo mobile. Na pgina web,
necessrio clicar no boto Enviar Mensagem (ver figura 57). Pelo
aplicativo do Messenger a comunicao mais natural.

Figura 57: Iniciando uma uma conversa com o chatbot pela Web

Figura 58: Usurio 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 no somente tratar-se de uma devoluo, mas tambm
que o aparelho em questo era um celular.
Observe que, a qualquer momento, o usurio voc tem acesso ao menu suspenso
onde possvel 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
A REVOLUO DOS
CHATBOTS
Este eBook parte de uma srie de publicaes
relacionadas a ChatBots e como a Inteligncia
artificial exerce um impacto profundo no processo
de transformao digital. Comente usando a
hashtag #RevolucaoChatbots

#RevolucaoChatbots

You might also like