QnA Maker NoMatch Handeling

Я ищу способы отловить событие Qna Maker no match, а затем обработать его индивидуально. Мой текущий диалог 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 не может найти ответ на заданный вопрос. Тем не менее, я хотел бы перехватить событие, а затем записать ответ "нет соответствия" в базе данных.

Заранее спасибо, Аминтас

1 ответ

Вы можете использовать метод 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);
    }
}
Другие вопросы по тегам