Botfuel Dialog : un SDK Node.js open-source pour construire des chatbots plus conversationnels

Par:
fredericmazue

mar, 09/01/2018 - 15:14

Depuis début 2016, Botfuel développe un SDK Node.js de développement de chatbots : Botfuel Dialog. Aujourd'hui open-source, ce SDK permet aux développeurs de construire facilement des chatbots conversationnels.

Pour un chatbot, être conversationnel signifie tout d'abord, comprendre correctement plusieurs intentions à la fois. En effet, les individus expriment souvent plusieurs intentions dans une même phrase. Par exemple :

Bot : Votre billet d'avion est dans votre panier.
Utilisateur : Merci, maintenant je voudrais réserver une chambre d'hôtel.

Être conversationnel c'est aussi pouvoir identifier les digressions et y remédier. Lorsque quelque chose vient à l'esprit d'un personne, il est naturel de l'aborder immédiatement :
Bot : Quand partez-vous pour Londres ?
Utilisateur : Le bagage supplémentaire est-il compris dans le prix du billet ?
Bot : Oui jusqu'à 20kg. Quand partez-vous ?

Enfin un chatbot conversationnel doit pouvoir répondre aux changements de manière habile. Les gens font des erreurs ou changent d'avis. Les bots doivent savoir réagir à l'inattendu :
Bot :  Quand partez-vous pour Londres ? 
Utilisateur : J'ai fait une erreur, je prendrai l'avion pour Liverpool finalement.
Bot : Ok. Quand partez-vous pour Liverpool ? 

Le développement professionnel de chatbots, selon Botfuel, doit suivre les meilleures pratiques de développement, déjà courantes lorsqu'on implémente des applications web ou mobiles sérieuses.  En conséquence: 

  • Les développeurs, et non les responsables marketing, doivent être responsables de leur mise en oeuvre effective.
  • Alors que la plupart des plateformes de création de chatbots visent à simplifier le plus possible le développement de chatbots, d'après Botfuel, les développeurs méritent un framework puissant et flexible leur permettant de développer des chatbots robustes et élaborés.
  • Enfin, avoir recours au code pour développer des chatbots est ce qui permet de mener des projets ambitieux, où les équipes peuvent collaborer efficacement, versionner les chatbots, partager et tester, pour citer quelques-unes des fonctionnalités qui ne sont généralement pas disponibles sur les plateformes de création de chatbots purement Saas.

Botfuel Dialog : la vision Node.js

Les chatbots sont de plus en plus répandus, beaucoup de développeurs qui développent des applications web et mobiles, vont s'intéresser au développement de chatbots. Ainsi, le choix de Node.js pour le développement du SDK étai t évident. En effet, la communauté Node.js est la plus large et celle dont la croissance est la plus importante.

Model-View-Controller

Botfuel ayant développé de nombreux bots pour des entreprises, l'équipe a constaté que l'organisation du code est l'un des principaux défis du développement d'un bot. Le modèle Model-View-Controller ou MVC est une solution adaptée pour structurer une application web en mode client-serveur, pas si différente d'un chatbot. 

Grâce au SDK Botfuel, le chatbot est constitué de « dialogs » (ou contrôleurs selon le MVC), « views » (aussi appelés views dans le MVC) et « brain » (modèle dans le MVC).

Convention plutôt que configuration

Botfuel s'est inspirée de Ruby on Rails sur bien des aspects et la notion de « sensible defaults » (ou code par convention) en est un. L'équipe Botfuel veut permettre à un développeur de créer des bots simple s pour u n développeur tout en le/la laissant configurer presque tout lorsque cela est nécessaire.

Views and React.js

Botfuel utilise beaucoup React.js pour construire des interfaces web. Lorsque les équipes ont dû concevoir une couche de génération de messages pour le SDK Botfuel, elles ont pris conscience que la vue dans un modèle M VC n'en était pas si éloignée. C'est ainsi que Botfuel a été inspirée par React.js : une approche fondée sur du code.

Botfuel collabore avec de nombreux clients dans le domaine du e-commerce, des services, de la banque et assurance.. Botfuel Dialog a été créé pour répondre aux exigences de ces entreprises, notamment : 

  • Testabilité

Personne ne viendrait contredire que le test est primordial lorsqu'il s'agit de développement logiciel. En quoi les chatbots seraient-ils différents ? Botfuel a donc gardé ce principe en mémoire lors du développement de Botfuel Dialog, qui est accompagné d'un framework de tests permettant le développement rapide de différents types de tests.

  • Internationalisation

Les chatbots efficaces sont le plus souvent déployés en différentes langues. Le framework Botfuel rend facile l'adaptation d'un chatbot dans une autre langue sans avoir à le re-développer depuis le début.

  • Scalabilité

Être capable de gérer des centaines de milliers de requêtes simultanées est obligatoire lorsqu'un chatbot est utilisé par des millions d'utilisateurs. L'architecture d'un bot devrait permettre une scalabilité horizontale tout en maintenant une cohérence des données.

  • Evolutivité

Les clients business font face à des contraintes technologiques et souhaitent éviter le « vendor lock in » ou enfermement propriétaire. En proposant un framework open-source, Botfuel permet aux entreprises de maîtriser l'évolutivité de leur solution de développement de chatbots. Botfuel Dialog n'ajoute aucune nouvelle contrainte concernant l'hébergement ou les logiciels tiers utilisés par le bot 

Botfuel Dialog est disponible sur GitHub et est accompagné de plusieurs exemples qui ont pour v ocation d'illustrer comment l'utiliser dans différents cas d'usages : Ecommerce , Complex Entities, Qna, Starter, Complex Dialog.