written by
Ideta

Qu’est ce que le Dialogflow fulfillment?

NLP & AI 8 min read , October 15, 2021

Dans Dialogflow, on trouve le concept de fulfillment webhook. C’est l’un des concepts les plus difficiles à saisir dans Dialogflow.

Les concepts clés du Dialogflow fulfillment

Pour comprendre plus facilement, nous allons d’abord nous appuyer sur les fondements de Dialogflow: Les intentions et les entités.

En effet, Dialogflow fonctionne en extrayant et en organisant les informations importantes en 3 catégories:

  • Les intentions
  • Les entités
  • Le sentiment

Pour analyser l’information, il l’envoie à un fulfillment webhook. Un webhook est un point d’ancrage, c’est-à-dire un rappel déclenché par un évènement. Cette fonctionnalité est indispensable dans le traitement de l’information.

Reprenons en détail le vocabulaire de Dialogflow:

  • Intention: Acte, fait de se proposer un certain but.*
  • Entité: Idée générale, abstraction que l’on considère comme une réalité.*
  • Sentiment: Conscience plus ou moins claire, connaissance comportant des éléments intuitifs et affectifs.*

* Selon le Dictionnaire Le Petit Robert

Mais quel est le rapport avec Dialogflow 🤔?

Examples d’utilisation de Dialogflow Fulfillment

Exemple 1. Pour vérifier son stock avant une commande

Avec un exemple illustré en plusieurs étapes, vous pourrez facilement vous plonger dans le fonctionnement de Dialogflow Fulfillment.

Commençons par la phrase suivante:

“Le tanuki veut manger une glace au chocolat”

Ce qu’il faut comprendre:

  1. L’intention est “manger”
  2. L’entité est “une glace”
  3. Le type d’entité est “au chocolat”

Voyons cela de plus près du point de vue du Dialogflow fulfillment:

  1. Dans cet exemple, Dialogflow comprend que l’intention du Tanuki est de manger
  2. Cependant, d’autres tanukis pourraient avoir la même intention de manger, mais il n’auraient peut-être pas envie de manger la même chose. Ils pourraient par exemple avoir envie de manger une autre saveur de glace ou alors une entité complètement différente, comme une pomme ou autre chose.
  3. Dans notre exemple, l’entité est “glace” et le type d’entité est “au chocolat”.

Mais toutes ces informations seraient complètement inutiles à votre entreprise si vous n’en étiez pas informé et si vous ne saviez pas quoi faire de celles-ci. Comment pourriez-vous satisfaire votre tanuki si vous ne savez pas comment résoudre ces problématiques.

C’est là toute l’utilité du fullfillment. Si on voulait donner une traduction puis une définition au mot Fulfillment, on pourrait le remplacer par combler, réaliser un objectif.

Selon la définition du dictionnaire Larousse, combler:

“Faire en sorte qu'un manque, un déficit, une lacune, etc., disparaissent en faisant les apports ou les modifications nécessaires, en prenant les mesures appropriées”.

Le but est de savoir quoi faire après avoir analysé la saisie de l’utilisateur. Comment combler le besoin de l’utilisateur à partir de cette donnée?

Concrètement, vous voudriez vérifier dans votre base de données s’il y a assez de glace pour faire de la glace au chocolat; et dans le cas échéant, être en mesure de proposer une autre saveur. Cela vous permettra d’être proactif envers l’utilisateur et d’améliorer votre service client.

Pour ce faire, Dialogflow ne peut pas être utilisé seul. Il peut juste vous dire que le tanuki veut de la glace, point barre.

Il ne connaît pas votre entreprise ainsi que toutes ses procédures. Dialogflow ne peut pas faire l’inventaire de vos stocks et savoir s’il y a une quantité suffisante de glace.

C’est là qu’intervient le fulfillment webhook. Sans entrer dans les détails, Dialogflow envoie une requête HTTP POST à un URL dont vous avez le contrôle. Il vous envoie ensuite l’information au format JSON. Une fois l’information reçue, il vous faudra alors coder pour pouvoir agir en conséquence.

Exemple 2. Réserver un créneau horaire et vérifier son agenda

Maintenant, imaginons que votre potentiel client soit en mesure de prendre rendez-vous avec votre équipe via votre chatbot. Par exemple, Mr Tanuki voudrait fixer une réunion téléphonique jeudi à 16 heures.

Il pourrait alors dire: “Pourriez-vous me rappeler jeudi à 16 heures?”

Dialogflow peut comprendre et extraire l’intention suivante “rappeler”, et il peut aussi extraire la date et l’horaire de l’appel en question. Dans notre exemple, “appeler” est l’intention et “jeudi à 16 heures” est l’entité.

En revanche, Dialogflow à lui seul ne peut pas vérifier votre agenda afin de savoir si vous êtes disponible à cette date et à cet horaire et même s’il le pouvait, Dialogflow ne serait pas en mesure de programmer cet appel dans votre agenda.

Là encore, c’est ici que Dialogflow fulfillment webhook entre en jeu. Une requête est envoyée à l’URL de votre webhook. Ce webhook contient les informations de Mr Tanuki et vous pouvez alors vous en servir pour vérifier vos disponibilités et réserver un créneau dans votre agenda automatiquement.

Comment fonctionne le fulfillment webhook?

Maintenant que vous savez ce que sont les intentions et les entités, nous allons mettre en pratique ces connaissances.

Comment le chatbot diaogflow fonctionne?
Voilà ce qu’il se passe lorsque l’on interagit avec un chatbot

1. L’utilisateur envoie sa requête.

“j’ai très faim et je voudrais manger une glace au chocolat”.

2. Dialogflow sépare l’intention et l’entité de la donnée.

L’intention : “manger”, les entités : “glace au chocolat”

3. Dialogflow envoie l’information au webhook

4. La fonctionnalité webhook interagit avec votre base de données ou vos services externes afin de construire une réponse qui sera ensuite envoyée à Dialogflow. Pour notre exemple, il vérifiera les quantités de glace au chocolat disponibles.

5. Votre réponse est envoyée via Dialogflow

6. L’information est envoyée à l’utilisateur

“Bien sûr! Votre glace au chocolat sera prête dan 5 minutes”

ou

“Il n’y a plus de glace au chocolat. Voulez-vous commander une glace à la pistache ou à la noix de coco à la place?”

7. L’utilisateur reçoit la réponse et le cycle de la conversation peut continuer.

Comment construire un Webhook?

Une fois que vous avez compris le fonctionnement, comment créer un webhook?

Dans Dialogflow, en vous rendant dans la section fulfillment, vous verrez qu’il y 2 options proposées par Dialogflow.

  • Webhook
  • Inline Editor with Google Cloud Functions
Webhook et inline editor dialogflow
Webhook fulfillment dans Dialogflow

Webhook

Vous devez utiliser un serveur avec un code spécifique afin de recevoir ce que Dialogflow vous envoie et analyser ces données. En pratique, vous devrez entrer l’URL de votre serveur dans Dialogflow (avec les informations optionnelles d’authentification).

Cela signifie que vous devrez coder, héberger un serveur et veiller à sa gestion.

dialogflow fulfillment webhook
Webhook fulfillment dans Dialogflow

Avec Cloud Function

Si vous utilisez le cloud function, il faudra le connecter à Dialogflow. Il s’agit d’un service payant de Google. Cela vous permet de délocaliser l’hébergement et la gestion du serveur, néanmoins vous aurez besoin d’en étudier le fonctionnement et vous devrez tout de même coder.

code du webhook cloud function
C’est du charabia pour vous? Cloud Function est assez technique de prime abord pour les non-développeurs.

Ideta et sa solution fulfillment

Les deux solutions citées précédemment nécessitent une certaine expertise ainsi que de solides ressources techniques qui pourraient être utilisées pour d’autres activités au sein de votre entreprise.

C’est pourquoi Ideta a développé une solution no-code pour vous épargner la contrainte des lignes de code sur Dialogflow fulfillment webhook.

Lorsque votre compte Dialogflow est connecté à Ideta, vous pouvez gérer les intentions et les entités aisément. Et puisque vous êtes directement connecté à Dialogflow, vous n’avez plus qu’à choisir quoi faire des informations reçues via Dialogflow sur votre interface no-code.

Les intentions et les entités sur dialogflow
Choisissez votre intention et connecter la à la bulle de votre choix

En gros, vous n’avez pas à lire la documentation de Dialogflow et vous pouvez ainsi vous concentrer sur le coeur de votre métier.

dialogflow avec Ideta
Ideta facilite le procédé du fulfillment

Le Dialogflow fulfillment d’Ideta

Pour illustrer la solution d’Ideta, faisons un chatbot qui vous permet de commander des pizzas. Nous connecterons ce chatbot à Dialogflow et utiliserons le webhook fulfillment de manière simple.

Dans notre interface AI ou IA pour intelligence artificielle, vous devrez ajouter des examples de phrases d’intentions. Cette étape est cruciale pour que Dialogflow puisse comprendre la structure de certaines phrases et développer son apprentissage. Vous pouvez mettre à jour ces phrases régulièrement et même en ajouter de nouvelles. Cela permettra à Dialogflow d’apprendre plus rapidement.

Dans notre exemple, il s’agira des ingrédients supplémentaires que le client pourra ajouter sur sa pizza.

Lier une intention dialogflow

Ensuite, vous devrez indiquer à Dialogflow quelles sont précisément les entités présentes dans la phrase. N’oubliez pas d’ajouter quelques synonymes et des fautes d’orthographe courantes. Cela contribuera à l’apprentissage de Dialogflow.

entités

Maintenant que Dialogflow a assez d’informations pour apprendre et comprendre ce que veux l’utilisateur, vous devez lui indiquer quoi faire de ces informations. Cela est possible grâce à notre interface sans code.

lien NLP chatbot

Et voilà! Vous pouvez dès maintenant essayer le chatbot ici. Si vous souhaitez connecter votre chatbot à votre compte Slack, inscrivez-vous! Nous avons un modèle disponible.

Conclusion

Nous espérons que les exemples de Dialogflow fulfillment vous ont aidés à comprendre les concepts clés de Dialogflow, que sont les intentions et les entités.

Chez Ideta, nous automatisons ces étapes pour qu’elles soient plus faciles à utiliser. Vous pouvez alors focaliser vos efforts sur la création de chatbots qui optimiseront votre service client.

Ce sujet est assez technique, donc si vous avez la moindre question, n’hésitez pas à nous envoyer un message via le chatbot en bas de cet écran ou par email à contact@ideta.io

Rejoignez notre newsletter !
Sign up for our newsletter