首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QnAMaker迁移后无法到达端点

QnAMaker迁移后无法到达端点
EN

Stack Overflow用户
提问于 2018-05-17 22:23:13
回答 3查看 243关注 0票数 1

我们有一个已经生产了几个月的机器人。配置了预览服务的机器人工作得很好。

因此,我遵循了迁移文档中的步骤。我在Azure创建了一个QnA服务,然后创建了知识库。我输入了我的知识库,保存/训练,并出版。

在我的web.config中,我替换了以下值:

代码语言:javascript
复制
<add key="QnAKnowledgeBaseId" value="foo" />
<add key="QnaSubscriptionKey" value="bar" />
<add key="QnaMakerUpdateKnowledgeBaseEndpoint" value="https://westus.api.cognitive.microsoft.com/qnamaker/v2.0/knowledgebases" />

我使用了在我的知识库发布后给出的值,所以

代码语言:javascript
复制
POST /knowledgebases/<QnAKnowledgeBaseId>/generateAnswer
Host: <QnaMakerUpdateKnowledgeBaseEndpoint>
Authorization: EndpointKey <QnaSubscriptionKey>

更改这三行后,我的机器人将停止检索答案。这导致我怀疑: 1)我有这些数据点的源代码是不正确的,或者2)在我的情况下需要进行更大的更改。有人能引导我朝正确的方向前进吗?

编辑:最终,我的问题是机器人的原始开发人员将QnAMaker的终端隐藏在某个地方。我仍然不确定在哪里,url不在web.config中,也不在任何蔚蓝的设置中。我把它重写了,一切看起来都很好。

下面的答案对我来说比正式文件更清楚,即使它们只是肯定了我在最初阅读时认为是正确的答案。好工作的人。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-17 23:48:20

新的v4使用一个蔚蓝的网站作为它的generateAnswer端点,在授权头内有一个不同的方案。登录到新的v4 ui,执行发布,您将看到url示例已经更改。

一开始我也被抓到了。它们对api也做了一些修改,qna问句集合现在是qnalist,qnaid现在也只是id。

您需要彻底比较api,特别是如果您已经手动处理了您的客户端。

很乐意帮助菲尔

票数 2
EN

Stack Overflow用户

发布于 2018-05-18 03:29:32

发布您的知识库之后,您将找到可在应用程序或bot代码中使用的端点详细信息。正如菲尔提到的,它使用一个蔚蓝网站作为其generateAnswer端点,这与旧版本的QnA服务不同。

旧版本QnA服务:

因此,如果您提出以下要求,以获得一个新的知识库的问题的答案,它将不起作用。

代码语言:javascript
复制
https://westus.api.cognitive.microsoft.com/qnamaker/v2.0/knowledgebases/<QnAKnowledgeBaseId>/generateAnswer
票数 2
EN

Stack Overflow用户

发布于 2018-05-20 08:44:47

发布后,当您获得所有必要的设置信息,您可以添加然后在这样的代码。使用在qnamaker中发布时获得的主机地址。

QnADialog.cs

代码语言:javascript
复制
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
    {}
}

对于Node,您可以这样做。

代码语言:javascript
复制
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);

希望这能帮上忙。

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

https://stackoverflow.com/questions/50401293

复制
相关文章

相似问题

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