[UX Labs] Chatbot OVH : l’intelligence artificielle au service de l’expérience client

Dans le cadre de l’OVH UX Labs, , nous sommes heureux de vous présenter en détail notre tout premier projet : l’assistant virtuel OVH. Disponible depuis et , ce chatbot est aujourd’hui capable d’effectuer un diagnostic de votre hébergement web et de répondre à un certain nombre de questions en lien avec ce service. Mais ce n’est qu’un début : nous avons besoin de vous pour augmenter la couverture fonctionnelle de ce chatbot et avons pour cela rendu le code disponible en open source. Explications.

Nous avons imaginé cet assistant virtuel dans le but de réduire la frustration des clients lorsqu’ils rencontrent un problème (aujourd’hui avec leur hébergement web, mais demain avec d’autres services OVH si le projet vous séduit). L’intérêt pour l’utilisateur est d’obtenir un diagnostic immédiat dans le cas où son hébergement web ne fonctionne plus ou qu’il y a une erreur dans la configuration de celui-ci. Et ce, sans avoir besoin d’appeler le support ou d’ouvrir un ticket.

Pour concevoir ce chatbot, nous nous sommes dans un premier temps concentrés sur les principales causes d’appels au support web. Sans surprise, la première cause d’appel se trouve être : « mon site ne fonctionne plus ». En étudiant de façon plus microscopique cette catégorie d’appels, nous avons discerné différents cas, du plus simple au plus complexe. Certaines causes de dysfonctionnement sont assez basiques, et peuvent être diagnostiquées de façon automatique. D’autres nécessitaient le développement d’une intelligence artificielle pour être identifiées précisément. Du certificat SSL partiellement configuré aux problèmes de configuration DNS, en passant par les erreurs de connexion à la base de données, cet assistant virtuel est capable de détecter, après quelques questions, l’origine de votre souci. Il pourra bientôt, en cas d’incident affectant tout ou partie de l’infrastructure OVH, vous orienter vers la tâche travaux grâce à laquelle vous pourrez suivre l’évolution de la résolution de l’incident.

Laissez-nous maintenant ouvrir le capot de ce chatbot !

Les technologies utilisées

• Traitement du langage
Pour permettre à notre chatbot de comprendre vos intentions, il doit pouvoir réaliser un traitement automatique du langage naturel (Natural Language Processing). Ce NLP est utile au chatbot pour déduire d’une phrase, formulée en langage humain, l’intention qui s’y cache. Nous avons utilisé le service wit.ai qui, en plus d’être gratuit, dispose d’une API REST (notez qu’il existe quelques concurrents, à l’instar d’api.ai, [url-"https://recast.ai/"]recast.ai[/url], luis.ai). Brièvement, ce moteur NLP prend la phrase en entrée et supprime tous les mots dont il n’aura pas besoin pour comprendre l’intention. Par exemple : les déterminants, les formes plurielles, les pronoms personnels… Ensuite, après avoir supprimé ces mots, le système recherche l’intention parmi les mots qui restent, en se basant sur le « catalogue d’intentions » que nous lui avons enseigné. En effet, pour que l’intelligence artificielle fonctionne correctement, il faut au préalable une phase d’apprentissage. Par exemple, la phrase « mon site ne fonctionne plus » signifie l’intention « website_break ». L’apprentissage consiste simplement à nourrir le moteur d’intelligence artificielle à l’aide de différents exemples de phrase, en les reliant à l’intention correspondante.

• Plateformes de communication
Maintenant que notre chatbot « comprend » des phrases du langage humain — ou du moins sait les associer à une intention — il est temps de lui fournir un canal grâce auquel il pourra communiquer avec un utilisateur. Notre choix s’est rapidement porté sur Facebook Messenger en raison de sa popularité. Messenger fourni une API HTTP afin de récupérer différents événements, tels que la réception d’un message, la lecture d’un message, la connexion… Ces évènements sont remontés grâce à un webhook HTTP que nous lui fournissons lors de la création de l’application Messenger sur l’interface développeur Facebook Messenger. Les réponses sont ensuite envoyées via des appels HTTP à l’API Messenger. L’API de Slack possède un fonctionnement similaire, moyennant quelques notions différentes en matière d’authentification et de droits par rapport aux teams Slack.

• API
Afin de répondre aux évènements envoyés sur les webhooks, nous avons besoin d’une API HTTP. Celle que nous avons développée est réalisée en Node.Js avec le framework Express.Js. Elle est connectée à une base de données [url-"https://www.runabove.com/SaaSDBMongoDB.xml"]MongoDB fournie par OVH[/url] en mode as a service. Chaque plateforme de communication possède des routes différentes, que nous avons indiquées nous-mêmes sur l’interface développeur de Slack et Facebook Messenger. Lorsque nous recevons une phrase, nous détectons l’intention grâce à wit.ai et nous effectuons les traitements liés à celle-ci en allant notamment rechercher des informations sur api.ovh.com. Tous nos logs sont envoyés sur Graylog grâce au service Logs Data Platform que propose OVH. Cela nous permet de monitorer notre service afin de déceler rapidement des dysfonctionnements ou erreurs sur notre API.

Un point important concernant cette API : Facebook et Slack exigent qu’elle soit accessible en HTTPS, pour des raisons de sécurité. Pour activer HTTPS, nous avons utilisé un autre service OVH disponible en bêta, dénommé SSL Gateway. Ce service permet un gain de temps considérable, tant sur la mise en place du SSL que sur le plan de sa maintenance (renouvellement du certificat), puisqu’OVH s’occupe de tout. Concrètement il suffit de lui indiquer une adresse IP et un nom de domaine et le tour est joué ! SSL Gateway vous enverra par e-mail les informations à indiquer dans votre zone DNS afin de pouvoir communiquer sur ce domaine en HTTPS.

Le code du chatbot OVH open sourcé. À vous de jouer !

Utiliser un chatbot pour vous remonter des informations ou répondre à des questions nous ouvre énormément de possibilités. Aujourd’hui, tout est à construire et à imaginer. Notre volonté est de développer ces idées avec vous.

Nous avons pour cela rendu le code open source, après avoir refactorisé et open sourcé quelques dépendances internes. Quels types de contributions attendons-nous ? Comment allons-nous enrichir le projet de notre côté ? Voici nos réponses.

Les projets internes

Depuis que le projet a été lancé, nous avons récolté des suggestions intéressantes en interne, pour augmenter la couverture fonctionnelle du service et en étendre les usages. Nous allons prochainement ouvrir la possibilité à nos chargés d’amélioration continue, répartis au sein de chaque univers de produits et en contact permanent avec les équipes du support technique, d’enrichir la base de nouvelles intentions, correspondant à des demandes récurrentes provenant des utilisateurs, ainsi que de renseigner les réponses adéquates.

L’usage du chatbot sera à terme étendu à tous les services OVH et, au-delà du diagnostic, il sera possible d’être orienté sur un guide ou thread du forum OVH Community en réponse à une question. Il sera alors possible de remplacer par ce chatbot le chat en ligne disponible sur le site ovh.com, qui fonctionne sur une base limitée de questions préenregistrées.

Par ailleurs, des conseillers clients ont imaginé exploiter l’intelligence artificielle du chatbot pour prodiguer des conseils commerciaux basiques, sur la base des besoins exprimés par les clients… avant de proposer si besoin la programmation d’un rendez-vous téléphonique pour poursuivre l’échange avec un humain.

Vos contributions sont les bienvenues !

En parallèle de ce travail mené à l’intérieur d’OVH (qui compte également l’implémentation d’un module de retour d'expérience dans le chatbot, nécessaire à l’évaluation et l’amélioration continue de l’outil), nous souhaitons recueillir vos contributions. Grâce à la mise à disposition code du chatbot en open source sous licence BSD 3-clause, il vous est maintenant possible d’y ajouter vous-même des intentions et des réponses, des idées de diagnostic. Et ce, pour n’importe lequel des services OVH, grâce aux informations disponibles via l’API OVH. Vous pourrez alors, par exemple, faire profiter vos clients d’un assistant virtuel en marque blanche si vous êtes un revendeur des solutions OVH, ou en faire profiter tout le monde en nous suggérant d’incorporer vos parties de code via une pull-request sur GitHub.

Mais ce n’est pas tout ! Pourquoi ne pas imaginer un système de surveillance ou d’alerte basé sur le chatbot, vous notifiant d’un disque plein ou d’une surcharge CPU sur votre serveur ? Et si vous rendiez le chatbot disponible sur de nouvelles applications, telles que Twitter ? N’hésitez pas à nous surprendre… et, si vous êtes bloqués dans la mise en œuvre d’une idée, sollicitez-nous !

Développer votre propre chatbot ?

Enfin, comme vous avez pu le découvrir dans notre précédent article, ce chatbot a été conçu à partir de briques techniques standards, disponibles chez OVH (SSL Gateway, DBaaS MongoDB, Logs Data Platform…). Sortira bientôt en bêta une brique qui va faciliter encore davantage le déploiement de votre propre chatbot : Fonction as a Service. Soit un service de calcul serverless, capable d’exécuter vos calculs à la demande, en réaction à des événements définis, sans que vous n’ayez à vous préoccuper des ressources sous-jacentes.

Nous espérons alors que vous serez nombreux à tenter de déployer votre propre chatbot. Car, au-delà du buzz (nombreux sont ceux qui parlent déjà du phénomène comme une révolution dans différents domaines), c’est un outil puissant, dont l’absence d’interface démultiplie le champ des possibles.

C'est à vous de jouer !