Hvordan kan jeg kalle en ny andre LUIS dialogen i første dialogen LUIS?

stemmer
0

Hy, for min Bot jeg trenger å ringe en annen LUIS dialog eksempel. Men med Forward-funksjonen i første LUIS dialogen bare vanlige dialoger fungere. Hensikten anerkjennelse virker ikke.

Så hvordan kan jeg kalle en ny andre LUIS dialogen i første dialogen LUIS?

MessagesController:

await Conversation.SendAsync(activity, () => new FirstDialogClass());

FirstDialogClass:

[LuisModel(luis, key)]
[Serializable]
public class FirstDialogClass: LuisDialog<object>
{
    [LuisIntent()]
    public async Task None(IDialogContext context, LuisResult result)
    {
        await context.PostAsync(intension first dialog: none);
        // call second luis instance
        await context.Forward(new SecondDialogClass(), CallbackFirstDialog, message, CancellationToken.None);
    }


    [LuisIntent(Greeting)]
    public async Task Hallo(IDialogContext context, LuisResult result)
    {
        await context.PostAsync(intension first dialog: greeting);
        context.Wait(MessageReceived);
    }


    private async Task CallbackFirstDialog(IDialogContext context, IAwaitable<object> result)
    {
        await context.PostAsync(callback first dialog);
        context.Wait(MessageReceived);
    }
}

SecondDialogClass:

[LuisModel(luis, key)]
[Serializable]
public class SecondDialogClass : LuisDialog<object>
{
    [LuisIntent()]
    public async Task None(IDialogContext context, LuisResult result)
    {
        await context.PostAsync(intension second dialog: none);
        context.Done(new Object());
    }


    [LuisIntent(Alphabet)]
    public async Task Alphabet(IDialogContext context, LuisResult result)
    {
        await context.PostAsync(intension second dialog: alphabet);
        context.Done(new Object());
    }
}
Publisert på 24/03/2017 klokken 20:20
kilden bruker
På andre språk...                            


1 svar

stemmer
2

Jeg har funnet en løsning selv.

[LuisIntent("")]
public async Task None(IDialogContext context, LuisResult result)
{
    await context.PostAsync("intension first dialog: none");
    // call second luis instance
    var message = context.MakeMessage();    // create a message
    message.Text = "abc";   // alphabet intension is called
    await context.Forward(new SecondDialogClass(), CallbackFirstDialog, message, CancellationToken.None);
}
Svarte 24/03/2017 kl. 20:56
kilden bruker

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