首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何关闭QnAMaker对话框?

如何关闭QnAMaker对话框?
EN

Stack Overflow用户
提问于 2018-07-27 05:10:15
回答 1查看 199关注 0票数 0

我正在尝试关闭一个QnAMaker对话框,以便用户可以返回到Luis对话框并再次使用它。

下面是我在luisdialog.cs中使用的代码:

代码语言:javascript
复制
    [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对话框:

代码语言:javascript
复制
[Serializable]
[QnAMakerService("endpoint", "knowledge base id", "subscription key")]
public class QnADialog : QnAMakerDialog<object>
{

}

我试图覆盖start async方法,这样如果用户输入"done“但QnA maker根本不启动,它将使用context.done(0)退出对话框,这很令人困惑。

另外,为什么通过使用"FAQ“调用luis intent,它还试图在用户不再次键入的情况下访问知识库,有可能修复吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-27 11:02:03

我正在尝试关闭一个QnAMaker对话框,以便用户可以返回到Luis对话框并再次使用它。

您可以尝试覆盖DefaultMatchHandler并调用context.Done来关闭QnAMaker对话框,并将控制传递回父对话框。以下修改后的代码片段适用于我,请参考它。

在LuisDialog中:

代码语言:javascript
复制
[LuisIntent("FAQ")]
public async Task HelpIntent(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)
{
    //context.Done<object>(null);
    context.Wait(MessageReceived);
}

在QnADialog中:

代码语言:javascript
复制
public override async Task DefaultMatchHandler(IDialogContext context, string originalQueryText, QnAMakerResult result)
{
    await context.PostAsync($"I found {result.Answers.Length} answer(s) that might help...{result.Answers.First().Answer}.");
    context.Done(true);
}

测试结果:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51547543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档