chatbot

 Partie 1: Création du Chatbot avec Watson Assistant (1 heure)

1. Connectez-vous à votre compte IBM Cloud suite à l’invitation.

2. Dans le catalogue des services, recherchez “Watson Assistant” et créez une nouvelle instance du service dans un groupe de ressource vide.

3. Importer dans Dialog -> Download  https://raw.githubusercontent.com/cherryclass/IBM-poj/master/workspace_palaisdeloiseaudejade.json

Ajouter des éléments du Content Catalog

4. Tester votre chatbot

5. Explorer les Intents les Entites et les Dialog

a 1

6. Modifier les horaires d’ouverture et tester le chatbot

b

7. Vous pouvez créer vos propres intents, entites et dialog

8.Pour tester le chatbot sur Postman, récupérez l’API Key et l’URL de votre instance Watson Assistant. Utilisez la méthode POST avec l’URL suivante : https://api.us-south.assistant.watson.cloud.ibm.com/instances/YOUR_INSTANCE_ID/v2/assistants/YOUR_ASSISTANT_ID/sessions/YOUR_SESSION_ID/message?version=2021-06-14 en remplaçant les parties en majuscules par vos propres valeurs. Dans le corps de la requête, envoyez un JSON avec le texte de l’utilisateur.

Méthode POST URI https://URI/v1/workspaces/WORKSPACE_ID/message?
version=2018-08-07
Header ->Content-Type : "application/json"
Authorization -> username et password
Body -> raw -JSON: { "input":{"text":"coucou"}}

9. On envoie “coucou”. Le chatbot répond “Bonjour, en quoi puis-je vous aider”. Il faut copier le context du JSON pour poursuivre le dialogue.

p1

p2

Partie 2: Création de la base de données

  1. créer un compte sur AlwaysData ou équivalent sur Azure par exemple pour avoir une base de données en ligne.
  2. créer la base de données permettant d’enregistrer les réservations. On pourra utiliser ce script à réadapter.

https://github.com/cherryclass/IBM-poj/blob/master/bd.sql

Partie 3: Création de l’Application Node.js (1 heure)

On peut également utiliser NodeJS d’IBM Cloud dans cette partie.

1. Installez Node.js et npm (le gestionnaire de paquets de Node.js) si vous ne l’avez pas déjà fait.

2. Créez un nouveau dossier pour votre projet et naviguez-y dans votre terminal.

3. Exécutez `npm init -y` pour initialiser un nouveau projet Node.js.

4. Installez les paquets nécessaires avec `npm install express ibm-watson dotenv mysql`.

5. Créez un nouveau fichier `.env` pour stocker vos variables d’environnement (comme vos clés API pour Watson Assistant).

6. Créez un nouveau fichier `app.js` et utilisez le SDK IBM Watson pour connecter votre application à votre instance Watson Assistant. Voici un exemple de comment vous pouvez faire cela :

require('dotenv').config();
const AssistantV2 = require('ibm-watson/assistant/v2');

const assistant = new AssistantV2({
  version: '2023-06-06',
  authenticator: new ibmWatson.IamAuthenticator({
    apikey: process.env.WATSON_API_KEY,
  }),
  serviceUrl: process.env.WATSON_SERVICE_URL,
});

7. Utilisez le package `mysql` pour connecter votre application à votre base de données MySQL et enregistrer les réservations des clients. Voici un exemple de connexion à la base de données et d’insertion d’une nouvelle réservation :

const mysql = require('mysql');

const connection = mysql.createConnection({
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME,
});

connection.connect();

const newReservation = { date: '2023-06-06', duration: 2, room_type: 'luxe', season: 'haute' };
const query = connection.query('INSERT INTO reservations SET ?', newReservation, (error, results, fields) => {
  if (error) throw error;
  console.log(results);
});

connection.end();

En cas de difficultés, vous pouvez réadapter ce code

https://github.com/cherryclass/IBM-poj/blob/master/app.js

 Partie 4: Création de l’Interface Web (1 heure)

1. Utilisez Express pour servir une page web simple où les utilisateurs peuvent interagir avec le chatbot. Voici un exemple de comment vous pouvez faire cela :

const express = require('express');
const app = express();
const path = require('path');

app.get('/', (req, res) => {
  res.sendFile(path.join(__dirname + '/index.html'));
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

2. Vous pouvez créer une simple page `index.html` pour interagir avec le chatbot. Par exemple :

<!DOCTYPE html>
<html>
<head>
  <title>Hotel Reservation Chatbot</title>
</head>
<body>
  <h1>Hotel Reservation Chatbot</h1>
  <input type="text" id="user-input" placeholder="Type your message here...">
  <button onclick="sendMessage()">Send</button>
  <div id="chat-log"></div>

  <script src="client.js"></script>
</body>
</html>

Et un fichier `client.js` pour gérer les interactions avec le chatbot :

function sendMessage() {
  const userInput = document.getElementById('user-input').value;
  // Call your server to send the user input to Watson Assistant
  // and display the response in your chat log
}

En cas de difficulté, vous pouvez utiliser ce code

https://github.com/cherryclass/IBM-poj/blob/master/index.html

Partie 5: Connexion du Chatbot à Facebook Messenger (1 heure)

1. Créez une nouvelle application sur Facebook pour développeurs

– Commencez par visiter le site [Facebook for Developers](https://developers.facebook.com/).
– Si vous n’avez pas encore de compte, vous devrez en créer un.
– Une fois que vous êtes connecté, allez dans “Mes applications” dans le coin supérieur droit et cliquez sur “Créer une application”.
– Entrez un nom pour votre application et votre adresse e-mail, puis cliquez sur “Créer une ID d’application”.

2. Configurez le produit Messenger

– Dans le tableau de bord de votre application, cliquez sur “+ Ajouter un produit” et choisissez “Messenger”.
– Dans les paramètres de Messenger, vous devrez ajouter une page Facebook à votre application. Si vous n’avez pas encore de page Facebook pour votre chatbot, vous devrez en créer une.
– Une fois que vous avez ajouté votre page Facebook, Facebook générera un “token d’accès à la page” pour vous. Conservez ce token, car vous en aurez besoin plus tard.

f

3. Configurez le Webhook

– Dans les paramètres de Messenger, descendez jusqu’à la section “Webhooks”.
– Cliquez sur “Configurer les webhooks”.
– Dans l’URL de rappel (Callback URL), entrez l’URL de votre service Watson Assistant.
– Dans le champ “Vérifier le token”, entrez un token secret de votre choix. Conservez ce token, car vous en aurez également besoin plus tard.
– Dans les champs “Abonnements”, cochez “messages” et “messages_postback”.
– Cliquez sur “Vérifier et enregistrer”.

4. Connectez Watson Assistant à Facebook Messenger

– Revenez à votre instance de Watson Assistant sur IBM Cloud.
– Allez dans “Canaux de déploiement”, puis cliquez sur “Ajouter un canal de déploiement”.
– Choisissez “Facebook” dans la liste des options.
– Entrez le “token d’accès à la page” que Facebook a généré pour vous, ainsi que le “token de vérification” que vous avez choisi lorsque vous avez configuré le webhook.
– Cliquez sur “Enregistrer”.

5. Testez votre chatbot

– Retournez à Facebook et ouvrez votre page Facebook.
– Envoyez un message à votre page via Messenger. Vous devriez recevoir une réponse de votre chatbot.
– Essayez de faire une réservation via Facebook Messenger et vérifiez si elle apparaît dans votre base de données MySQL

poj

Rappelez-vous que la propagation des modifications peut prendre un certain temps. Si votre chatbot ne répond pas immédiatement, attendez quelques minutes et essayez à nouveau.

Correction : Création d’un Chatbot avec Watson Assistant

 Partie 1: Correction de l’intégration avec Watson Assistant

Au cours de cette section, vous avez dû créer plusieurs “intents” et “entities” pour modéliser les différentes actions que les utilisateurs peuvent vouloir effectuer et les types d’informations qu’ils peuvent fournir. Les dialogues doivent gérer ces actions et extraire les informations nécessaires des messages des utilisateurs.

Par exemple, un dialogue pour gérer la réservation d’une chambre pourrait ressembler à ceci dans Watson Assistant :

Si assistant reconnaît `#book_room`
Assistant répond :
"D'accord, je peux vous aider avec ça. Quel type de chambre souhaitez-vous réserver ?"

Partie 3: Correction de l’application Node.js

Pour cette partie, vous deviez installer plusieurs paquets, dont `express`, `ibm-watson`, `dotenv`, et `mysql`.

Votre code Node.js devrait ressembler à ceci :

require('dotenv').config();
const express = require('express');
const AssistantV2 = require('ibm-watson/assistant/v2');
const mysql = require('mysql');

const assistant = new AssistantV2({
version: '2023-06-06',
authenticator: new ibmWatson.IamAuthenticator({
apikey: process.env.WATSON_API_KEY,
}),
serviceUrl: process.env.WATSON_SERVICE_URL,
});

const connection = mysql.createConnection({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
});

connection.connect();

const app = express();

app.get('/', (req, res) => {
res.sendFile(path.join(__dirname + '/index.html'));
});

app.listen(3000, () => {
console.log('Server is running on port 3000');
});

Votre application doit envoyer les messages des utilisateurs à Watson Assistant et afficher les réponses dans votre interface de chat. Vous pouvez également extraire des informations des réponses de Watson Assistant pour créer des réservations et les enregistrer dans votre base de données.