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

LUIS dialog + Qna Maker Active learning dialog issue

我编写了一个 LUIS 机器人,它将一些消息转发到 Qna maker 对话框,从而实现主动学习。 当一个问题 return 一个单一的答案时,它工作得很好,但是当它检测到多个答案时,它不会发送任何消息,而是执行我的 Resume func。

如果我像根对话框一样使用 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 机器人:

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

结果:

好像this condition from the QnAMakerDialog is not being met and so the dialog is ending via the default message path.

虽然奇怪,条件表明您没有答案,但根据您的屏幕截图,情况似乎并非如此。

我会尝试覆盖 RespondFromQnAMakerResultAsync 以查看发生了什么,因为该方法是负责显示结果的方法(默认情况下,该行为仅显示第一个答案,因为见过 here).

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