Notre article aujourd’hui est un entretien avec François Falala-Séchet, cofondateur de Clevy.io, une start-up de création de chatbots. J’ai eu l’occasion de travailler pour eux pour créer un petit jeu sous forme de chatbot, pour leur nouvel outil open-source, CSML ; c’est aussi une bonne occasion pour nous de voir un autre aspect, plus orienté entreprises, de l’utilisation des chatbots. Je recommande aussi leur blog, très intéressant si vous vous intéressez aux chatbots !

Bonjour François ! Tout d’abord, peux-tu te présenter et dire quelques mots sur ta start-up Clevy ?

Je suis le directeur technique et cofondateur de Clevy, une start-up parisienne dont l’objectif est de rendre accessible à quiconque la création et la gestion de chatbots. Clevy édite plusieurs logiciels permettant d’automatiser la réponse aux questions récurrentes en langage naturel, ou bien d’automatiser des processus ou des actions courantes en simplifiant leur traitement, ou encore l’analyse du langage pour extraire le sens des phrases.

C’est un sujet à la croisée de plusieurs domaines très intéressants : on y trouve beaucoup de problématiques de data science (avec des algorithmes de machine learning et de deep learning), d’ingénierie logicielle, de linguistique, de design, d’expérience utilisateur… Cela nécessite également beaucoup de créativité et d’imagination car un bon chatbot n’est finalement pas qu’une solution logicielle mais aussi une réelle expérience pour l’utilisateur qu’on doit guider dans la conversation le plus naturellement possible.

En quoi est-ce que les chatbots intéressent les entreprises ?

À de rares exceptions près qui ne font que converser pour le simple plaisir de converser (on peut citer par exemple les expériences de Replika ou de Hugging Face récemment), les chatbots ont très souvent un objectif de rendement : ils servent à guider l’utilisateur jusqu’à l’achat d’un produit, à conseiller, à orienter, à enregistrer des informations, et à répondre à des questions fréquentes. Le but est de traiter un important pourcentage des requêtes de support client, et trier ou pré-qualifier celles où un opérateur humain reste nécessaire ; le support client est déchargé des demandes récurrentes, répétitives et sans grande valeur ajoutée… C’est un moyen à la fois d’économiser sur des postes de coûts et d’optimiser des revenus : naturellement les entreprises sont très intéressées !

Mais c’est aussi une innovation visible, qui suit un nouveau paradigme d’expérience utilisateur. Tout le monde s’est habitué à utiliser des interfaces de chat (SMS, Messenger, WhatsApp, Discord, Telegram, et même en entreprise avec Slack, Skype for Business, MS Teams, Workplace…), ce qui rend l’adoption d’un chatbot vraiment simple : il n’y a pas vraiment de courbe d’apprentissage, tout le monde va naturellement pouvoir s’en servir. C’est même une attente forte des utilisateurs, qui peuvent ainsi se débrouiller en autonomie quelle que soit l’heure du jour ou de la nuit sans avoir à contacter un service client au téléphone.

Avez-vous des créateurs de chatbots chez vous, ou est-ce que c’est à l’entreprise de vous fournir un cahier des charges ou une arborescence ?

Nos outils doivent tous pouvoir être utilisés sans notre intervention, même si nous sommes à disposition de nos clients pour les accompagner, et que nous les aidons toujours dans les phases initiales de leur projet de chatbot avec une méthodologie de déploiement bien rodée. Certains de nos outils sont destinés à un public non technique mais avec des fonctionnalités plus limitées (créer et gérer des FAQ par exemple), d’autres à des développeurs pour pouvoir réaliser des scénarios plus complexes et s’interfacer avec d’autres logiciels ; et nous proposons aussi des passerelles entre les deux pour pouvoir couvrir l’intégralité des besoins de nos clients.

Nous travaillons avec un réseau de développeurs indépendants, d’agences et d’intégrateurs, qui vont ensuite aider nos clients à réaliser le chatbot qui répond le mieux à leur besoin. Il nous arrive également de répondre à certaines demandes personnalisées nous-mêmes, mais l’idéal est d’y répondre par des fonctionnalités ajoutées à nos outils et rendues disponibles à tous nos clients, afin de capitaliser sur tous nos développements.

En interne, nous organisons également un « botathon » mensuel pour nos employés, qui travaillent en binôme (au hasard) sur un chatbot sur un sujet de leur choix, avec comme critères d’évaluation le design de la conversation, les intégrations proposées, l’intérêt business, et tout simplement le « fun » du chatbot. En plus de récupérer des retours et des idées (et parfois des bugs), on fait travailler ensemble des gens qui ne travaillent pas forcément ensemble habituellement ; le moment de la présentation est toujours drôle et bon enfant, le meilleur projet gagne un cadeau, bref c’est un bon moment chez nous.

Peux-tu nous en dire plus sur votre langage CSML, qui est sorti il y a quelques jours en grande pompe ?

Développer un chatbot riche reste aujourd’hui un processus long et coûteux. Quel que soit le prestataire ou la technologie choisis, il n’y a aujourd’hui que 2 façons de faire un chatbot. La première est de le réaliser avec une interface graphique, qui peut être prise en main par quelqu’un pas forcément technique, mais très vite limitée pour créer des arbres de décision complexes, pour travailler en équipe ou pour créer des scénarios vraiment ambitieux utilisés par des millions de personnes. La deuxième est de faire intervenir une équipe de développeurs qui vont créer le chatbot tout comme on crée un site web, avec le même genre de technologies et de contraintes projets, et les lenteurs, coûts et complexités habituelles.

Notre but est de créer une troisième façon de faire, un outil spécialisé mais qui aurait la souplesse et la puissance d’un langage de programmation. Historiquement, les langages et frameworks qui sont populaires sont ceux qui gèrent silencieusement des problèmes complexes spécifiques : on n’écrit pas aujourd’hui de site web en C, mais en JavaScript ou en Swift, plus spécialisés et qui s’occupent des détails techniques (type, mémoire, réseau, etc.) à votre place. Or, les chatbots sont une classe d’applications à part entière, qui répondent tous à peu près aux mêmes règles et besoins.

Nous avons donc créé un nouveau langage de programmation, le CSML (Conversational Standard Meta Language) à destination des personnes désirant créer des chatbots. L’objectif de ce langage est d’abstraire toute la complexité de création d’arbres de décision complexes avec une syntaxe la plus intuitive possible, et qui se base sur les principes linguistiques qui régissent toute conversation humaine : le contexte, la mémoire, les sujets de discussion, les dialogues… Nous avons travaillé à ce projet pendant plus d’un an et nous venons de le lancer en open beta ces derniers jours. Le développement se poursuit bien entendu et nous attendons beaucoup des retours des utilisateurs pour le faire évoluer !

Exemple de code CSML

Quelles fonctionnalités est-ce que le langage offre à un concepteur de chatbot ?

Tout d’abord, le langage est conçu avant tout pour gérer des conversations : on peut passer d’un sujet à un autre, d’une étape à une autre, et on alterne entre inputs de l’utilisateur et le bot. Le langage permet au bot de mémoriser des variables suivant ce que l’utilisateur dit, et d’injecter des variables contextuelles en fonction de ce qu’on connaît déjà de l’utilisateur au début de la conversation (son nom d’utilisateur, son adresse mail, sa localisation, etc.).

Le langage soulage le développeur le plus possible de toute complexité en gérant automatiquement des concepts comme le type de variable, en donnant des inputs utilisateurs qui ne dépendent pas de la méthode de saisie (bouton ou clavier), et en embarquant de nombreuses fonctions dédiées pour faciliter des actions courantes (nombres aléatoires, mélanger une liste…).

Une des fonctionnalités les plus importantes, car elle ouvre des possibilités immenses, est de pouvoir intégrer dans le CSML directement des fonctions tierces dans n’importe quel langage de programmation (JavaScript, Python, Go, Ruby…). Il est ainsi facile de réutiliser des bouts de code préexistant sans impact sur le design conversationnel, et de pouvoir s’intégrer avec virtuellement n’importe quel système tiers. Cette fonctionnalité est extrêmement importante pour tous nos clients qui disposent déjà de leurs propres développeurs et de bibliothèques de code déjà écrit, et ont naturellement besoin d’intégrer leur chatbot avec leurs logiciels internes.

Comment gérez-vous l’input de l’utilisateur ? Y a-t-il un prétraitement, des possibilités de reformuler ? Est-on proche de pouvoir recréer ELIZA ?

Le CSML se place un niveau au-dessus des bibliothèques de traitement automatisé du langage naturel (NLP) en ne se focalisant non pas sur une seule phrase et son sens individuel, mais bien sur l’orchestration de l’intégralité de la conversation. Chaque entrée utilisateur est traitée comme un événement indépendant. Le moteur s’occupe de transformer toute requête (même des boutons à choix multiples) en texte ; on peut ensuite potentiellement envoyer l’input utilisateur pour analyse dans un système tiers de NLP. Si l’input ne correspond pas aux attentes, le CSML permet de demander de reformuler, ou de préciser la demande. Le moteur recontextualise aussi la requête pour que l’utilisateur se retrouve au bon endroit de la conversation, avec les bonnes variables en mémoire ; on peut alors se concentrer sur le traitement de la requête et les embranchements.

Il est bien sûr tout à fait possible de recréer ELIZA en CSML — d’ailleurs nous le ferons probablement un de ces jours car il s’agit d’un cas d’école de construction de conversation, et cela répondrait à cette question qui revient souvent !

Est-ce que ce langage est réservé à une utilisation professionnelle ? Ou est-ce que vous envisagez des applications vidéoludiques ?

Cela serait considérer que les créateurs de jeux vidéo ne sont pas professionnels… Blague à part : d’une, nous avons créé ce langage spécifiquement pour réduire le coût/la difficulté de créer des interfaces conversationnelles, donc rendre cela plus accessible, y compris pour une pratique amateur ou à des toutes petites entreprises ; et de deux, le CSML tire une partie de son inspiration de solutions dédiées à l’écriture de scripts de films, et il est assez proche dans l’esprit de quelques moteurs de dialogues existants. [NDLR: personnellement je le trouve assez proche de ink !]

Je crois que la conversation est un médium très intéressant pour faire vivre des expériences riches. L’Homme est un être social, qui a besoin de communiquer et de partager des émotions, donc il me semble normal que des jeux, textuels ou non, basés sur la conversation, puissent faire vivre de belles expériences aux joueurs. C’est aux créateurs de jeux de nous montrer leur imagination ! Et nous pensons que notre langage, qui est aujourd’hui en accès libre et open source, permet d’effacer toute barrière technique à la création de chatbots performants et intéressants. Je serais en tout cas très heureux de voir fleurir tout plein de jeux conversationnels réalisés avec notre langage !