Étude sur la mise en place d’un chatbot

Publié le 15/09/2019

~ Pensé et rédigé par Yoan Habib ~


Bannière

Source : pixabay.com

Ce projet est la toute première tâche qui m’a été confiée lors de mon stage au sein de la société JeChange et qui a débuté en février 2018. Ma mission : réaliser une étude sur la mise en place d’un véritable chatbot se servant de l’intelligence artificielle pour répondre à son interlocuteur. Pour être plus précis, je devais me concentrer sur l’ingération de celui-ci sur l’application Facebook Messenger de l’entreprise. Néanmoins, et s’il me restait assez de temps, il m’a été demandé de travailler sur un agent conversationnel utilisant la reconnaissance vocale et fonctionnant sur l’enceinte intelligente Google Home.

Contexte

Au début de l’année 2018, JeChange était en pleine restructuration à la fois technique mais aussi fonctionnelle. En effet, suite à l’arrivée récente du nouveau responsable du développement logiciel, une nouvelle méthodologie de travail a été mise en place et il a été décidé que des technologies plus récentes seraient utilisées pour le développement des projets techniques. De plus, dans l’optique de se développer et d’améliorer l’expérience du client lorsque celui-ci fait appel aux services de la société, JeChange a décidé de se tourner vers un sujet en plein essor et que bon nombre d’entreprises utilisent aujourd’hui : l’intelligence artificielle et plus particulièrement le chatbot (ou agent conversationnel). Il était clair que cela apporterait beaucoup d’avantages puisque les chatbots sont très souvent utilisés pour de la relation client, l’un des domaines phares de l’entreprise.

C’est pourquoi mon responsable m’a confié cette mission. En effet, il souhaitait que, par le biais de cette étude, je parvienne à sécuriser le futur développement de ce genre de projet tout en garantissant un soutien technique si des problèmes venaient à être rencontrés. Enfin, il m’a été indiqué les différents points sur lesquels je devais travailler pour avoir un chatbot répondant aux demandes des différents services concernés :

  • Le principal objectif était de pouvoir faire du commerce avec l’agent virtuel ;
  • Il fallait qu’il soit capable de contextualiser le parcours du client (comprendre véritablement son besoin) ;
  • Si malgré tout, la demande n’était pas comprise, un véritable agent pouvait avoir la main sur la conversation ;
  • Le chatbot devait permettre une amélioration du volume et de la qualité des fiches clients (je devais donc sauvegarder des informations clés de la conversation) ;
  • Pour finir, il était important que le service marketing puisse avoir accès à des informations sur l’usage du chatbot grâce à Google Analytics.

Comme j’étais seul sur ce projet, le plus grand risque que je voyais était sans doute un blocage aussi bien technique que méthodologique.

Mise en œuvre

Pour ce projet, l’équipe de développement n’avait pas la possibilité de me rejoindre, j’ai donc travaillé seul. Dès lors, j’ai pris la décision de faire un compte rendu à mon responsable à chaque fin de semaine afin de lui faire part de mon avancement. La première étape a été de prendre en main l’outil choisi en amont pour la création d’un chatbot : Dialogflow. Il s’agit d’une interface qui se spécialise dans les technologies d’interaction homme-machine. Développée par Google, elle utilise le Cloud Natural Language, une API (interface de programmation) qui lui permet de reconnaître des mots ou des phrases envoyés par un utilisateur. J’ai alors parcouru attentivement la documentation et une fois ayant compris le fonctionnement de l’outil, j’ai réalisé un Proof Of Concept (démonstration de faisabilité) que j’ai présenté à l’équipe et à mon responsable. Cela a permis de démontrer que l’ensemble des demandes faites pour l’agent conversationnel étaient réalisables.

POC

Proof Of Concept de l'outil Dialogflow

Après cela, il m’a fallu prendre deux grandes décisions. La première était de choisir la version de Dialogflow à utiliser. Après discussion avec mon responsable, j’ai choisi d’utiliser la dernière version car elle y intègre la reconnaissance vocale et la technologie est plus récente et donc plus facilement maintenable. La deuxième concernait la meilleure manière pour intégrer l’agent sur les différentes plateformes. En effet, Dialogflow propose un système d’intégration manuellement configurable. Cependant, celui-ci était assez limité et je voulais pouvoir tout centraliser à un même endroit tout en réalisant des actions externes comme sauvegarder des informations en base de données. J’ai donc jugé qu’un serveur développé par moi-même ayant pour rôle d’assurer le bon fonctionnement de la communication entre le client et Dialogflow était la meilleure solution.

Schéma de conceptualisation

Schéma de conceptualisation du serveur de communication avec Dialogflow

Bien évidemment, je savais d’avance que cette solution était possible suite à ma formation sur l’outil. En effet, la plateforme met à disposition des SDKs (Software Development Kit ou Kit de développement logiciel en français) permettant justement de répondre à ce besoin. Néanmoins, le Kit était uniquement disponible en JavaScript. J’ai donc choisi de développer mon serveur avec Node.js (et le framework Express.js afin de gagner du temps). Également, je me suis renseigné en amont sur le moyen d’intégrer le chatbot sur Facebook Messenger et sur ce qui était proposé en terme de fonctionnalités. Une fois que tout cela a bien été défini, j’ai pu commencer le développement de ce serveur et l’intégration du chabot en me concentrant sur les objectifs que l’on m’a demandé d’atteindre. Voici le résultat final concernant l’agent conversationnel de l’application Facebook Messenger :

Chatbot messenger

Chatbot messenger avec IA

Voyons un peu comment tout cela fonctionne. Tout d’abord, j’ai créé une application Facebook, nécessaire pour établir la connexion entre le réseau social et mon serveur. L’utilisateur pourra dès lors envoyer un message qui sera ensuite réceptionné. J’ai anticipé le fait que le format de la requête et de la réponse attendus diffèrent selon la plateforme utilisée par la personne. C’est pourquoi j’ai créé un contrôleur spécifique ayant pour but de formater les messages qui transitent. Le service Dialogflow lui, est appelé quelles que soient les circonstances. Son but est de déterminer le type des informations reçues et de les transmettre. Toute la logique contextuelle et la partie intelligence sont gérées par la plateforme de Google grâce à une configuration que j’ai moi-même effectuée en amont. On a également la possibilité de déclencher des évènements permettant à Dialogflow d’appeler le Webhook, un service intermédiaire pouvant communiquer avec des APIs externes. Également, il est possible de déclencher des évènements du côté client, comme par exemple débrancher le chatbot pour laisser la main à un véritable agent. La partie « analytics » quant à elle est déjà proposée sur l’interface de Dialogflow et tout est géré automatiquement.

Grâce à cette architecture, j’ai ainsi pu remplir tous les objectifs qui m’ont été demandés. Voici quelques exemples de conversations :

Exemple de conversation 1

Chatbot messenger : conversation 1

Exemple de conversation 2

Chatbot messenger : conversation 2

Résultats

Une fois mon étude terminée, j’ai pris l’initiative de réaliser une démonstration du travail que j’ai réalisé à mon responsable et aux différentes personnes concernées par le projet. Les retours ont été très positifs et ayant prit beaucoup d’avance, j’ai eu le temps de travailler sur l’intégration de ce chatbot sur l’enceinte Google Home. Par ailleurs, ce travail a également été très apprécié au point que l’on m’a demandé d’en faire une démonstration à M. Emmanuel Macron, Président de la République française, dans le cadre de sa visite dans l’entreprise.

Conclusion

Étant seul sur ce projet qui aura duré près de trois mois, j’ai dû apprendre à gérer mon stress et faire preuve de professionnalisme tout en étant autonome. Bien évidemment, j’ai su demander le soutien de mes collègues quand je rencontrais des difficultés et ce sont ces points très importants qui m’ont permis d’éviter le risque dont j’ai parlé au début. Je suis très fier d’avoir réalisé cette étude car je suis parvenu à la mener à bien alors qu’il s’agissait de ma toute première expérience professionnelle dans le développement web. Cela a été sans doute une grande étape pour moi car j’aurais appris énormément de choses en ce qui concerne la gestion d’un projet.

Yoan Habib
Yoan Habib

Salut, moi c'est Yoan ! Mes passions ? La culture japonaise et le monde du web en général.