Comment créer un bot
Du développement à la mise en production, tour d'horizon des grandes étapes à suivre pour développer un agent conversationnel tirant parti du machine learning.
L'arrivée à maturité des technologies de natural language processing (NLP) a ouvert la voie ces dernières années au développement de bots capables d'échanger à la volée en langage naturel. Jusqu'ici, les agents conversationnels se contentaient en général de réagir à partir de mots clés sans être capables d'appréhender le sens global des requêtes qui leur étaient soumises. Ils pouvaient s'adosser à des arbres de décision aux scénarios très dirigés - avec des questions multiples guidant le parcours (par exemple : "Quel type de vêtement recherchez-vous ?" "De quelle taille ?" "De quelle couleur ?"). Au final, les capacités de compréhension et d'interaction de ces chatbots se révélaient limitées. Le machine learning est en train de tout changer. Il permet en effet aux bots de saisir l'intention d'une question et par conséquent de proposer des scénarios de conversation plus ouverts. Malgré la jeunesse de la discipline, une méthodologie commence à se dessiner pour développer et mettre en œuvre ce nouveau type de bot. Elle peut se résumer en huit points :
1. Identifier les principaux scénarios conversationnels à implémenter
Avant de se lancer dans le développement d'un bot, il est important de bien cerner le périmètre fonctionnel à cibler. L'agent conversationnel se limitera-t-il à gérer l'accès à une base de connaissances, dans une optique de support client par exemple ? Devra-t-il intégrer des processus métier plus avancés (type achat, facturation...) ? "Cette phase d'analyse de besoins est nécessaire avant de se lancer dans le paramétrage de la couche de NLP", insiste Thomas Sabatier, CEO de The Chatbot Factory - une agence digitale française spécialisée dans le développement d'agents conversationnels.
2. Partir de données de relation client existantes
Une fois le cadrage du projet réalisé, il est recommandé de faire un état des lieux de toutes les questions que les futurs utilisateurs du bot sont susceptibles de poser. "Dans le cas d'un bot BtoC, on peut s'inspirer des questions soumises via le moteur de rechercher du site web de l'entreprise, voire même des requêtes saisies dans Google sur la thématique ciblée", indique Nicolas Chollet, directeur général de Clustaar - une autre agence française experte en chatbots. "Cette matière permettra d'identifier les différentes façons de formuler une même demande en langage naturel, en prenant en compte la synonymie, les fautes de frappe ou d'orthographe, etc."
Les faq et autres verbatim client renseignés dans le système de CRM de l'entreprise sont une autre composante à ne pas négliger. "Si le travail a été bien fait en amont, ils devraient contenir les questions les plus importantes à intégrer au bot avec les réponses associées. Cette démarche d'analyse permettra d'aboutir plus rapidement à une première ossature", poursuit Nicolas Chollet.
3. Paramétrer la couche de traitement du langage
C'est une étape clé du projet. Elle consiste à paramétrer l'ensemble des questions (ou "intentions" dans le jargon du domaine) auxquelles l'agent conversationnel doit pouvoir répondre. Cette phase sera d'autant plus critique si le bot met en musique des processus transactionnels. "Dans le cas d'un scénario de réservation au restaurant par exemple, il faudra implémenter toutes les requêtes possibles et actions correspondantes à réaliser : vérification de la disponibilité des tables, réservation, annulation...", souligne Thomas Sabatier. En parallèle, des critères (ou "entités") devront être configurés pour qualifier les questions. "Dans notre exemple, il s'agira typiquement du lieu du restaurant, du nombre de personnes à prendre en compte, de la date et de l'heure de la réservation", complète l'expert.
4. Donner au bot "une personnalité"
En vue de crédibiliser les capacités d'IA du bot, il est recommandé d'ajouter à la logique conversationnelle des éléments de "personnalité". L'objectif étant in fine de rendre l'interaction avec la machine plus naturelle pour l'utilisateur. "Cela passe par l'intégration d'une cinquantaine d'items périphériques", explique Thomas Sabatier. "Ils permettront au bot de donner son nom ou sa date de création. Ou encore de répondre à des questions connexes, par exemple sur les heures d'ouverture d'un réseau de points de vente."
La "personnalité" du bot devra aussi être mise en cohérence avec l'univers de la marque. "En fonction de la population cible, il faudra notamment faire un choix entre tutoiement et vouvoiement", indique Nicolas Chollet.
5. "Entraîner" le bot pour le rendre plus performant
Une fois le bot assemblé autour de sa brique de NLP (qui pourra être fournie par un fournisseur de cloud ou un prestataire de services), vient la phase de test de l'application. Pendant plusieurs dizaines d'heures, les équipes de recette devront mettre l'agent conversationnel à l'épreuve. Via ce processus dit de "bot training", l'objectif est de soumettre au chatbot toutes les tournures possibles des questions auxquelles il devra répondre, et ainsi de permettre à son moteur d'auto-apprentissage linguistique de les ingérer. Nicolas Chollet précise : "si le travail amont (autour du traitement des historiques de recherche et faq existants, ndlr) a été bien fait, il ne sera pas forcément utile d'entraîner le bot."
6. Utiliser des briques d'IA autres que conversationnelles
En vue d'enrichir les scénarios d'utilisation du bot, il est envisageable de faire appel à des technologies d'IA complémentaires, dépassant le domaine du traitement du langage. "L'intégration d'un moteur de reconnaissance d'images pourra par exemple permettre à l'agent conversationnel de reconnaitre un article sur une photo prise en magasin, et de répondre à une question associée à cette photo, de type : 'cet article est-il disponible dans telle taille'", argue Thomas Sabatier.
Le machine learning continuera à alimenter la base de connaissances du bot tout au long de son cycle de vie
En tâche de fonds, un algorithme de matching pourra aussi être sollicité pour traiter des requêtes à multiples variables sans réponse préconçue. "Dans le cas d'un bot de cuisine confronté à la question de savoir quel vin pourra accompagner un poulet aux morilles, ce type de traitement permettra de corréler les vins qui se marient avec des champignons proches des morilles d'une part, avec les vins qui s'accordent avec le poulet d'autre part. Au final, ce matching permettra d'aboutir à une réponse qui n'existait pas au départ en base de données", poursuit Thomas Sabatier. Et pour compléter le tout, les préférences de l'utilisateur en matière de vins pourront éventuellement constituer une dimension supplémentaire à prendre en compte pour générer la réponse.
7. Intégrer le bot au système d'information
Si le chatbot met en musique des processus transactionnels métier (gestion de commande, de stocks, de flux financiers…), il sera alors nécessaire de lancer des passerelles vers des applications tierces (CRM, ERP...). Des liens qui pourront être activés par des API ou par des connecteurs orchestrés via un bus d'intégration, éventuellement fourni en mode cloud.
8. Ne pas cesser d'enrichir son IA une fois le bot en production
Même si le bot aura été correctement paramétré puis entraîné, il n'en restera pas moins faillible. D'où l'importance de laisser le machine learning continuer à alimenter sa base de connaissances tout au long de son cycle de vie. "L'agent conversationnel pourra demander à l'utilisateur s'il est satisfait, et exploiter ce feedback pour s'améliorer et prendre en compte de nouvelles formulations", justifie Thomas Sabatier. Pour compléter ce travail d'ajustement, les logs du bot pourront également être passés au crible du moteur d'auto apprentissage. "Nous conseillons de valider manuellement les nouvelles intentions identifiées par le moteur, et leur relation avec les réponses. C'est important pour éviter les risques de faux positifs", précise Nicolas Chollet.
Toujours dans l'optique d'améliorer la qualité du bot, il peut être envisagé de proposer plusieurs requêtes possibles à l'utilisateur si la question posée ne se révèle pas suffisamment claire. "Si l'utilisateur évoque 'un problème de facture', on pourra lui demander par exemple s'il souhaite consulter son historique de factures ou bien contester une facture reçue", précise Nicolas Chollet. L'option choisie représentera d'ailleurs en elle-même une information qui pourra permettre d'affiner encore la capacité du bot à saisir les subtilités de formulation.