Les Robots arrivent !

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.

IMG_1560IMG_1561IMG_1562IMG_1563IMG_1565IMG_1566

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.

IMG_1564

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"

Code source Javascript pour Node.js

VisionChatbot