Azure QnA Maker与预览版相比通常可用:它不';我找不到答案

Azure QnA Maker与预览版相比通常可用:它不';我找不到答案,azure,indexing,bots,azure-cognitive-search,qnamaker,Azure,Indexing,Bots,Azure Cognitive Search,Qnamaker,这有点奇怪。 我已经创建了一个知识库,在预览和一般可用的QnA Maker服务中使用相同的excel文件,但在最后一个中没有发现很多问题。。。在预览中,一个可以很好地工作 我注意到,预览版可以找到任何语序的答案,但不在一般可用的答案中 我该怎么办?有什么问题 我正在使用QnAMaker测试: 编辑1: 如果我在Azure中使用我的搜索服务->搜索资源管理器,它工作正常,我可以正确地找到答案,就像在QnA预览测试中一样,但在QnA GA测试中没有 编辑2:我正在使用节点。我创建了一个azure

这有点奇怪。 我已经创建了一个知识库,在预览和一般可用的QnA Maker服务中使用相同的excel文件,但在最后一个中没有发现很多问题。。。在预览中,一个可以很好地工作

我注意到,预览版可以找到任何语序的答案,但不在一般可用的答案中

我该怎么办?有什么问题

我正在使用QnAMaker测试:

编辑1: 如果我在Azure中使用我的搜索服务->搜索资源管理器,它工作正常,我可以正确地找到答案,就像在QnA预览测试中一样,但在QnA GA测试中没有

编辑2:我正在使用节点。我创建了一个azure SDKv3 Qna模板bot,编辑了QnAAuthKey/QnAEndpointHostName/QnAKnowledgebaseId,并尝试了“在网络聊天中测试”,但我总是收到“不匹配!尝试更改查询条件!”消息

此外,我还尝试获取“hostname”,它不同于创建KB时QnaMaker给出的“host”参数(以/QnaMaker结尾)。然后我将其与代码一起使用,从中获取答案,但我收到一个“未找到”错误:。错误:getaddrinfo ENOTFOUND

编辑3:在使用我的知识库的不同语言进行多次测试后,我认为问题在于语言识别的变化和信心分数。我现在正在改写一些问题


由于QnAMaker可用,搜索方法已经改变:它现在使用的是Azure search,而不是像您以前看到的那样仅使用令牌比较

新架构如下所示:

主要影响是搜索功能的极大改进,因为在过去,它可能会发现不相关的答案

例如,如果您的知识库如下所示:

  • 问题1:“我想要一辆车”/回答1:“你可以在……租一辆车。”

  • 问题2:“我怎样才能吃到三明治?”/回答2:“你饿了吗?”

如果你问你的知识库“我怎样才能得到一辆车?”,它可能会回答“你饿了吗?”


关于您的搜索性能,目前没有真正的文档来解释如何改进它,但当您获得所有必要的设置信息(如knowledgebase id、authkey、主机url)时,它必须主要基于发布后的索引。然后可以像这样添加代码

QnADialog.cs

namespace Test.Qna
{
    [Serializable]
    [QnAMaker(authKey: "AuthKey", knowledgebaseId: "KnowledgebaseId", defaultMessage: "please rephrase, I could not understand.", scoreThreshold: 0.5, top: 1, endpointHostName: "https://yourAccount.azurewebsites.net/qnamaker")]
    public class QnADialog : QnAMakerDialog
    {}
}
如果您使用的是NodeJS,那么可以添加如下设置

    var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
    console.log('%s listening to %s', server.name, server.url);
});

var connector = new builder.ChatConnector({
    appId: process.env.MICROSOFT_APP_ID,
    appPassword: process.env.MICROSOFT_APP_PASSWORD
});
var bot = new builder.UniversalBot(connector);
bot.set('storage', new builder.MemoryBotStorage()); 
server.post('/api/messages', connector.listen());

var recognizer = new cognitiveservices.QnAMakerRecognizer({
    knowledgeBaseId: '5abcde-cbfb-4yuio-92c5-052d3a806e78',
    authKey: 'eb7uy78y-8a64-4e75-98uj-7f89987b67bc',
    endpointHostName: 'https://name.azurewebsites.net/qnamaker'
    });

var basicQnAMakerDialog = new cognitiveservices.QnAMakerDialog({
    recognizers: [recognizer],
    defaultMessage: 'No match! Try changing the query terms!',
    qnaThreshold: 0.3
});

bot.dialog('/', basicQnAMakerDialog);
希望这会有所帮助。
对于循序渐进的指南遵循

我们也有类似的问题,看起来,它已经在MS端得到了修复。从头开始的新知识库真的很有帮助

微软的答复:

看起来你的知识库受到了最近一个bug的影响,我们现在已经修复了这个bug——它导致了结果的相关性降低。您能否重新创建知识库,看看您是否仍然面临这些查询匹配问题


要快速重新创建知识库,只需从知识库中的“设置”选项卡“导出知识库”。在“设置”页面中创建新的空知识库和“导入知识库”

嗨,我在用node。嗨,我在用node。我在处获取的“主机名”与创建KB时QnaMaker给出的“主机名”不同(以/QnaMaker结尾),然后将其与来自的获取应答代码一起使用,但我收到一个“未找到”错误:。错误:getaddrinfo ENOTFOUNDhttps://xx.azurewebsites.net:443Hi @fllartal,如果您使用的是Node,那么您也可以设置相同的设置,如“var recognizer=new cognitiveservices.QnAMakerRecognizer”({knowledgeBaseId:'5abcde-cbfb-4yuio-92c5-052d3a806e78',authKey:'eb7uy78y-8a64-4e75-98uj-7f89987b67bc',endpointHostName:'});@fllartal,在识别器设置中使用qnamaker在发布时提供的主机。请参考上述更新的答案