Nouvelles Chroniques d'Amethyste

Penser au Sens, pas au Verbe


Poster un commentaire

Tutoriel LUIS

Cela fait déjà plusieurs articles consacrés aux bots. Celui-ci est un peu particulier car il ne se consacre pas tant aux bots eux-même, qu’aux moyens de leurs donner des capacités d’interagir avec nous même un peu moins mécaniques.

 

Je ne suis pas fan du terme « intelligence artificielle ». Je ne vois pas clairement ce qu’il signifie. Je vais plutôt dire que l’enjeu de cet article sera de rapprocher le modèle d’interaction des bots avec ceux auxquels nous sommes plus habitués.

Jusqu’à présent nos bots ne réagissaient qu’à des commandes, a nous de deviner et retenir lesquelles. Par exemple « hello » est une phrase de salutation, mais pas « alors vieille branche? » parce que « hello » et « salut » sont les seuls termes reconnus par une expression régulière.

 

Depuis pas mal d’années Microsoft Research travaille sur ce genre de sujets et en particulier le projet Oxford qui est le nom de code d’un ensemble d’outils capables de mettre entre des mains (pas trop expertes) des outils de simulation de capacité cognitives très sophistiquées. Maintenant on parle plutôt de Microsoft Cognitive Services.

C’est par exemple de ce projet qu’est issue le moteur de recherche Bing.

 

Une vingtaine de services sont proposés aux développeurs:

https://www.microsoft.com/cognitive-services/en-us/apis

Ils sont classés en 5 catégories:

  1. Vision
  2. Speech
  3. Language
  4. Knowledge
  5. Search

Chaque catégorie regroupe actuellement 4 ou 5 services.

 

Pour nous il s’agit d’un jeu d’API prêtes à être exploitées par nos applications. Dans les coulisses s’active une Machine Learning. Qui dit ML, dit aussi phase d’apprentissage. C’est un point qui peut sembler déroutant. La plupart des API que nous rencontrons sont prêtes à l’emploi. Cette fois on devra l’entraîner.

Heureusement toutes ces API proposent des services intégrés préconfigurés qui correspondent à des situations prêtes à l’emploi. Le travail d’apprentissage sera donc limité.

Je vous propose de faire la connaissance de LUIS (Language Understanding Intelligence Service).

Dans ce premier article, je ne vais parler que de LUIS. L’article suivant montrera comment intégrer LUIS dans un bot. Un bot car c’est le thème de cette série d’articles. Mais n’importe quelle application fait aussi l’affaire.

 

Edit 12/03: Le sujet est encore très chaud. Comme vous le constaterez, depuis que j’ai rédigé ce tuto, les écrans on pas mal changés

 

Lire la suite

Publicités


Poster un commentaire

Chaîner les dialogues dans un bot

On a vu plusieurs techniques pour créer des conversations et des dialogues. Celle qui fait l’objet de ce chapitre se situe juste après IDialog en terme de sophistication.

Il s’agit d’une interface fluent organisée à partir de la classe Chain qui propose de construire une conversation complète avec des outils d’interaction, de sélection de chemin, gestion d’exceptions…

Je vais appeler cette interface, interface de chaînage.

 

Avant de continuer ce serait bien de lire les articles qui précèdent et en particulier:

https://amethyste16.wordpress.com/2017/01/29/creer-un-dialogue-avec-les-formflow/

Et surtout:

https://amethyste16.wordpress.com/2017/01/26/un-vrai-dialogue-avec-un-bot/#more-8176

Lire la suite


3 Commentaires

Créer un dialogue avec les FormFlow

Nous avons vu une première façon de créer des dialogues:

https://amethyste16.wordpress.com/2017/01/26/un-vrai-dialogue-avec-un-bot/

Cette méthode nous a permis de poser quelques bases importantes que nous allons réutiliser. Mais elle souffre d’une certaine complexité dans certains scénarios.

On va présenter une solution qui simplifie de façon radicale le code: les FormFlow. Les FormFlow sont une collection de formulaires qui seront traités dans le cadre d’un dialogue.

Leur usage est très simple, nous n’avons besoin que de créer un objet POCO!

Lire la suite


Poster un commentaire

Améliorer ses dialogues de bot avec les PromptDialog

L’article précédent a permis de développer une première façon de créer des dialogues avec un bot. Je présenterai d’autres techniques plus tard. Pour l’instant on va fignoler les détails.

Par exemple comment sélectionner un fichier ou une option parmi une liste? Comment faire un choix?

Les PromptDialog vont nous apporter cette possibilité de façon très simple.

Lire la suite


Poster un commentaire

Un vrai dialogue avec un bot

Maintenant nous avons en main tous les outils pour construire une vraie interaction entre le bot et nous.

Il existe plusieurs méthodes, je vais commencerai par la plus sophistiquée, mais c’est celle qui mettra le mieux en évidence ce qui se passe sans que la technique masque tout.

Avant de poursuivre cet article, soyez certain de lire celui-ci auparavant:

https://amethyste16.wordpress.com/2017/01/25/sauvegarde-des-etats-par-un-bot/

Lire la suite


Poster un commentaire

Sauvegarde des états dans un bot

La sauvegarde des états est une des fonctions clefs d’un bot. Un bot bien conçu doit:

  • Rendre le service web sans états (stateless)
  • Garder une trace du contexte de la conversation

Ce n’est pas le service qui gère cela, c’est le bot. Tous les bots proposent ce genre de service.

 

Dire que l’on sauvegarde est une chose, mais encore faut t’il préciser la portée et la durée de vie de la sauvegarde.

Si par exemple vous avez besoin d’une portée qui s’étend au delà du bot on peut envisager une sauvegarde en base de données.

Le Framework ne propose aucun support particulier pour la sauvegarde en base de données. On le fait avec du code absolument standard. Je n’aborderai donc pas la question ici.

Les paramètres clefs d’une conversation sont les suivants:

  • Utilisateur
  • Conversation

Les combinaisons de ces éléments définissent autant de portées locales que l’on peut exploiter dans notre code. Il y en a donc 3:

  1. Utilisateur
  2. Conversation
  3. Utilisateur + Conversation

Il existe par contre un support pour ces portées dans le SDK que nous allons explorer dans cet article.

La compréhension de la sauvegarde des états est important car c’est cela qui permet de maintenir une conversation plus sophistiquées qu’une simple Question/Réponse.

 

Avant de lire la suite (re)lisez ceci:

https://amethyste16.wordpress.com/2017/01/22/mon-premier-bots/

Lire la suite


Poster un commentaire

Mon premier bot

En ce moment je m’intéresse beaucoup aux Cognitive Services de Microsoft et bien entendu aux bots. Je vais essayer de faire une série d’articles sur ce thème afin de partager mes découvertes.

Dans ce premier article il ne s’agira que de bots, j’intègrerai des services cognitifs comme LUIS dans un prochain article.

On va donc construire un bot style « hello world« , mais suffisant pour poser quelques bases et comprendre l’architecture générale.

On fera quelques expériences puis on le déploiera sur Azure afin de le tester avec d’autres canaux, Skype en l’occurrence.

Lire la suite