Botframework QnA制造商NoMatch Handeling

Botframework QnA制造商NoMatch Handeling,botframework,qnamaker,Botframework,Qnamaker,我正在寻找捕捉Qna Maker不匹配事件的方法,然后以定制的方式处理它。 我当前的Qna对话框如下所示: [Serializable] public class QnaMakerDialog : QnAMakerDialog { public QnaMakerDialog() : base(new QnAMakerService(new QnAMakerAttribute(<<myQnAAuthKey>>, <<myQnAKnowledgebaseI

我正在寻找捕捉Qna Maker不匹配事件的方法,然后以定制的方式处理它。 我当前的Qna对话框如下所示:

[Serializable]
public class QnaMakerDialog : QnAMakerDialog
{
    public QnaMakerDialog() : base(new QnAMakerService(new QnAMakerAttribute(<<myQnAAuthKey>>, <<myQnAKnowledgebaseId>>, "Answer not found. Please try it again", 0.5, 1, <<myQnAEndpointHostName>>)))
{
}
    protected override async Task RespondFromQnAMakerResultAsync(IDialogContext context, IMessageActivity message, QnAMakerResults result)
{
...
}
}
[可序列化]
公共类QnaMakerDialog:QnaMakerDialog
{
public QnaMakerDialog():base(新的QnAMakerService(新的QnAMakerAttribute(,“找不到答案。请重试”,0.5,1,))
{
}
受保护的重写异步任务RespondFromQnAMakerResultAsync(IDialogContext上下文、IMessageActivity消息、QnAMakerResults结果)
{
...
}
}
当QnA Maker无法找到给定问题的答案时,“不匹配”自定义消息可以正常工作。 但是,我想截取事件,然后在数据库中记录“不匹配”的答案

提前感谢,,
Amintas

您可以使用NoMatchhandler方法进行此操作

 public class BotFrameworkFaQDialog:QnAMakerDialog<object>
{
    public override async Task NoMatchHandler(IDialogContext context, string originalQueryText)
    {
        await context.PostAsync($"Sorry i could't find answer for {originalQueryText} .");
        context.Wait(MessageReceived);
    }
}
public类BotFrameworkFaQDialog:QnAMakerDialog
{
公共重写异步任务NoMatchHandler(IDialogContext上下文,字符串originalQueryText)
{
wait context.PostAsync($“对不起,我找不到{originalQueryText}的答案。”);
Wait(MessageReceived);
}
}

您可以使用NoMatchhandler方法进行此操作

 public class BotFrameworkFaQDialog:QnAMakerDialog<object>
{
    public override async Task NoMatchHandler(IDialogContext context, string originalQueryText)
    {
        await context.PostAsync($"Sorry i could't find answer for {originalQueryText} .");
        context.Wait(MessageReceived);
    }
}
public类BotFrameworkFaQDialog:QnAMakerDialog
{
公共重写异步任务NoMatchHandler(IDialogContext上下文,字符串originalQueryText)
{
wait context.PostAsync($“对不起,我找不到{originalQueryText}的答案。”);
Wait(MessageReceived);
}
}

请使用“代码格式”按钮{}将代码与文本分开。这将使问题更具可读性。可能的重复请使用“代码格式”按钮{}将代码与文本分开。这将使问题更具可读性。NP的可能重复,如果它起作用的话,标记是作为答案的,这样它就可以帮助其他人…很容易,如果它起作用的话,标记是作为答案的,这样它就可以帮助其他人…很容易