【发布时间】:2018-07-27 11:02:03
【问题描述】:
我正在尝试关闭 QnAMaker 对话框,以便用户可以返回 Luis 对话框并再次使用它。
这是我使用的代码 在 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 方法,以便在用户键入“done”但 QnA 制造商根本没有启动时使用 context.done(0) 退出对话框,这令人困惑。
另外,为什么通过使用“常见问题解答”调用 luis 意图,它还试图在用户不再次输入的情况下进入知识库,是否可以解决这个问题?
【问题讨论】:
标签: c# botframework azure-language-understanding qnamaker