Que voit IRMA dans cette photo? by VISEO
LinkedIn Google Plus Twitter Email

Chatbot: Comment IRMA, notre assistant conversationnel Open Source, est-il développé?

Klervi, Développeur VISEO Innovation, nous parle en détails du prototype IRMA
09 Mai 2017

Découvrez IRMA, le chatbot intelligent développé par notre équipe innovation.Pourquoi est-il Open Source? Comment est-il développé?

Réalisé par VISEO en février 2017, IRMA est un assistant conversationnel qui vise à démontrer l’usage des services de reconnaissance d’image. Branché aux différentes API de Cognitives Services, le chatbot a été présenté aux salons DevoxxFR et Leaders dans le cadre du partenariat entre VISEO et Microsoft.

Un chatbot «intelligent»…

Un chatbot, ou agent conversationnel, pour rappel, est un programme dont le but est d’entretenir une conversation avec un utilisateur. Ils sont de plus en plus nombreux sur les plateformes de messagerie instantanées, mais aussi directement sur les sites web pour donner des informations précises (horaires de train ou support client, par exemple).

Alors que les sujets qui touchent à l’intelligence artificielle affluent en ce début d’année, les chatbots reviennent sur le devant de la scène. Liés de très près aux problématiques de reconnaissance du langage naturel, ils se font une nouvelle peau depuis l’explosion de l’apprentissage par réseaux de neurones.

Cette année, à Devoxx France, Microsoft affiche en grandes lettres : « Démocratiser l’intelligence artificielle ». Quelques jours après l’annonce du regroupement de Bing et Cortana au sein d’une nouvelle unité de recherche et d’accélération de l’évolution de l’intelligence artificielle, Microsoft présente aux développeurs ses solutions Big Data et AI.

VISEO était présent sur le stand en tant que partenaire pour mettre en lumière, à travers un nouveau chatbot, les possibilités offertes par les API Cognitives Services. Ainsi, après Polux, l’équipe Innovation présente IRMA, an Image Recognition Magic App, capable de donner, à partir d’une image, une phrase de description ou des informations sur les personnes qui la composent (genre, nom, âge, émotion, lunettes, pilosité faciale…).

 Ici, IRMA précise qu’il y a 4 personnes inconnues de ses données. Le bot ne demandera pourtant que deux noms, puisque Michelle et Malia Obama ont été reconnues par l’API. Barack Hussein Obama sera créé  et ajouté au groupe de personnes. Natasha Obama sera ignorée.

... Fondé sur des technologies Open Source

Hébergé sur Azure, IRMA est développé en NodeJS et utilise le framework Microsoft Bot Builder pour communiquer, entre autres, avec Facebook Messenger. Afin de faciliter la conception du chatbot et de séparer les problématiques techniques et fonctionnelles, VISEO a mis en place son propre framework opensource au dessus de Microsoft Bot Builder. Celui-ci permet de visualiser le flow de conversation dans une interface graphique, Node-Red, développée par IBM.

VISEO n’a pas vocation à devenir éditeur de logiciels, c’est pourquoi le framework est opensource. Face à des technologies en constante évolution comme les chatbots, le groupe accompagne ses clients sur l’expérience utilisateur avec les agents conversationnels. Très présente sur GitHub, la BU Innovation de VISEO a déjà publié de nombreuses briques qui constituent une surcouche à Node-Red. Toutes ces briques sont documentées et régulièrement mises à jour. La naissance d’IRMA a permis d’ajouter au panel existant de nouveaux nœuds qui exploitent les API Cognitives Services via des requêtes REST. Ce sont ces nœuds, liés à Face (analyse et reconnaissance des visages), Computer Vision (analyse du contenu de l’image) ou Luis (analyse du langage naturel) qui constituent l’intelligence du chatbot.

Dans le cas d’IRMA, lorsqu’un utilisateur envoie un message, ce dernier est envoyé de Messenger à Microsoft Bot Framework, puis au serveur, et suit le chemin qui lui est assigné au travers des briques. Ainsi, le bot identifie chaque information reçue en entrée (input) et effectue l’action liée à l’intention détectée.

Une brique est constituée d’au moins un fichier HTML et un fichier JS du même nom. Toutes les briques créées sont ajoutées à l’interface par le biais d’un fichier package.json.

Par exemple, pour une brique simple comme la création d’un groupe de personnes, on a un fichier node-irma-groups-create-group.js et un fichier node-irma-groups-create-group.html. Une ligne dans le fichier package.json précise l’intégration de la brique à l’interface.

node-irma-groups-create-group.html

Ici, le premier bloc correspond à l’affichage de la brique dans l’interface de Node-Red, le second aux affichages des champs à remplir par l’utilisateur et le troisième à la courte description de la brique dans la rubrique « info » de l’interface de Node-Red

Une fois la brique importée dans Node-Red, elle apparaît dans le panel et peut être paramétrée. Ces paramètres seront ensuite utilisés dans le fichier .JS associé.

node-irma-groups-create-group.js

Dans ce fichier, on exporte le module de création de nœuds de Node-Red, et on implémente nos fonctions. A chaque fois qu’un message (data) entrera dans le nœud, la fonction input est appelée avec le nœud, le message et la configuration en paramètres. Pour que le message ressorte de la brique, on appelle node.send(data) à la fin du traitement

Dans ce cas précis, on a juste codé une fonction qui lance une requête ‘PUT’ à l’API Face de Microsoft. La réponse, enregistrée dans un fichier JSON, n’est pas exploitée ici. Dans d’autres nœuds qui contiennent des requête ‘GET’ ou ‘POST’, les informations du fichier retourné (JSON) sont directement exploitées.

Discutez sur Facebook Messenger!

Pour discuter avec IRMA, rien de plus simple ! Vous pouvez contacter sa page «Madame IRMA» sur Facebook, y accéder depuis l’adresse http://irma.viseo.io ou encore scanner* le code ci-dessous via l’application Messenger!

IRMA prend en charge les photos de vous, de célébrités ou de scène, et peut comprendre les questions liées au port de lunettes, à la pilosité faciale, à l’âge ou aux émotions. Inutile de discuter géopolitique avec IRMA, elle n’a pas été créée pour ça!

* Pour scanner un symbole sur l’application mobile Messenger, rendez-vous sur le symbole , cliquer sur votre propre code et sélectionner «scanner le code».

 

A lire aussi:

IRMA, le chatbot Facebook Messenger de VISEO