MARGO

Actualité

Introduction aux Chatbots avec Dialogflow

Découvrez comment fonctionnent les chatbots et apprenez à en créer un facilement avec Dialogflow

Par Hao Chen Data Scientist

07/05/2018

Je travaille actuellement sur un projet de Chatbots créé sur Google Dialogflow. Dans cet article, je commencerai par introduire quelques notions sur Dialogflow et les Chatbots, puis je vous expliquerai comment créer simplement un Chatbot sur cette plateforme.

 

Qu’est-ce que Dialogflow ?

D’après Wikipedia, Dialogflow (anciennement appelé Api.ai, Speaktoit) est une plateforme de développement de Google permettant la création de technologies d’interactions homme-machine basées sur le Natural Language Processing. L’entreprise est plus connue pour avoir créé Assistant (by Speaktoit), un assistant virtuel pour les smartphones Android, iOS et Windows Phone, capable d’effectuer diverses tâches et de répondre aux questions de son utilisateur dans un langage naturel. Speaktoit a également créé une technologie en Natural Language Processing intégrant les contextes des conversations, tels que l’historique de l’échange, la localisation et les préférences de l’utilisateur.

DialogFlow est un très bon outil pour apprendre à créer des Chatbots qui pourront ensuite être intégrés dans vos propres sites web ou applications.

 

Pourquoi choisir Dialogflow ?

Il existe plusieurs bonnes raisons de choisir Dialogflow :

1- Le prix
Si vous souhaitez uniquement apprendre à créer un Chatbot ou que vous n’avez pas beaucoup d’utilisateurs, l’édition Standard est suffisante. Elle est totalement gratuite.

2- La possibilité d’intégrer votre Chatboot sur différentes applications
Avec Dialogflow, vous pouvez intégrer votre Chatbot en un clic aux applications de messagerie instantanées les plus populaires telles que Facebook Messenger, Slack, Twitter, Kik, Line, Skype, Telegram, Twilio et Viber. Cela fonctionnera également sur certains assistants vocaux comme Google Assistant, Alexa de Amazon ou Cortana de Microsoft.

3- Le Natural Language Processing
Comparé à d’autres plateformes qui utilisent des questions prédéterminées comme Chatfuel, Dialogflow offre une excellente expérience utilisateur grâce au Natural Language Processing.

 

Comment fonctionne un Chatbot ?

  1. L’utilisateur envoie un message écrit ou oral sur l’application/le device.
  2. L’application transfère le message à Dialogflow.
  3. Le message est catégorisé comme correspondant à une certaine intention (les intentions sont définies manuellement par les développeurs dans Dialogflow).
  4. Pour chaque intention arrivée à la phase de réalisation, on détermine les actions suivantes (Webhook).
  5. Quand une intention est détectée par Dialogflow, le Webhook utilise une API pour trouver la réponse correspondante dans une base de données externe.
  6. La base de données externe renvoie l’information requise au Webhook.
  7. Le Webhook envoie une réponse formatée correspondant à l’intention.
  8. L’intention génère une donnée actionnable par les différents canaux sur lesquels le Chatbot est intégré.
  9. La donnée actionnable génère un output sur l’application.
  10. L’utilisateur reçoit une réponse sous la forme d’un message écrit, d’une image ou d’un message oral.

Comment construire votre premier Chatbot ?

Créer un agent

1- Si vous n’avez pas déjà de compte Dialogflow, inscrivez-vous sur la plateforme. Si vous êtes déjà inscrit, connectez-vous.

2- Cliquez sur Create Agent dans le menu de gauche et remplissez les différents champs.

3- Donnez un nom et paramétrez la langue de votre agent, puis cliquez sur Save.

 

Créer une intention

Une intention établit une correspondance entre ce que l’utilisateur dit et ce que fait l’agent. Dans notre exemple, cette première intention intervient lorsque l’utilisateur demande la météo.

Pour créer une intention :

1- Cliquez sur l’icône +/add à côté de Intents. Des intentions par défaut existent déjà dans votre agent. Dans un premier temps, gardez-les comme telles.

2- Donnez un nom à votre intention. Vous pouvez choisir le nom que vous souhaitez, mais nous vous conseillons d’utiliser un nom intuitif qui correspondra à l’action réalisée par l’intention.

3- Dans la section Training Phrases, entrez des exemples de questions que l’utilisateur pourrait poser. Comme nous créons un agent météo, nous utilisons des exemples de questions incluant différentes localisations et différentes dates. Plus vous fournissez d’exemples, plus l’agent saura répondre aux différentes formulations de l’utilisateur. Vous pouvez renseigner les exemples suivants :
– What is the weather like?
– What is the weather supposed to be?
– Weather forecast
– What is the weather today?
– Weather for tomorrow
– Weather forecast in San Francisco tomorrow

Dans l’image ci-dessus, vous remarquerez que les mots “today” et “tomorrow” sont surlignés d’une couleur, et que le mot “San Francisco” est surligné d’une autre couleur. Cela signifie que ces valeurs ont été reconnues comme correspondant à des paramètres de dates et de villes. Ces paramètres permettent à Dialogflow de comprendre d’autres dates et d’autres villes que pourraient mentionner l’utilisateur, sans que vous ayez besoin de les ajouter.

4- Cliquez sur Save.

 

Ajouter une réponse

Nous allons maintenant ajouter des réponses simples correspondant à l’intention créée précédemment. Comme nous l’avons déjà mentionné, les réponses ajoutées à une intention n’utilisent pas d’information externe. Elles ne contiendront que les informations que l’agent aura collectées lors de la requête de l’utilisateur.    

Si vous n’êtes plus sur la page correspondant à l’intention “weather”, retournez-y en cliquant sur Intents, puis sur Weather intent.

1- De la même façon que vous aviez renseigné des phrases d’entraînement, ajoutez les lignes de texte suivantes dans la section Response :

    • Sorry I don’t know the weather
    • I’m not sure about the weather on $date
    • I don’t know the weather for $date in $geo-city but I hope it’s nice!

 

Les deux derniers exemples de réponses reprennent des entités de référence. $date permet d’appeler la date mentionnée par l’utilisateur dans sa requête, et $geo-city permet d’appeler la ville.

Lorsque l’agent répond, il prend en compte les valeurs des paramètres collectées dans la requête et utilise une réponse qui inclut uniquement ces valeurs. Par exemple, si la demande ne mentionne qu’une date, l’agent utilisera la deuxième réponse de la liste.

2- Cliquez sur Save.

 

Tester le Chatbot

Tapez une requête dans le champs de texte “Try it now…”. Votre requête doit être légèrement différente de celles que vous avez fournies en exemple pour entraîner votre agent. Cela peut être par exemple “How’s the weather in Denver tomorrow?”. N’oubliez pas d’appuyer sur Entrée.

 

  • Response indique une réponse appropriée parmi celles fournies. La réponse choisie dépend des valeurs que vous avez demandées dans la requête. Ainsi, si vous avez uniquement indiqué une date, l’agent utilisera une réponse qui inclut uniquement une date.
  • Intent ici l’intention reste “weather”, l’agent a bien détecté l’intention.
  • Parameter / Value affichent les paramètres détectés dans votre requête et les valeurs correspondantes.

 

Réalisation de base (Webhook)

Selon vos besoins, vous pouvez définir un Webhook personnalisé pour utiliser des APIs externes et avoir davantage de données issues de bases de données externes. Un Webhook peut être écrit en Python et Node.js. Il peut être hébergé dans des serveurs cloud tels que Heroku, AWS ou Google Cloud Platform, ou sur des serveurs locaux.

Choisissez le langage de programmation et le serveur que vous souhaitez :

https://dialogflow.com/docs/getting-started/basic-fulfillment-conversation

Intégrer votre Chatbot sur votre canal

Dialogflow vous permet d’intégrer votre Chatbot sur les applications de messageries et les assistants vocaux les plus populaires. Cette intégration ne prend que quelques secondes. Vous pouvez choisir votre canal préféré. Je vous invite ensuite à suivre le tutoriel officiel de Dialogflow pour y intégrer votre Chatbot : https://dialogflow.com/docs/integrations/.

 

Conclusion

Dans cet article, vous avez pu découvrir Dialogflow, les avantages que représente l’usage cette plateforme, le fonctionnement d’un Chatbot et un tutoriel pour apprendre à créer votre premier Chatbot. Merci d’avoir pris le temps de lire. N’hésitez pas à me contacter si vous rencontrez le moindre problème.

 

Sources

  1. Dialogflow Quick Starts
  2. DialogFlow(formerly API.AI): Let’s create a Movie ChatBot in minutes

 


Par Hao Chen Data Scientist
Chatbot
DataScience
Dialogflow
Machine Learning
NLP
Actualité

Tutoriel : Quelques bases en python pour la prédiction de séries temporelles

Dans ce tutoriel, nous introduisons quelques concepts élémentaires en séries temporelles afin de pouvoir effectuer “rapidement” des prédictions de valeurs futures sur des données temporelles. Loin d’être exhaustif, ce premier tutoriel présente quelques outils de base en Python permettant d’effectuer de premiers traitements. Le code permettant de retrouver ces résultats est ici : https://gitlab.com/margo-group/public/SeriesTemporelles.

11/09/2018 Découvrir 
Actualité

Kaggle Challenge : Ad Tracking fraud detection pour TalkingData

TalkingData est la plus grande plateforme indépendante de services Big Data en Chine, couvrant plus de 70% des appareils mobiles actifs dans tout le pays. Ils traitent 3 milliards de clics par jour, dont 90% sont potentiellement frauduleux. Afin de garder une longueur d'avance sur les fraudeurs, ils se sont tournés vers la communauté Kaggle pour obtenir de l'aide dans le développement de leur solution. Le sujet du challenge : créer un algorithme qui prédit si un utilisateur va télécharger une application après avoir cliqué sur une annonce d'application mobile.

31/05/2018 Découvrir 
Actualité

La Data Science appliquée au monde du retail : les 10 use-cases incontournables

La Data Science impacte de plus en plus les business model dans toutes les industries, et notamment dans la vente de détail. Selon IBM, 62% des détaillants déclarent que l'utilisation de techniques relatives au Big Data leur donne un sérieux avantage compétitif. Savoir ce que veut votre client et à quel moment est aujourd’hui à portée de main grâce à la data science. Pour cela il suffit d’avoir les bons outils et les bons processus en place pour les utiliser. Nous présentons dans cet article 10 applications essentielles de la data science au domaine du retail.

18/05/2018 Découvrir 
Actualité

Mise en place d'une plateforme centralisée de gestion des logs avec la suite Elastic

Les cas d’usage de la suite elastic sont nombreux. Nous citons à titre d’exemple la correction d’un dysfonctionnement applicatif par la récupération des erreurs explicites (exception, message d’erreur ..etc) et le suivi de la charge d’une application (mémoire consommée, CPU ..etc), ce qui permet d’avoir une vision globale de la production. De même au niveau métier, il est possible d’exploiter la suite pour valider une chaîne de workflow par l’extraction des données spécifiques et leurs analyses.

04/05/2018 Découvrir 
Actualité

Les horloges de Lamport et le pattern de l’Idempotent Producer (Kafka)

Connaissez-vous les horloges de Lamport ? Devoxx France 2018 était l’occasion, lors du très intéressant talk de DuyHai DOAN, de découvrir ou redécouvrir cet algorithme formalisé par Leslie Lamport en 1978, plus que jamais utilisé aujourd’hui dans le domaine des systèmes distribués, et qui aurait notamment inspiré les développeurs de Kafka dans l’implémentation du pattern de l’Idempotent Producer.

26/04/2018 Découvrir 
Actualité

Salon Big Data 2018 : ce qu’il faut en retenir

Selon l’IDC, le marché du Big Data devrait atteindre 203 milliards de dollars de chiffre d’affaires en 2020, contre 130,1 milliards de dollars en 2016. C’est dans ce contexte de forte croissance que 15 200 participants se sont retrouvés au palais des Congrès pour le salon Big data 2018 : deux jours consacrés à la valorisation de la donnée. Les équipes Margo étaient présentes et vous proposent un compte-rendu de ce qu’il faut en retenir.

30/03/2018 Découvrir