Я пытаюсь закрыть диалоговое окно QnAMaker, чтобы пользователь мог вернуться к диалоговому окну Луиса и использовать его снова.
вот мой код, который я использую в luisdialog.cs:
[LuisIntent("FAQ")]
public async Task FAQ(IDialogContext context, LuisResult result)
{
await context.PostAsync("FAQ");
var userQuestion = (context.Activity as Activity).Text;
await context.Forward(new QnADialog(), ResumeAfterQnA, context.Activity, CancellationToken.None);
//await Task.Run(() => context.Call(new QnADialog(), Callback));
}
private async Task ResumeAfterQnA(IDialogContext context, IAwaitable<object> result)
{
context.Done<object>(null);
}
А вот диалог QnA:
[Serializable]
[QnAMakerService("endpoint", "knowledge base id", "subscription key")]
public class QnADialog : QnAMakerDialog<object>
{
}
Я попытался переопределить метод start async, чтобы он выходил из диалогового окна с помощью context.done (0), если пользователь вводит «готово», но производитель QnA вообще не запускается, что сбивает с толку.
Также почему, вызывая намерение luis с помощью «FAQ», он также пытался перейти в базу знаний без того, чтобы пользователь снова набирал его, можно ли это исправить?