jeudi 20 juillet 2017

Création d'un Bot avec Visual studio 2017 et Microsoft Bot Builder Part 2

Dans cet article nous allons commencer à ajouter un peu d'interactivité à notre dialogue avec le Bot. Comme nous le verrons plus tard, il est possible d'interagir avec LUIS (Language Understanding Intelligent Service) en Natural Language Processing ou l'on va véritablement enclencher des processus d'intelligence artificielle.
Le scénario que nous allons développer va simplement consister à recueillir de l'utilisateur une information par exemple son nom pour le saluer cordialement. Pour rappel, tout dans le Bot SDK est réalisé en utilisant le pattern Await / Async (programmation asynchrone)
En repartant du code précédent, nous allons réécrire la méthode Task MessageReceivedAsync
de la manière suivante :
       private Task MessageReceivedAsync(IDialogContext context, IAwaitable result)
        {
            PromptDialog.Text(context, NameEntered, @"Hello! Comment t'appelles tu?");
            return Task.CompletedTask;
        }
Nous invoquons ici une tache NameEntered qui constitue le CallBack qui sera complétée lorsque l'utilisateur aura répondu en entrant son prénom
Pour répondre à l'utilisateur, nous écrivons la Tache asynchrone : Task NameEntered
      private async Task NameEntered(IDialogContext context, IAwaitable result)
        {
            await context.PostAsync($@"Bonjour {await result}!");
            context.Wait(MessageReceivedAsync);
        }
Le robot répond alors en reformulant le prénom entré par l'utilisateur comme montré ci dessous dans l'émulateur
Cet article nous a permis de poser les prémices de l'interactivité du Bot, nous verrons dans la partie 3 comment mettre en oeuvre des Workflow de communication