Objet
Voici quelques liens et du matériel pour créer un ChatBot basé sur Oracle Application Container Cloud et destiné à Facebook Messenger.
J’ai mis en attachement un code que j’ai adapté pour node.js, qui s’inspire du projet Git avec quelques ajouts pour exploiter la position GPS. Il faut créer auparavant une page dans FB ainsi qu’une app pour Messenger.
Le ficher .zip peut directement être instancié dans Oracle Container Cloud (node.js). Penser à ajouter une variable système (au niveau du setting de node.js) qui contiendra la valeur du token de page. Je l’ai appelée : FB_PAGE_ACCESS_TOKEN
Ce chatbot n’est utilisé pour l’instant qu’en mode développement car il est nécessaire de soumettre le bot à FB avant que celui-ci ne soit rendu public.
Pour démarrer
Un bon article à lire en premier
https://github.com/jw84/messenger-bot-tutorial
(attention : les instructions let ne passent pas avec la version de node.js (0.12.15). Il faut les remplacer par var dans ce cas, sinon upgrade vers 6.x)
La mention à Heroku peut être ignorée. Il s’agit de la plateforme de SalesForce qui herberge des micro-services.
Reconnaissance de langage naturel
https://wit.ai
Des extensions sont donc possibles ! La phrase pourra être transmise à ce service qui en retour donnera des indications sur l’intention de l’utilisateur.
Facebook Developer
https://developers.facebook.com/
Echantillons de dialogue
Quelques mots ou actions sont compris:
- bonjour
- lunettes
- toilettes
- couleur
- <Ajout d’un Like>
Note: Lors d’une démo, c’est plus sympa d’utiliser la reconnaissance vocale !
Le premier illustre une réponse simple de type text. Les trois autres montrent que l’on peut utiliser des « templates » (carrousel de produits par exemple)
toilettes montre un dialogue « soutenu » avec deux échanges. Le robot interroge la base OpenData de la mairie de Paris qui indique les sanisettes proches de la position.
Exemple complet avec un Syndic d’immeubles
Le chatbot Vision Immo illustre la plupart des possibilités que peut offrir un agent conversationnel de type Facebook Messenger.
Pour le réaliser, il suffit d’utiliser un service node.js, par exemple, de type Oracle Application Container (ACCS). En principe, c’est Oracle MCS qui jouera ce rôle très prochainement, ou du moins, une combinaison de MCS avec ACCS.
Materiel
Ajout de menu et message de présentation
Il est possible d’ajouter une message de bienvenue à un Chatbot qui sera affiché lors du tout premier usage, ou bien apres une suppression de la conversation. Il est également possible d’ajouter un menu qui se présente sous la forme d’un pictogramme en bas à gauche. Ces actions d’enrichissement sont effectuées par des appels REST.
Menu persistent
curl -X POST -H "Content-Type: application/json" -d '{ "setting_type" : "call_to_actions", "thread_state" : "existing_thread", "call_to_actions":[ { "type":"postback", "title":"Help", "payload":"DEVELOPER_DEFINED_PAYLOAD_FOR_HELP" }, { "type":"postback", "title":"Start a New Order", "payload":"DEVELOPER_DEFINED_PAYLOAD_FOR_START_ORDER" }, { "type":"web_url", "title":"Checkout", "url":"http://petersapparel.parseapp.com/checkout", "webview_height_ratio": "full", "messenger_extensions": true }, { "type":"web_url", "title":"View Website", "url":"http://petersapparel.parseapp.com/" } ] }' "https://graph.facebook.com/v2.6/me/thread_settings?access_token=PAGE_ACCESS_TOKEN"
Message bienvenue
curl -X POST -H "Content-Type: application/json" -d '{ "setting_type":"greeting", "greeting":{ "text":"Bonjour {{user_first_name}}, je suis un ChatBot à votre service. Comment puis-je vous aider ? " } }' "https://graph.facebook.com/v2.6/me/thread_settings?access_token=PAGE_ACCESS_TOKEN"