我编写了一个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
{
}
结果:
答案 0 :(得分:0)
似乎this condition中的QnAMakerDialog未得到满足,因此对话框is ending via the default message path。
奇怪的是,条件表明你没有答案,但根据你的截图,似乎可能不是这样。
我会尝试覆盖RespondFromQnAMakerResultAsync
以查看正在发生的事情,因为该方法是负责显示结果的方法(默认情况下,行为仅显示第一个答案,如图所示{ {3}})。
您甚至可以使用here中的QnADialogWithOverrides
代码。