Be brukeren om en streng i dialog barn i bot

stemmer
1

Jeg er for tiden å spille rundt med Bots og LUIS. Så jeg har en løpende Bot. I min RootDialog, jeg håndtere alle intents som jeg får fra LUIS. Nå ønsker jeg å sjekke om en enhet mangler for en hensikt.

 if (result.Entities.Count == 0) {
 var ct = new CancellationToken();
 await context.Forward(new ParameterDialog(), ResumeAfterParameterDialog, message, ct);

Hvis det ikke er Entity Jeg oppretter en ny dialogboks barn.

public class ParameterDialog : IDialog<object> {
        public async Task StartAsync(IDialogContext context) {
            context.Wait(MessageReceivedAsync);
    }



    public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument) {

        argument = new PromptDialog.PromptString(Please enter a parameter, please try again, 2);

        var prompt = await argument;

        await context.PostAsync($Your Parameter is: {prompt});
        context.Done(prompt);
    }             
}

Hvis jeg kunne få brukerundersøkelser Jeg vil deretter sende den tilbake til min dialog forelder.

Nå vet jeg ikke helt vet hvordan jeg kan stoppe Bot og la den vente på brukerundersøkelser. Kan noen vennligst forklare hvordan jeg kan oppnå det? Takk skal du ha!

Publisert på 18/11/2016 klokken 15:55
kilden bruker
På andre språk...                            


1 svar

stemmer
3

Du mangler en context.Callav lede dialogen du oppretter.

Den context.Callmetoden forventer en dialog og en 'tilbakeringing' -metoden (ResumeAfter) som vil bli kalt når dialogen er ferdig (i dette tilfellet, når ledefullfører).

I scenario koden din skal se ut:

public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument) 
{
   var dialog = new PromptDialog.PromptString("Please enter a parameter", "please try again", 2);

   context.Call(dialog, ResumeAfterPrompt)
}

private Task ResumeAfterPrompt(IDialogContext context, IAwaitable<string> result)
{
    var parameter = await result;
    context.Done(parameter);
}
Svarte 18/11/2016 kl. 16:09
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more