Dialogflow : Comment débuter en matière de ChatBot ?

Quand on parle d’assistant vocal, on s’imagine plonger dans les entrailles du machine learning quitte à en devenir fou…
Mais en fait pas du tout !

J’ai cherché comment créer un assistant vocal sans perdre la tête et la réponse était simple : “Dialogflow”, un service d’assistance vocale développé par google.

Alors comment fonctionne Dialogflow ?
Après une inscription gratuite, une demande de paramétrage de la langue du chatbot est demandée. Jusqu’ici, facile !

Une fois que c’est fait, la création de son premier agent commence.
Un agent est une sorte de boîte dans laquelle plusieurs intents (ou intentions de réponse) sont stockées.

Chaque intent sera lié à une ou plusieurs phrases que vous définirez lors de sa création.

Illustrons cela avec un exemple :

Créons un agent AppreciationResto.
Une fois l’agent “appreciationResto” créé, définissons la langue de ce dernier : “français”.

Nous pouvons nous concentrer maintenant sur les intents ou “intention de réponse”.

Un intent est toujours défini de la même manière, avec des contextes, des training phrases, des events, des actions/parameters et une réponse.

Les contextes :

Les contextes représentent l’état actuel de la demande de l’utilisateur.

Leur but est de permettent à l’agent de transporter des informations d’un intent à un autre.

De ce fait, un contexte peut être d’entrée ou de sortie, si l’intent l’envoie à un autre intent, c’est un contexte de sortie, si l’intent l’a reçu d’un autre intent, c’est un contexte d’entrée.

En utilisant des combinaisons de contextes d’entrée et de sortie, nous pouvons contrôler le chemin de conversation emprunté par l’utilisateur dans votre boîte de dialogue.

De ce fait, nous pouvons diriger la conversation vers là où nous le souhaitons en attachant un contexte en sortie de conversation.
Nous pouvons également récupérer la même conversation dans un autre intent avec le même contexte, renseigné en entrée cette fois-ci.

Un exemple concret serait pour une commande de pizza.
L’utilisateur donne une phrase du type : “Je voudrais commander une pizza”.
Nous attachons alors en contexte de sortie l’information type de commande : “pizza”.

Dans un autre intent, nous renseignons en contexte d’entrée le type de commande.
Dialogflow fera, de lui même le lien entre les deux intention de réponse.
De cette manière, nous pourrons répondre par quelque chose comme : “Quel type de pizza voulez-vous ?”

Ce sont les contextes qui permettent de lier l’information entre les intents.

Voyons maintenant comment profiter de Dialogflow pour récupérer les appréciations clients d’un restaurant.

Premièrement, nous renseignons les différentes intentions de réponse comme suit :

Le but est de recueillir les bons ou mauvais commentaires des clients à travers différents intents.

La première des choses à faire est d’attacher un contexte précis que j’appelle ici “rating-menu”.
Ce contexte est renseigné en ”output context” car nous voulons qu’il soit disponible de l’extérieur.
De plus, aucun contexte de conversation n’est défini avant celui là car c’est la première étape de la conversation.

 

De base, Dialogflow crée deux intents le “welcome intent” (qui correspond aux phrases de bienvenue pour chaque utilisateur) et le “fallback intent” (qui correspond aux phrase incomprises par Dialogflow).

Pour faire simple, quand l’utilisateur dira “je veux parler avec AppreciationResto”, notre intent welcome intent détectera la phrase et répondra avec une des phrases de réponse que nous y avons enregistrées.

Ici, je me sers de l’intent welcome intent pour y attacher un context de sortie et en réponse, j’ajoute une question à l’utilisateur, c’est là que la conversation va vraiment commencer.

Events :

Après les contextes, viennent les events.

Nous pouvons aussi parler de “trigger” ou “d’événement déclenché”.

Par exemple, nous pouvons déclencher des actions différentes si l’utilisareur vient de “Facebook Manager” ou de “Google Assistant”.

Ce sujet étant un peu complexe, nous n’en parlerons pas ici.

Training phrases :

Nous arrivons au point intéressant, les training phrases, ou encore les phrase types que l’utilisateur pourrait dire.

Plus nous ajoutons de phrases types, mieux Dialogflow pourra traiter les demandes utilisateur.

 

Une fois les training phrases renseignées, nous ajoutons une réponse qui sera, ici, une question.
Dialogflow répondra automatiquement cela à l’utilisateur.

Pour cet intent, nous n’avons pas d’action ni de paramètre, nous reviendrons dessus juste après.

Une fois arrivé ici, DialogFlow aura répondu et attendra que l’utilisateur renchaine sur une autre réponse.
Nous devons donc définir un nouvel intent pour gérer cette réponse, appellons le 2-retourRepas

En contexte d’entrée, j’aurais donc “rating-menu” (car nous venons du welcome) et en sortie, “amélioration” ce qui lira mon intent 1-welcome a 2-retourRepas .

Arrivé à ce stade, l’utilisateur a dû répondre par un chiffre entre 1 à 5 et nous devrons récupérer cette valeur.
Nous utiliserons donc les training phrases pour pouvoir extraire nos données types.

Ce que nous remarquons ici, c’est que Dialogflow extrait automatiquement les données de type “nombres”. Nous pourrons donc enregistrer ces valeurs ou les traiter directement dans la réponse. C’est à cela que services les actions et paramètres

Action and parameters :

Cette partie permettra d’extraire, à partir des training phrases renseignées plus haut, les informations clés de l’utilisateur. J’enregistre ici les informations types que je souhaite récupérer grâce aux actions et paramètres de Dialogflow afin de les exploiter pour répondre à l’utilisateur.

Une fois la réponse renseignée, l’utilisateur pourra répondre de différentes manières. Ici, ce qui nous intéresse dans sa réponse sera bien sûr la note renseignée.

La case “required” (obligatoire) est cochée, cela veut dire que nous obligerons l’utilisateur à renseigner un chiffre pour passer à l’action suivante.

Dans le cas où l’utilisateur n’aurait pas donné de valeur obligatoire attendue, nous devons renseigner une question directement avec les ‘prompts’.

Ce prompt sera diffusé à l’utilisateur si notre numberRating n’est pas trouvé par dialogflow.

Enfin, nous ajoutons une réponse, comme nous avons des informations en plus, nous pouvons personnaliser celle-ci avec ces données.

Vous l’aurez compris, tout est dans la subtilité des questions posées pour avoir les bonnes réponses.

Nous pouvons aussi ajouter plusieur formulations de réponse pour rendre la conversation avec votre Chatbot plus “humaine” et plus agréable à l’utilisateur.

À tout moment, nous aurons le moyen de tester votre chatbot sur le côté droit de votre dashboard ou en allant sur le lien “integration” sur la gauche et en cochant “web demo”. Une URL sera alors générée que nous pourrons ouvrir dans un navigateur.

 

Les réponses types que nous enregistrons auront une énorme utilité car c’est avec ces dernières que nous pourrons traiter certaines demandes.

Voilà ce qui en est du test que nous voulions vous présenter !

Conclusion : Dialogflow est vraiment intéressant à utiliser et permet une expérience utilisateur riche.
Le service développé par Google est très complet et ceci n’est qu’un bref résumé des fonctionnalités principales.

Nous avons vu comment fonctionne succinctement Dialogflow en créant une conversation avec des réponses simples.

Ce qui serait intéressant, c’est d’aller trouver les infos soit en base de données soit à travers une API, des informations intéressantes pour l’utilisateur et utiles comme le prochain vol pour Londres par exemple.

Dans ces cas très probables, nous utiliserons la partie “fulfilment”, un déclenchement de fonctions qui ira chercher ce dont l’utilisateur aura besoin.

Vous devrez définir précisément les étapes à franchir et le code à écrire pour répondre correctement à l’utilisateur.

Cette fonction ira chercher les informations comme la météo pour telle ville via une API classique. C’est une partie qui n’a pas été décrite dans cet article.

Voilà vous avez donc un chatbot fonctionnel pour des demandes simples ! N’hésitez pas à lire la documentation, elle est très bien faite et vous apportera beaucoup de réponses !

Et si toutefois vous aviez des problématiques, des besoins ou des questions sur les chatbots, contactez-nous, nos experts se feront un plaisir de vous répondre !