Comment rendre mon ChatBot plus efficace ?

smartview-comment-rendre-mon-chatbot-plus-efficace
smartview-comment-rendre-mon-chatbot-plus-efficace

Dans un monde numérique en perpétuelle évolution, les ChatBots ont aujourd’hui le vent en poupe. Beaucoup de gens en ont entendu parler, mais il n’est pas évident d’en comprendre les usages et les enjeux. Je vais essayer de vous expliquer comment fonctionne un ChatBot dans les grandes lignes et pourquoi il faut ajouter des éléments externes au ChatBot pour le rendre plus interactif.

Mais au fait, c’est quoi un ChatBot ?

Un ChatBot, c’est un programme informatique (« Bot ») capable de répondre à des questions posées par un utilisateur via une discussion en ligne (« Chat »). L’utilisateur pose ses questions dans le chat en langage naturel (langue parlée par un être humain comme le français ou l’anglais, par opposition au langage informatique) et le ChatBot lui répond dans ce même chat en langage naturel. Le ChatBot n’est pas le chat lui-même, mais le programme informatique qui va analyser la question de l’utilisateur et renvoyer une réponse pertinente dans le chat.

On peut distinguer deux types de Chatbots :

  • Les ChatBots simples : un ChatBot simple est un programme informatique qui va prendre la question de l’utilisateur en donnée entrante, effectuer des traitements relatifs à cette donnée et enfin renvoyer un message à l’utilisateur.
  • Les ChatBots complexes : un ChatBot complexe ne se compose pas que d’un simple programme informatique. Des API tierces (interfaces de programmation) sont ajoutées à ce programme.

Plusieurs exemples courants d’API qui peuvent être intégrées à un ChatBot :  

API de compréhension de langage naturel

C’est selon moi une composante indispensable pour le développement d’un ChatBot. L’idée est simple, l’API fournit une IA (Intelligence Artificielle) à paramétrer qui sera capable de « traduire » une question utilisateur en une « intention » (qui à la fin du processus correspondra à une action du ChatBot) avec un score de probabilité.

L’administrateur de cette IA définit donc une liste « d’intentions ». Il faut ensuite que l’administrateur « entraine » l’IA, c’est-à-dire qu’il doit associer une liste de questions à chaque intention. Cela peut paraitre assez complexe, mais je vais vous donner un exemple pour illustrer le principe.

Imaginons qu’on développe un ChatBot qui donne des informations sur l’agenda de l’utilisateur. L’utilisateur va avoir l’intention de consulter ses rendez-vous du jour. Pour cela il peut avoir une multitude de questions : « Quel est mon programme du jour ? », « Donne-moi mes rendez-vous du jour », « Quels sont mes rendez-vous aujourd’hui ? », etc…

Un ChatBot sans API de compréhension du langage doit gérer par lui-même tous ces cas possibles. L’API permet donc de faire le lien entre les potentielles questions de l’utilisateur et les intentions. L’entrainement de l’IA consiste à lui associer une série de questions « types » pour chaque intention. Dans notre exemple, on affectera ces trois questions à l’intention « Donner agenda du jour ». Si l’utilisateur pose une question qui ressemble à une des questions définies dans l’intention alors l’API répondra avec l’intention et un score de probabilité élevé.

LUIS de Microsoft Cognitive Services

Pour ma part, j’ai utilisé LUIS (Language Understanding Intelligent Service) qui fait partie de Microsoft Cognitive Services, l’ensemble des bibliothèques d’IA de Microsoft. LUIS possède à mon sens plusieurs avantages. Il est simple à paramétrer (définitions d’intentions et « d’utterances » qui correspondent aux questions types). Pour chaque phrase, il renvoie une réponse JSON avec les intentions et leur score. Il fonctionne en mode cloud et ne nécessite aucune installation spécifique. Enfin, dernier avantage et non des moindres, il permet de gérer plusieurs langages naturels comme le français et l’anglais.

API d’affichage spécifique

Selon la question posée par l’utilisateur, on peut imaginer des scénarii de réponse qui ne fonctionnent pas sous la forme d’un texte simple.

Un cas d’usage courant et très simple est une réponse proposant un choix. Le bot doit pouvoir fournir un mécanisme de sélection de valeur afin de guider l’utilisateur. D’autres cas d’utilisation peuvent se présenter : envoi d’un fichier, saisie spécifique.

Ces API sont très utiles, cependant, cela soulève un autre problème. Un ChatBot, à l’instar de tout autre programme informatique, doit être générique. Le ChatBot doit pouvoir être déployé sur plusieurs canaux sans altération des fonctionnalités.

Voici un exemple pour illustrer la problématique. On a un ChatBot qui est déployé sur un WebChat et qu’on peut également utiliser par SMS. Si le ChatBot propose une sélection de valeurs en réponse à une question, l’affichage doit être adapté au canal de diffusion. Dans notre cas on aura par exemple une liste déroulante pour le WebChat et un nombre à saisir pour le SMS (1 : valeur 1, 2 : valeur 2, etc…). J’ai utilisé AdaptiveCard pour le BotFramework de Microsoft. Il possède l’avantage de gérer automatiquement l’affichage selon le canal de communication. Le développeur définit juste une « Card » par exemple de type « Choix » et l’affichage est adapté selon le canal de communication comme décrit dans l’exemple précédent.

Intégration dans des applications tierces

Considérer qu’un ChatBot permet uniquement de répondre à des questions posées par un utilisateur est assez réducteur. Le ChatBot peut également interagir avec des applications tierces (en lecture et en édition). Dans l’exemple des rendez-vous, le ChatBot va aller chercher l’information dans l’outil d’agenda de l’entreprise (lecture de données). Autre exemple, un ChatBot sur un site de vente peut alimenter une base de données (édition) en intégrant des données statistiques (nombre d’interactions du ChatBot, satisfaction de l’utilisateur).

Vous savez maintenant comment fonctionne un ChatBot. Cependant, avant de se lancer, il est essentiel de se poser d’autres questions : Quels sont les cas d’usage ? Quels sont les avantages à utiliser un bot ? Quels sont ses limites ? Comment sécuriser mon ChatBot ? Comment mesurer la valeur ajoutée de mon ChatBot ?

Damien CELLE

Damien CELLE

Consultant Office 365

smartview-comment-rendre-mon-chatbot-plus-efficace

Partager

Un article de

Damien CELLE

Damien CELLE

Consultant Office 365

Envie d'aller plus loin ?