QnA Maker NoMatch处理

时间:2018-06-29 18:17:19

标签: botframework qnamaker

我正在寻找捕获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无法找到给定问题的答案时,“不匹配”自定义消息会正常工作。 但是,我想拦截该事件,然后将“不匹配”的答案记录在数据库中。

预先感谢, Amintas

1 个答案:

答案 0 :(得分: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);
    }
}