LUIS对话框+ Qna Maker主动学习对话框问题

时间:2017-06-21 15:56:01

标签: c# botframework luis

我编写了一个LUIS机器人,它将一些消息转发给Qna制造商对话框,以启用主动学习。 当一个问题返回一个答案时,它可以很好地工作,但是当它检测到多个答案时,它不会发送任何信息,而是执行我的简历功能。

如果我像使用根对话框一样使用我的QnaMaker,这是有效的。

你能帮助我吗?

谢谢

这是我的前锋:

    [LuisIntent("None")]
    [LuisIntent("")]
    public async Task None(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult result)
    {
        //Récupération du message
        var messageToForward = await activity;
        var cts = new CancellationTokenSource();
        var faq = new QnADialogWithOverrides();
        //Transfert du message une fois réponse retournée => AfterFAQDialog
        await context.Forward(faq, AfterFAQDialog, messageToForward, CancellationToken.None);
    }

    private async Task AfterFAQDialog(IDialogContext context, IAwaitable<object> result)
    {
        context.Wait(MessageReceived);
    }

我的Qna Bot:

    [Serializable]
    [QnAMaker("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxx", "I don't understand this right now!", 0.50, 5)]
    public class QnADialogWithOverrides : QnAMakerDialog
    {
    }

结果:

What I have

What I want

1 个答案:

答案 0 :(得分:0)

似乎this condition中的QnAMakerDialog未得到满足,因此对话框is ending via the default message path

奇怪的是,条件表明你没有答案,但根据你的截图,似乎可能不是这样。

我会尝试覆盖RespondFromQnAMakerResultAsync以查看正在发生的事情,因为该方法是负责显示结果的方法(默认情况下,行为仅显示第一个答案,如图所示{ {3}})。

您甚至可以使用here中的QnADialogWithOverrides代码。