jeudi 20 juillet 2017

Bot Framework Part 2 - Création d'un Chatbot avec interactivité

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
        {
            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 avec une persistence de contexte d'un dialogue

Cette gestion d'état et de persistence va permettre des interactions beaucoup plus riche avec le Chat Bot.
Vous retrouverez le code de cet exemple à l'adresse : Code Chatbot

Aucun commentaire: