【问题标题】:LUIS dialog + Qna Maker Active learning dialog issueLUIS 对话框 + Qna Maker 主动学习对话框问题
【发布时间】:2017-11-24 15:28:34
【问题描述】:

我编写了一个 LUIS 机器人,它将一些消息转发到启用主动学习的 Qna maker 对话框。 当一个问题返回一个答案时,它工作得很好,但是当它检测到多个答案时,它不会发送任何消息,而是执行我的 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
    {
    }

结果:

【问题讨论】:

  • 除非您显示更多代码,否则无法为您提供帮助。请将代码添加到 QnADialogWithOverrides
  • 你的 QnADialogWithOverrides 是空的。可以吗?
  • 是的,我只是使用 Overrides 函数进行调试。主动学习不需要覆盖函数即可工作。

标签: c# botframework azure-language-understanding


【解决方案1】:

似乎来自QnAMakerDialog 的this condition 没有被满足,所以对话框is ending via the default message path。

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

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

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

【讨论】:

  • 我覆盖了RespondFromQnAMakerResultAsync,当用户提出一个有多个答案的问题时,这个函数不会执行。所以,我覆盖了QnAFeedbackStepAsync,但我有一个未捕获的异常:System.MissingMethodException : Method not found: Void Microsoft.Bot.Builder.Dialogs.PromptOptions1..ctor(System.String, System.String, System.String, System.Collections.Generic.IReadOnlyList1&lt;!0&gt;, Int32,
  • 顺便说一句,你确定它会返回多个答案吗?
  • 我更新了我的库,但仍然无法正常工作。是的,我确信它会返回多个答案。当我使用 QnaDialog 作为主对话框时,它会返回多个答案,如您在第二个截图中所见。
  • 除了更新库之外,您的意思是什么? BotBuilder-CognitiveServices 包需要更新到最新的 botbuilder 包。除非您自己编译代码,否则您将无法解决问题。
猜你喜欢
  • 2018-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多