Я пытаюсь создать намерение FAQ, которое действует как диалог QnA, который должен повторно спрашивать пользователя после входа в намерение.
Ниже мой код для интеграции luis и QnA:
[LuisIntent("FAQ")]
public async Task FAQ(IDialogContext context, LuisResult result)
{
await context.PostAsync("FAQ");
await context.Forward(new QnADialog(), ResumeAfterQnA, context.Activity, CancellationToken.None);
}
private async Task ResumeAfterQnA(IDialogContext context, IAwaitable<object> result)
{
await context.PostAsync("Back to Intent");
context.Wait(MessageReceived);
}
В диалоге QnA:
[Serializable]
[QnAMakerService("endpoint", "knowledge base id", "subscription key")]
public class QnADialog : QnAMakerDialog<object>
{
public bool flag = false;
public override async Task DefaultMatchHandler(IDialogContext context, string originalQueryText, QnAMakerResult result)
{
if (result.Answers.Length > 0 && result.Answers.FirstOrDefault().Score > 0.75 && flag)
{
await context.PostAsync(result.Answers.FirstOrDefault().Answer);
await context.PostAsync("To continue using the FAQ please type another question, if not type no");
}
else if (originalQueryText.Contains("no"))
{
context.Done(true);
}
else
{
await base.DefaultMatchHandler(context, originalQueryText,result);
flag = true;
}
}
}
Результат теста следующий:
я бы хотел, чтобы после приветствия в разделе часто задаваемых вопросов не отображалось сообщение" Хорошее совпадение в KB "не отображалось, но мне это не удается, я уже смотрю в образцах документации, но с моей проблемой нет аналогичных образцов.
Любая помощь будет оценена
