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
代码。
我编写了一个 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
代码。