Build 2016 : Building a conversational bot in 60 minutes B821

Comme annoncé lors du premier keynote, Microsoft lance son framework de bot simplement baptisé Microsoft Bot Framework.

Ce framework vous permet de créer un nouveau type d’UI où au lieu d’interagir avec une application avec une interface graphique, vous pouvez directement discuter en langage naturel avec un bot. Vous pouvez penser à un Cortana ou Siri personnalisé et spécialisé et accessible via le channel que vous souhaitez : chat web, slack, sms, mail, skype, etc.

Ainsi au lieu de faire l’effort de traduire ce que vous souhaitez faire en manipulations, vous pouvez directement demander ce que vous souhaitez faire, à charge au bot de répondre à votre demande et de réaliser les actions souhaitées.

L’intelligence du bot ne se situe pas au niveau du Bot Framework qui n’est “qu’” une couche technique, mais vous allez pouvoir utiliser les différentes briques d’IA proposées par Microsoft (ou par d’autres) afin d’apporter cette intelligence. Si vous souhaitez comprendre les phrases formulées naturellement, vous pouvez par exemple utiliser le service Langage Understanding Intelligent Service (LUIS) qui est directement accessible via les API du Bot Framework.

Briques du Bot Framework

Le Bot Framework se compose d’un Bot Builder SDK, qui permet de créer la logique du bot en étant appelé lors de la réception d’un message et en permettant d’y répondre, et ceci “manuellement” ou en utilisant une analogie de formulaire qui permet de décrire les différentes étapes d’une conversation.

Le service Bot Connector reçoit techniquement les messages et envoie les réponses à l’utilisateur, et fournit des services additionnels tels que de la traduction à la volée des messages, ou de la télémétrie.

Ce service reçoit envoie des messages via les différents channels déjà cités précédemment.   

Un bot créé via le Bot Builder SDK est en réalité un endpoint HTTP appelé par le Bot Connector, et qui renvoie des informations au format json à celui-ci.

Cet endpoint doit donc être accessible de manière publique afin d’être appelé par le Bot Connector.

Le développement d’un bot se fait via un template de projet Visual Studio qui vous permet de vous abonner aux différents évènements de réception de messages utilisateurs ou système.

Une API assez simple vous permet de répondre aux messages reçus de l’utilisateur. D’un point de vue débogage il vous ait possible d’utiliser un émulateur qui vous permettra d’interagir avec votre bot sans avoir à le publier et à le configurer.

LUIS

Le service d’interprétation de langage naturel proposé par Microsoft fonctionne selon un principe simple : il faut définir des “intentions” c’est à dire des actions paramétrables que vous souhaitez être capable d’interpréter. Ainsi si vous souhaitez être capable de comprendre que l’utilisateur souhaite “formater un disque dur”, vous pouvez créer une intention décrivant cette demande, et ensuite entrainer le moteur de LUIS afin de lui apprendre à reconnaitre les différentes formulations de cette intention (“formater lecteur C:”, “formater disque D:”, “ressusciter le drive E:”, etc.”).

Cet apprentissage se fait en donnant différents exemples de formulation et en identifiant  les valeurs que vous souhaitez récupérer via la notion d’Entity. Dans notre précèdent exemple, il faudra identifier la lettre du lecteur (C:, D: , etc.) pour que le service LUIS nous renvoie directement cette valeur sans avoir besoin de parser manuellement celle-ci.

Il n’est donc pas utile d’écrire du code pour parvenir à avoir une IA capable d’interpréter du langage naturel, il suffit d’utiliser l’UI de LUIS, puis de consommer le service exposé par LUIS pour ajouter ce type de fonctionnalité dans une application !

Création de “formulaires”

Le Bot Builder SDK permet la création de “formulaires” qui ne sont pas réellement des formulaires mais un template de dialogue. Vous pouvez définir les différentes informations souhaitées (les “contrôles”) sous forme de propriétés, et créer automatiquement une conversation grâce à ce mécanisme :

A noter la possibilité d’ajouter de la validation, et de combiner cela avec LUIS pour toujours bénéficier de la reconnaissance de langage naturel à chaque étape.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *