Integre seu Watson Assistant no Facebook via Chatfuel

Victor Shinya

--

Todo desenvolvimento e treinamento de um chatbot possui um ciclo, como se fosse um projeto. Existe começo, meio e fim. Nesse final do projeto, você acaba entrando no que chamamos de processo. Nesta etapa são realizados os testes, os feedback são validados e continuam-se a treinar e re-treinar o chatbot, de forma iterativa. Em paralelo ao treinamento, existe o trabalho de fazer as integrações com as plataformas de comunicação: Messenger, Website, Telegram, WhatsApp.

A integração mais comum e procurada é com o Facebook, através do Messenger. Aqui é possível fazer de duas formas diferentes: Webhook e Plataformas de Integração (Ex: Blip.ai e Chatfuel). Considerando que você já possui um assistente criado no Watson Assistant, a integração mais simples e rápida de se fazer é usando o Chatfuel.

Caso você ainda não criou e treinou um Watson Assistant, leia o blog:

Se decidir optar pela integração com o Webhook, veja o blog abaixo:

Connect Assistant

Conheça o projeto open source Connect Assistant. Uma maneira rápida de integrar seu chatbot nas principais plataformas de comunicação usando pouco ou zero código produzido pelo usuário.

O Connect Assistant nasceu devido ao aumento da necessidade de integrarem chatbots usando Watson Assistant no Messenger, sem a participação de um desenvolvedor ativo para configurar as integrações necessárias na plataforma.

Neste blog, iremos usar o Connect Assistant Chatfuel. A solução de integração usando Node-RED e Chatfuel. Acesse o link abaixo para ter acesso ao Fluxo completo que será usado.

Watson Assistant e Node-RED

Para conectar a sua Skill do Watson Assistant no Messenger usaremos o Chatfuel como plataforma de integração e o Node-RED como ferramenta de criação da API. Para seguir o passo a passo abaixo, será necessário ter os seguintes itens:

Acesse a sua conta no IBM Cloud e clique em “Catálogo” ou “Criar recursos”.

Página inicial da IBM Cloud

Desça a página até a sessão “Kit de iniciantes” ou filtre no menu lateral esquerdo. Clique no item “Node-RED Starter”.

Catálogo de serviços disponíveis no Plano Lite

Digite o nome do seu app. Lembre-se de que o nome do app será usado para definir a URL (nome-do-app.mybluemix.net), mostrado no campo abaixo. Após a configuração do nome e URL, clique no botão “Criar”.

Configuração inicial da sua aplicação de Node-RED

Ao criar o app, espere até finalizar as configurações da sua instância de Node-RED (isso pode levar alguns minutos). Clique no botão “Visite a URL do aplicativo”.

Ambiente sendo configurado na IBM Cloud com a solução em Node-RED

Na sua instância de Node-RED, clique em “Next”. Na próxima página, você irá configurar um usuário (username) e um senha (password). Importante lembrar que estes dados serão usados para acessar e editar os seus nós no Node-RED. Após definir o usuário e senha, clique em “Next”.

Definição do usuário e senha de acesso para editar os fluxos na ferramenta

Clique em “Next” e depois em “Finish” para finalizar as configurações do seu Node-RED.

Finalização das configurações do Node-RED

Após configurar o Node-RED, basta clicar no botão “Go to your Node-RED flow editor” para acessar ao editor de nós.

Acesse o editor de fluxos da ferramenta

No editor do Node-RED, clique para abrir o menu no canto superior direito.

Veja o menu de opções no canto superior direito

Clique no item “Import” e depois clique no subitem “Clipboard”.

Importação dos nós do Node-RED

Acesse o arquivo nodered.json neste repositório e copie todo o conteúdo do arquivo. Cole dentro do Clipboard no Node-RED e clique no botão “Import”.

Cole o conteúdo do arquivo nodered.json

Clique duas vezes sobre o nó “Workspace”. Este é o nó de Watson Assistant pré-configurado.

Acesse as configurações do nó do Watson Assistant

Insira as credenciais do seu Watson Assistant, como username, password e workspace_id nos campos abaixo. Clique o botão “Done” na parte superior.

Campos para serem preenchidos com as credenciais do Watson Assistant

Por final, clique no botão “Deploy” no canto superior direito da tela.

Deploy com as atualizações no fluxo

Chatfuel e a API

Acesse a sua conta no Chatfuel e clique no botão “Create from Template” para criar um novo chatbot.

Página inicial do Chatfuel

Clique em “Blank Bot”.

Lista de templates de chatbot

Clique no novo item (geralmente ele começa com o nome “Blank Bot” mas pode ser alterado nas configurações).

Configuração de um novo chatbot

Dentro do Welcome Message, remova o card existente. Neste caso, usaremos o nó de Welcome do Watson Assistant.

Remoção da mensagem padrão de Welcome Message

Clique em “Default Answer” e remova o card existente. Iremos conectar a nossa API (Application Programming Interface) importada no Node-RED, onde contem o Watson Assistant, no Chatfuel.

Remoção da mensagem padrão de Default Answer

Na seção “ADD A CARD”, clique no ícone de mais (+) para abrir o menu com todas as opções.

Ver mais opções no botão + para adicionar o User Input

Selecione o item “User Input”. Ele será usado para armazenar a mensagem do usuário em uma variável no Chatfuel.

Lista dos Plugins disponíveis no Chatfuel — selecione User Input

No campo “SAVE ANSWER TO ATTRIBUTE”, coloque no meio das chaves a palavra mensagem. Após configurar a variável, clique novamente no ícone de mais (+).

Ver mais opções no botão + para adicionar JSON API

Selecione o item “JSON API”. Este é o item que irá enviar todas as mensagens para o Node-RED que irá enviar para o Watson Assistant para analisar o texto em linguagem natural.

Lista dos Plugins disponíveis no Chatfuel — selecione JSON API

No campo “URL” adicione a URL da API seu Node-RED junto com dois dados: mensagem e usuario. Ele ficará dessa forma, por exemplo:

https://connect-assistant-chatfuel.mybluemix.net/chatfuel?text={{mensagem}}&user={{messenger user id}}
Resultado final da configuração do Chatfuel com o Node-RED e Watson Assistant

Após configurar a seção de JSON API com a API do seu Node-RED, clique no botão “CONNECT TO FACEBOOK” e selecione uma página que você gerencia para integrar no seu chatbot. Clique em “TEST THIS CHATBOT” e aproveite o seu chatbot no Facebook Messenger Platform!

--

--

Victor Shinya

ISV Solutions Architect @AWS | Previously @IBMCloud @IBMDeveloper 🇧🇷