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

Temps de lecture estimé : 6 minutes

Dans le cadre de l’OVH UX Labs, nouvel espace de R&D collaborative dédié à l’amélioration continue de l’expérience client, nous sommes heureux de vous présenter en détail notre tout premier projet : l’assistant virtuel OVH. Aujourd’hui disponible depuis Facebook Messenger et Slack, ce chatbot est capable d’effectuer un diagnostic de votre hébergement web et de répondre à un certain nombre de questions en lien avec ce service. 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.

Le chatbot OVH est accessible depuis Facebook Messenger et Slack.

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, recast.ai, 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 MongoDB fournie par OVH 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.

Qu’en pensez-vous ?

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, grâce à votre feedback. Pour que vous puissiez nous transmettre votre avis et vos suggestions,  nous avons mis en place une mailing-list : uxlabs@ml.ovh.net (envoyez un simple mail pour vous y inscrire). Si vous êtes dans le monde de la technique et que vous voulez échanger autour des technologies, n’hésitez pas à nous rejoindre sur notre Gitter.

Dans un futur proche, nous aimerions ajouter de nouveaux cas d’utilisation et questions auxquels l’assistant sera capable de répondre. Mais pas seulement : l’objectif est de rendre le code de ce chatbot open source afin que chacun puisse y ajouter des intentions et/ou de meilleures réponses. Nous réfléchissons notamment à utiliser ce chatbot comme un canal de notifications permettant de vous avertir d’un dysfonctionnement sur vos services… Soit un service de monitoring basique, mais fourni clé en main !

Développeur au sein de la team UX chez OVH.