0

我正在寻找方法来捕获 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)
{
...
}
}

当 QnA Maker 无法找到给定问题的答案时,不匹配自定义消息可以正常工作。但是,我想拦截该事件,然后在数据库中记录“不匹配”的答案。

提前致谢, 阿明塔斯

4

1 回答 1

2

您可以为此使用 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);
    }
}
于 2018-07-02T13:29:02.790 回答