Créé en 2020 et modifié le 19 Oct 2020

Créé en 2020 et modifié le 19 Oct 2020

Chatbot IBM Cloud

L’équipe marketing de votre Hotel propose d’améliorer son service client en proposant de réserver des chambres grâce à un assistant virtuel. L’application permettra d’enregistrer dans une base de données les réservations et de les analyser sur Cognos Analytics.

 

exemples d’assistant virtuel susceptibles de changement :
https://www.facebook.com/PalaisDelOiseaudeJade
https://ibm-poj-4-quiet-tiger.eu-de.mybluemix.net

 

schema2020-2

Partie 1 – Watson Assistant

Livrable : otelo/mission7/…

 

  • Créer un service Watson Assistant nommé otelo Watson Assistant .
  • Accéder à l’outil de lancement.

 

watson

 

 

 

skill

 

  •  Explorer l’interface. J’ai utilisé les propositions de “Content Catalog” pour élaborer cet assistant virtuel.
  •  Essayer l’assistant virtuel. On pourra tester des phrases avec des mots clefs comme blague, bonjour, contact, horaire et réservation.

 

try

 

  •  Modifier la demande du chatbot avec de nouvelles variables pour correspondre aux données nécessaires (dateD,dateF,idPeriode,idchambre). Par simplification, on passera drectement l’idPerdiode et l’idChambre.

 

watsona3

 

  • réaliser un nouvel assistant
  • relier l’assistant au skill créé précédemment

assistantv2-2

 

Partie 2 – Test de l’API Watson Assistant

  • Récuperer l’url et les identifiants de l’API Watson Assistant.

assistantv2-1-1

 

  • Utiliser une application REST comme Postman  pour tester votre assistant virtuel avec les identifiants fournis.

 

Méthode

POST


Dans Authorization ->Basic auth-> apikey et {votre api key}


Dans Body -> raw -JSON-> {« input »:{« text »: »coucou »}}

  • Obtenir un id de session avec une url de la forme (ajouter la variable http version)
    https://api.eu-gb.assistant.watson.cloud.ibm.com/instances/{instance id}/v2/assistants/{assistant id}/sessions?version=2019-02-28
  • Envoyer un message coucou avec le numero de la session obtenue et une url de la forme
    https://api.eu-gb.assistant.watson.cloud.ibm.com/instances/{instance id}/v2/assistants/{assistant id}/sessions/{idesssion}/message?version=2019-02-28
  • L’assistant virtuel répond “Bonjour, en quoi puis-je vous aider ?”.

 

postmanv2-1

 

 

Partie 3 – MySQL sur IBM Cloud

Livrable : otelo/mission7/…
Partie 3 ou 3 bis au choix

  • Créer un service compose for Mysql sur IBM Cloud
  •  Se connecter grâce à Adminer à l’instance Mysql avec vos identifiants et l’adresse de l’instance
  • Déployer votre base de données Otelo

 

maria3

 

 

Partie 3 bis –  MariaDB sur AWS

  • Créer un service RDS MariaDB gratuit accessible publiquement en se dirigeant vers la console AWS

 

rds-2

rds2

 

  • Modifier le groupe de sécurité pour autoriser l’adresse ip 0.0.0.0/0 à se connecter. (On autorise toutes les adresses, à éviter !)

 

maria2

 

  • Se connecter grâce à Adminer à l’instance MariaDB avec vos identifiants RDS et l’adresse du point de terminaison.
  • Déployer votre base de données Otelo

 

maria3

 

 

Partie 4  – Application NodeJS en local

Livrable : otelo/mission7/…
Partie 4, 4bis ou 4 ter au choix

 

  • Installer NodeJS
var watsonApiKey = "";
//s'arreter avant v2
var watsonURL ="https://api.eu-gb.assistant.watson.cloud.ibm.com/instances/ba3e7f27-4e83-4906-86eb";
//assistant id
var watsonID='';

var myRDSHost ="database-2.eu-west-3.rds.amazonaws.com";
var myRDSLogin ="admin";
var myRDSPassword ="";
  • Dans le répertoire de l’application, executer npm install pour déployer les paquets nécessaires
  • Executer npm start pour lancer l’application.

 

  • Une fois déployée, accéder à l’application depuis http://localhost:3000 . Vous obtenez l’interface suivante et pouvez tester l’assistant virtuel. Inspecter la console du serveur NodeJS et la console du navigateur.

 

watsonhtml

Partie 4 bis – Application NodeJS sur IBM Cloud

Livrable : otelo/mission7/…

 

deploy

  • Créer l’API Key et déployer.

 

deploiement1

  • Observer le déploiement dans la chaine de distribution

chatbot4

 

  • Echec sur le déploiement de l’application, c’est normal.

 

deploy2

 

  • Modifier les variables suivantes du fichier app.js dans le dépot GIT de la chaîne d’outils.

var watsonApiKey = «  »;
//s’arreter avant v2
var watsonURL = »https://api.eu-gb.assistant.watson.cloud.ibm.com/instances/ba3e7f27-4e83-4906-86eb »;
//assistant id
var watsonID= »;

var myRDSHost = »database-2.eu-west-3.rds.amazonaws.com »;
var myRDSLogin = »admin »;
var myRDSPassword = » »;

git

 

  • L’application se redéploie automatiquement au commit de GIT.

 

  • Une fois déployée, accéder à l’application depuis votre tableau de bord.
  • Vous obtenez l’interface suivante et pouvez tester l’assistant virtuel.

 

watsonhtml

 

 

Optionnel – Déploiement en ligne de commande

 

Si l’étape précédente ne fonctionne pas ou pour découvrir un autre moyen de déployer son application.

  • Télécharger le code depuis le dépôt Github et le décompresser.
  • Modifier app.js avec les identifiants.
  • Installer le client IBM Cloud
  • Ouvrir une invite de commande (CMD sous windows) et se connecter à IBM Cloud.

bx login

  • En se placant dans le répertoire contenant le code, executer :

bx cf push

deploiement7

 

 

Optionnel –  Debogage – Journaux de l’app

  • Installer le client IBM Cloud
  • Ouvrir une invite de commande (CMD sous windows) et se connecter à IBM Cloud.

bx login

  • Afficher les logs de l’application en remplacant le nom de celle-ci dans la ligne de commande. On observe dans le cadre l’affichage de la réponse de Watson Assistant.
    • vert pour nodejs
    • jaune pour l’assistant

bx cf logs palais-de-l-oiseau-de-jade-nodejs –recent

assistantconsole

 

Partie 4 ter – Application NodeJS sur AWS

 

  • Réaliser une instance Ligthsail NodeJS sur AWS

light

 

  • Connectez vous à l’instance en ssh

 

nodejs

 

 

var watsonApiKey = "";
//s'arreter avant v2
var watsonURL ="https://api.eu-gb.assistant.watson.cloud.ibm.com/instances/ba3e7f27-4e83-4906-86eb";
//assistant id
var watsonID='';

var myRDSHost ="database-2.eu-west-3.rds.amazonaws.com";
var myRDSLogin ="admin";
var myRDSPassword ="";
  • Dans le répertoire /opt/bitnami/apps/myapp/htdocs, déployer les fichiers app.jsindex.html et package.json (on pourra faire des copier- coller, sudo nano monfichier  ou  sudo rm monfichier)

 

  • Dans le repertoire de l’application, executer sudo npm install pour déployer les paquets nécessaires
  • Executer npm start pour lancer l’application.

 

  • Une fois déployée, accéder à l’application depuis son IP. Vous obtenez l’interface suivante et pouvez tester l’assistant virtuel. Inspecter la console du serveur NodeJS et la console du navigateur.

 

watsonhtml

Partie 5 – Enregistrement de la réservation

Livrable : otelo/mission7/…

  • Modifier les lignes 214 à 240 pour permettre l’enregistrement de la réservation et de la ligne_reservation
  • Intégrer le chatbot au site Otelo, trois solutions
    • via une url externe
    • en utilisant l’intégration d’IBM Cloud (assistant->integrations->webchat-embed)
    • en intégrant la page HTML (risque de probleme CORS)

 

 

 

 

 

 

 

Partie 6 – Cognos Analytics

Remarque : Il est possible de relier une base de données hébergées sur IBM Cloud directement à Cognos Analytics. Nous ne pouvons pas créer d’instance Mysql avec le compte d’essai. de même, il n’est pas possible de se connecter à une base de données depuis Cognos avec la version d’essai de celui ci.

cognos2

 

  • Utiliser l’assistant Cognos en anglais pour générer les graphiques suivants :
    • Le nombre de chambres réservées par catégorie
    • Le nombre de réservation par date
    • Le nombre de chambres réservées depuis 1 an par date

cognos

Partie 7 – Facebook Messenger

Uniquement pour une application avec un domaine (exemple http:// zorg.zh), dans notre cas IBM Cloud.

  • Réaliser une page Facebook dédiée à l’assistant virtuel.
  • Se connecter à Facebook Developer.
  • Ajouter une application.
  • Ajouter le service Messenger.

messenger1

 

  • Générer un token en sélectionnant votre page, accepter les autorisations.

 

messenger2-1

 

  • Ajouter ce token à myFacebookToken dans app.js en accédant à votre dépôt Git (menu devOps). Le token est dépendant de la page Facebook.
  •  Sauvegarder le fichier. L’application se redéploit automatiquement à la sauvegarde. On pourra vérifier le bon fonctionnement dans la pipeline de distribution. Pour AWS, relancer l’application.
  • Configurer les webhooks, ajouter l’url de votre application  avec /webhook à la fin et cocher les cases correspondantes.

 

 

 

messenger3

 

messenger4

 

Si l’url webhook ne fonctione pas :

  • Vérifier que l’application nodeJs fonctionne.
  • Vérifier que /webhook est bien renseigné à la fin de l’url.
  • Vérifier que le token Facebook est enregistré dans app.js et que l’application est redéployée.

 

webhookerreur

webhookerreur

 

 

 

  •  Ajouter une image pour l’application.
  •  Ajouter une URL de politique de confidentialité pour publier votre application . https://frebourg.es/cgu

 

messenger9

 

 

 

 

  • L’assistant virtuel répond au message. On pourra vérifier les logs (section débogage).
    • bleu pour messenger
    • vert pour nodejs
    • jaune pour l’assistant

 

facbookconsole