【问题标题】:Retrieve multiple questions matching the search keyword in QnA Maker在 QnA Maker 中检索与搜索关键字匹配的多个问题
【发布时间】:2018-05-14 08:48:30
【问题描述】:

我有一个使用 LUIS 和 QnA Maker 的机器人。

现在,我可以根据搜索关键字在我的机器人中发送查询并获得回复。但如果我的搜索关键字用于多个问题,QnA Maker 只会检索第一个匹配的 QnA 对。

考虑下面的 QnA 对:

What is flexible working?   Flexibility to work from home
How to avail flexible working?  Get in touch with manager

如果用户输入了确切的问题并按回车键,则响应将是与问题匹配的答案。但是,如果用户在这种情况下键入 flexible working,则响应将只是第一个 QnA 答案。因此,在这种情况下,我想检索这两个问题并返回给用户作为可供选择的问题。

我尝试覆盖 RespondFromQnAMakerResultAsync 并检查了 QnA 制造商 APIs。不幸的是,我没有找到任何方法来做到这一点。

请问有什么帮助吗?让我知道是否可以重新措辞或澄清更多。

【问题讨论】:

    标签: botframework qnamaker


    【解决方案1】:

    如果我的搜索关键字用于多个问题,QnA 制造商只会检索第一个匹配的 QnA 对

    您可以尝试为QnAMakerAttribute 指定top 参数,该参数控制返回的答案数。

    QnAMakerAttribute的定义:

    public QnAMakerAttribute(string subscriptionKey, string knowledgebaseId, string defaultMessage = null, double scoreThreshold = 0.3, int top = 1);
    

    在您的 QnaDialog 中,您可以像这样指定它:

    public QnaDialog() : base(new QnAMakerService(new QnAMakerAttribute("{subscriptionKey_here}", "{knowledgebaseId_here}", "Sorry, I couldn't find an answer for that", 0.5, 5)))
    {
    }
    

    编辑:

    上述方法对我有用,它可以促进问题并显示所选问题的答案。

    【讨论】:

    • 而且看看结果和检查得分也很棒
    • 不是答案。我想返回与搜索词匹配的所有问题,以防有多个匹配问题。
    • 为了返回所有匹配的问题,您必须使用 LUIS 将搜索关键字识别为意图,然后返回匹配它们的问题。你试过了吗?
    • @JyoFanidam 在这里用户正在谈论 QnAMaker,LUIS 不需要这样做。 QnAMaker 可以自动显示几个选项,就像飞寒展示的那样
    • 请问如何换成轮播?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多