Как мога да извикам нов втори диалогов прозорец LUIS в първия диалогов прозорец LUIS?

Хей, за моя бот трябва да извикам втори диалогов прозорец на LUIS. Но с функцията Напред в първия диалогов прозорец LUIS работят само нормални диалози. Разпознаването на намерението не работи.

И така, как мога да извикам нов втори диалогов прозорец LUIS в първия диалогов прозорец 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());
    }
}

person Robert    schedule 24.03.2017    source източник
comment
Моля, споменете изключението какво сте получили след извикване на втория диалогов прозорец.   -  person OmG    schedule 24.03.2017
comment
Няма изключение. Не извиква функцията за намерение. Открих моя проблем. (виж отговора)   -  person Robert    schedule 24.03.2017


Отговори (1)


Сам намерих решение.

[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);
}
person Robert    schedule 24.03.2017