Livres blancs Webinars

Cet article a pour objectif de vous expliquer comment créer un chatbot avec la solution IBM Watson Assistant. Je vous invite, au préalable, à lire notre article présentant les éléments inhérents à tout chatbot, à savoir les intentions et les entités : « Chatbot / Voicebot : savez-vous vraiment comment fonctionnent ces technologies ? ».

[Tutoriel] Comment créer un chatbot avec IBM Watson Assistant ?

Étape 1 : Accès la plateforme

La solution IBM Watson Assistant est une solution SAAS. Vous pouvez y accéder via cette URL : https://www.ibm.com/cloud/watson-assistant/. Sur cette page et de manière classique, 2 options vous sont proposées : vous authentifier avec un compte IBM Cloud ou en créer un nouveau.

Après avoir réalisé ces étapes, vous devriez arriver sur une page ressemblant à celle-ci.

IBM Watson Assistant - Accès la plateforme

Étape 2 : Création d’une « skill » (d’un projet)

Pour créer votre première skill, cliquez sur le bouton Create a Skill situé en dessous de « Get Started Now ». Vous arriverez alors sur une page présentant tous vos projets. Vous pourrez à ce moment-là cliquer sur le bouton Create Skill situé en haut à gauche sur l’écran ci-dessous.

IBM Watson Assistant - Création d'une skill

Donnez-lui maintenant un nom, une description (facultatif) et surtout choisissez une langue, enfin valider en appuyant sur le bouton Create dialog skill.

IBM Watson Assistant - Create Dialog Skill

Étape 3 : Modification des phrases par défaut et premiers tests

Nous allons modifier la phrase affichée par défaut. Pour cela, cliquez sur Dialog, puis sur Create dialog.

IBM Watson Assistant - Create dialog

Sur cet écran, vous pouvez voir 2 nœuds (nodes) : « Bienvenue » et « Tout le reste ».

Le nœud Bienvenue présente le texte présenté par défaut lorsque l’utilisateur commencera à utiliser le chatbot, et le nœud Tout le reste ce que répondra le chatbot lorsqu’il n’aura pas compris le sens de la phrase, pour être précis l’intention de la phrase.

Dans un premier temps, nous allons cliquer sur Bienvenue afin de modifier le texte par défaut affiché par le chatbot. Nous vous proposons, par exemple, de remplacer : Bonjour, comment puis-je vous aider ? par Bonjour, je m’appelle Jarvis, je suis un chatbot. Comment puis-je vous aider ? (À noter : vous pouvez renseigner plusieurs phrases les unes en-dessous des autres, elles seront affichées de manière aléatoire ou séquentielle). Pour valider, cliquez sur la croix rouge.

IBM Watson Assistant - Noeud Bienvenu modifié

Vous pouvez désormais tester votre chatbot en cliquant sur le bouton Try it situé en haut, à droite. Un bloc de discussion apparaît alors à droite de votre écran, bloc sur lequel vous devriez voir notre nouvelle phrase d’introduction.

IBM Watson Assistant - Test

Posez-lui maintenant une question, telle que « Comment ça va ? ». Il va vous répondre « Je n’ai pas compris. Vous pouvez essayer de reformuler. »

Pour changer cette phrase, cliquez sur le nœud « Tout le reste » et en renseignant, par exemple « Désolé, je suis toujours en phrase d’apprentissage et ne comprends pas toujours tout. Pourriez-vous svp reformuler ? »

IBM Watson Assistant - Noeud "Tout le reste" modifié

Testez à nouveau : vous devriez voir apparaître cette phrase après quelques essais car, à la différence du nœud « Bienvenue », différentes réponses ont été renseignées par défaut dans l’outil.

Étape 4 : Votre première intention

C’est à cette étape que nous allons véritablement commencer à concevoir notre premier chatbot, en créant notre première intention.

Pour cela, cliquez sur Intents puis sur Create intent.

Donnez-lui un nom (ex. #hello), une description (facultatif), puis cliquez sur Create intent.

Renseignez ensuite un certain nombre de phrases qui doivent toutes faire référence à la même intention. Ici, dans notre exemple : #hello.

IBM Watson Assistant - Intention "Hello"

Retournez ensuite dans Dialog, cliquez sur les 3 petits points situés sur le nœud « Bienvenue », puis choisissez Add child node.

IBM Watson Assistant - Add child node

Renseignez un nom, ajoutez une condition (if assistant recognizes #hello…), puis au moins une réponse que le bot doit faire apparaître.

IBM Watson Assistant - Réponse bot

Validez en cliquant sur la croix puis testez votre bot en lui indiquant, par exemple, « Bonjour ».

IBM Watson Assistant - Test Intention Hello

Votre bot répond correctement (« Bonjour, très heureux de faire votre connaissance »).

Étape 5 : Slots, Entités et sauvegarde de variables

Pour cette étape, nous allons imaginer que le bot a pour objectif d’aider l’utilisateur à trouver un T-Shirt. Un T-shirt, pour cet exemple, sera toujours défini par une taille et une couleur.

5.1. Création des 2 entités couleurs et tailles de t-shirts disponibles

La première étape consiste à créer les 2 entités couleurs de t-shirts disponibles et tailles de t-shirts disponibles (respectivement : @available_colors_for_t-shirts et @available_size_for_t-shirts). Pour cela, rendez-vous dans l’onglet Entities puis cliquez sur le bouton Create entity (ne vous préoccupez pas pour le moment des synonymes).

IBM Watson Assistant - Entités couleurs de t-shirts disponibles
IBM Watson Assistant - Entités taille de t-shirts disponibles

5.2 Création de l’intention recherche de t-shirts

La deuxième étape consiste à créer l’intention #search_of_t-shirts.

IBM Watson Assistant - recherche de t-shirts disponibles

5.3. Mise à jour du dialogue

Enfin, la dernière étape consiste à mettre à jour le dialogue. Rendez-vous dans l’onglet Dialog puis ajouter un folder sous le nœud « Bienvenue ».

IBM Watson Assistant - Add Folder for #search_of_t-shirts

Nommez ce folder search_of_t-shirts, par exemple, et donnez-lui pour condition d’utilisation #search_of_t-shirts (if assistant recognizes).

IBM Watson Assistant - Add Folder for search

Ajoutez un nœud à l’intérieur de ce nouveau folder search_of_t-shirts.

IBM Watson Assistant - folder search_of_t-shirts

Cliquez sur Customize et activez le slot. Puis, sélectionnez la case à cocher devant Prompt for everything.

IBM Watson Assistant - Customize

Pour comprendre ce que signifie slot et prompt for everything, ayez en tête qu’un T-shirt est toujours défini par une couleur et par une taille, et que ces informations vont être nécessaires pour un internaute qui cherche un T-shirt. En utilisant un arbre de décision, le développement risque d’être très complexe car celui-ci nécessiterait que l’on identifie toutes les situations possibles, exemples :

  • l’utilisateur renseigne à la fois l’intention, la couleur et la taille (exemple : Je recherche un T-shirt en taille L de couleur rouge)
  • l’utilisateur renseigne uniquement l’intention (ex. Je recherche un T-shirt), le bot lui demandera alors la taille et la couleur.
  • l’utilisateur renseigne l’intention et la couleur, le bot lui demandera alors la taille
  • l’utilisateur renseigne l’intention et la taille, le bot lui demandera alors la couleur.

Cela devient tout de suite encore bien plus complexe si nous ajoutons de nouveaux attributs (ex. un téléviseur défini par une marque, une taille, une définition et enfin un type de dalle).

Pour pallier ce problème, IBM Watson Assistant propose la fonctionnalité Slots. Celle-ci permet de couvrir en quelques étapes toutes les situations énoncées précédemment.

IBM Watson Assistant - Slot search of T-shirts
IBM Watson Assistant - Slot search of T-shirts 2

Vous pouvez tester les différentes situations indiquées précédemment, en prenant soin de vider la conversation (bouton clear situé en haut à droite et visible lorsque vous utilisez le testeur de conversation).

Étape 6 : Entités complexes

Imaginons que vous deviez utiliser des entités avec une infinité de valeurs possibles, comme par exemple une date, une heure ou encore un nombre. Vous n’allez pas renseigner toutes les valeurs possibles comme commencé sur cet écran ci-dessous.

IBM Watson Assistant - Entity number classique

IBM Watson Assistant vous aide à gérer ce type d’entité, et vous permet de les activer en quelques clics.

Pour cela, cliquez sur Entities, puis sur System entities, et choisissez, par exemple, d’activer @sys-number.

IBM Watson Assistant - Entity number system entities

Afin de le tester, je vous propose d’imaginer que le bot doive répondre à des questions relatives à un jeu de société et qu’il a besoin, pour cela, de connaître le nombre de joueurs.

Nous allons dans un premier temps créer l’intention #rules. Comme vous pouvez le voir sur la capture d’écran ci-dessous, vous pouvez utiliser des entités dans une intention afin de faciliter la reconnaissance de cette dernière par l’outil.

Ex. Comment jouer à @sys-number joueurs ?

IBM Watson Assistant - Entity - #rules

Ensuite, allez dans Dialog, créez un « nœud enfant » au nœud Bienvenue, activez la fonctionnalité Slots comme vu précédemment, puis renseignez la variable à connaître (le nombre de joueurs) pour que le bot puisse répondre ainsi que sa réponse.

IBM Watson Assistant - Dialog #Rules

Enfin, testez-le.

IBM Watson Assistant - Test

Étape 7 : Réponses conditionnelles

Pour une raison ou une autre, le bot pose des questions à l’utilisateur, questions qui ne rentrent pas dans le cadre de la fonctionnalité slot décrite précédemment, comme par exemple :

  • Vous voulez apprendre à jouer au Scrabble ou au Monopoly ?
  • Eh bien, je souhaiterais apprendre à jouer au Monopoly.
  • OK, bien noté. Voici les règles pour jouer au Monopoly.

Pour cela, il vous faudra d’abord créer l’entité @games comprenant 2 valeurs comme indiqué ci-dessous.

IBM Watson Assistant - Entity - @games

Puis, allez dans Dialog pour modifier la phrase affichée par défaut.

IBM Watson Assistant - Dialog - Bienvenue modifié pour Scrabble ou Monopoly

Ensuite, créer dans Dialog, 3 nœuds enfants par rapport au nœud « Bienvenue » (si besoin, supprimez les autres nœuds enfants).

IBM Watson Assistant - Dialog - Node

Ouvrez enfin chacun de ses nœuds pour y renseigner le nom (Scrabble pour le premier, Monopoly pour le deuxième, Anything else pour le troisième).

IBM Watson Assistant - Dialog - Node 2

Avant de poursuivre, prenons quelques instants pour comprendre comment fonctionne l’architecture Dialog d’IBM Watson.

La capture écran ci-dessus indique que, après avoir affiché le message par défaut du bloc Bienvenue, IBM Watson Assistant va vérifier si la condition associée à Scrabble est respectée ou non. Si elle est respectée, il affichera le texte associé. Si elle n’est pas respectée, il passera au nœud suivant à savoir Monopoly. Pour ce nouveau nœud Monopoly, il va également vérifier si la condition associée à Monopoly est respectée ou non. Si tel est le cas il affichera le texte associé. Si ce n’est pas le cas il passera au nœud suivant, à savoir Anything else.

Nous allons donc renseigner les conditions et les textes à afficher.

IBM Watson Assistant - Dialog - Scrabble
IBM Watson Assistant - Dialog - Monopoly
IBM Watson Assistant - Dialog - Not Scrabble or Monopoly

A noter : pour le nœud Anything else, vous pouvez renvoyer le processus vers le nœud « Scrabble » et attendre que l’utilisateur indique quelque chose, ce faisant vous permettez à l’utilisateur de recommencer sa saisie.

Exemple :

  • Vous voulez apprendre à jouer au Scrabble ou au Monopoly ?
  • Eh bien, je souhaiterais apprendre à jouer à la Bonne Paye.
  • Hum, j’ai bien de ne pas avoir compris. Pourriez-vous me préciser à quoi vous souhaitez jouer (Scrabble ou Monopoly) ?
  • Pardon, je pensais au Monopoly en fait.
  • Bien noté, vous souhaitez jouer au Monopoly.

Étape 8 : Utilisation des variables dans les conditions

Complétons l’exemple de l’étape 7 avec 2 points :

  • Nous souhaitons sauvegarder la valeur du jeu pour lequel l’internaute souhaite connaître les règles (cette variable sera nommée games et aura pour valeurs possibles scrabble et monopoly).
  • Nous souhaitons exploiter ces variables (ex : si l’internaute a répondu monopoly alors la variable games aura pour valeur monopoly et les règles du jeu monopoly seront affichées).

Pour le premier point, il suffit, dans chacun des nœuds Scrabble et Monopoly, de cliquer sur les trois petits points situés à côté de Then respond with, puis de choisir Open context editor.

IBM Watson Assistant - Dialog - Open context editor

Ensuite, il faudra nommer la variable (ici games) ainsi que sa valeur (ici scrabble ou monopoly).

IBM Watson Assistant - Dialog - Open context editor - scrabble
IBM Watson Assistant - Dialog - Open context editor - monopoly

Pour le deuxième point, c’est-à-dire l’exploitation des valeurs dans les conditions, la syntaxe à utiliser est : ${nom_de_la_variable}:{valeur} (dans notre exemple, soit $games:monopoly ou $games:scrabble).

IBM Watson Assistant - Dialog - Open context editor - games_scrabble

Nous avons vu dans cet article comment créer un chatbot avec la solution IBM Watson Assistant. Cette solution présente l’avantage de prendre en charge la totalité des éléments nécessaires à la création d’un chatbot (NLP (Natural Language Processing), Intentions, Entités, Arbres de décision). En revanche, certaines fonctionnalités de la solution n’ont pas été couvertes telles que les réponses à choix multiples, l’intégration des médias (photos, vidéos) dans les réponses du chatbot… elles devraient être couvertes dans un prochain article, auquel nous lui ajouterons quelques astuces.

Nos différents consultants se tiennent à votre disposition pour échanger sur la mise en place de chatbots, ainsi que les gains et cas d’usage associés à leur mise en place.

Business & Decision

Je suis tout particulièrement intéressé par l’innovation technologique au service de l’expérience d’achat.

En savoir plus >

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Votre adresse de messagerie est uniquement utilisée par Business & Decision, responsable de traitement, aux fins de traitement de votre demande et d’envoi de toute communication de Business & Decision en relation avec votre demande uniquement. En savoir plus sur la gestion de vos données et vos droits.