Bot 框架 - "Unable to find a QnA Maker Service with Knowledge Base ID..." 错误
Bot Framework - "Unable to find a QnA Maker Service with Knowledge Base ID..." Error
我对我的 Faq QnAMaker 知识库配置很好奇 issue/non-issue。
当我在机器人模拟器中发送问题时:
- 消息已发送至机器人。
- Luis 确定了正确的意图;模拟器显示
Luis Trace
- 看起来完全符合我的预期。
- 模拟器显示
QnAMaker Trace
“无法找到具有知识库 ID [ID] 的 QnA Maker 服务。请将 QnA Maker 服务添加到您的机器人。”
- Bot returns 知识库结果完全符合我的预期,尽管跟踪中有先前的消息。
跟踪在MainDialog
中执行以下代码后发送到模拟器。
var answers = await qnaService.GetAnswersAsync(dc.Context, null, null);
我一边调试一边浏览本地,没看到有什么突出的地方。
Faq
知识库的形式为 cognitivemodels.json
,
"knowledgebases": [
{
"name": "KB-NAME",
"subscriptionKey": "SUBSCRIPTION KEY FROM AZURE COG SERVICE",
"id": "KB-NAME",
"hostname": "https://HOSTNAME.azurewebsites.net",
"kbId": "KBID-FROM-QNAMAKER-SETTINGS-DEPLOYMENT-DETAILS",
"endpointKey": "ENDPOINT-KEY-FROM-QNAMAKER-SETTINGS-DEPLOYMENT-DETIAILS"
}
]
和appsettings.json
根据this Microsoft example
添加了以下内容
"qnaMaker": {
"endpoint": "ENDPOINT-FROM-AZURE-QNA-COG-RESOURCE",
"key": "KEY-FROM-AZURE-QNA-COG-RESOURCE"
},
"QnAKnowledgebaseId": "KB-ID-FROM-QNAMAKER-SETTINGS-DEPLOYMENT-DETIAILS", // Also tried kb name from cogmodels.json
"QnAAuthKey": "AUTH-ENDPOINT-KEY-FROM-QNAMAKER-SETTINGS-DEPLOYMENT-DETIAILS",
"QnAEndpointHostName": "https://HOST.azurewebsites.net/qnamaker"
我是否忽略了配置细节中的某些内容?我感到困惑的主要原因是 它按预期工作 除了显示未找到 QnA Maker 服务的不祥痕迹。
在这种情况下您可能在本地主机中传递了错误的 ID这是我的问题。
在 azure
中检查 bot configuration
中的 QNMakerBaseID
您需要将您的 QnA 信息添加到 *.bot 文件中:
{
"type": "qna",
"endpointKey": "",
"hostname": "",
"id": "3",
"kbId": "",
"name": "",
"subscriptionKey": ""
}
然后您将在 Bot Framework Emulator 中看到来自 QnA 的结果的详细信息
我对我的 Faq QnAMaker 知识库配置很好奇 issue/non-issue。
当我在机器人模拟器中发送问题时:
- 消息已发送至机器人。
- Luis 确定了正确的意图;模拟器显示
Luis Trace
- 看起来完全符合我的预期。 - 模拟器显示
QnAMaker Trace
“无法找到具有知识库 ID [ID] 的 QnA Maker 服务。请将 QnA Maker 服务添加到您的机器人。” - Bot returns 知识库结果完全符合我的预期,尽管跟踪中有先前的消息。
跟踪在MainDialog
中执行以下代码后发送到模拟器。
var answers = await qnaService.GetAnswersAsync(dc.Context, null, null);
我一边调试一边浏览本地,没看到有什么突出的地方。
Faq
知识库的形式为 cognitivemodels.json
,
"knowledgebases": [
{
"name": "KB-NAME",
"subscriptionKey": "SUBSCRIPTION KEY FROM AZURE COG SERVICE",
"id": "KB-NAME",
"hostname": "https://HOSTNAME.azurewebsites.net",
"kbId": "KBID-FROM-QNAMAKER-SETTINGS-DEPLOYMENT-DETAILS",
"endpointKey": "ENDPOINT-KEY-FROM-QNAMAKER-SETTINGS-DEPLOYMENT-DETIAILS"
}
]
和appsettings.json
根据this Microsoft example
"qnaMaker": {
"endpoint": "ENDPOINT-FROM-AZURE-QNA-COG-RESOURCE",
"key": "KEY-FROM-AZURE-QNA-COG-RESOURCE"
},
"QnAKnowledgebaseId": "KB-ID-FROM-QNAMAKER-SETTINGS-DEPLOYMENT-DETIAILS", // Also tried kb name from cogmodels.json
"QnAAuthKey": "AUTH-ENDPOINT-KEY-FROM-QNAMAKER-SETTINGS-DEPLOYMENT-DETIAILS",
"QnAEndpointHostName": "https://HOST.azurewebsites.net/qnamaker"
我是否忽略了配置细节中的某些内容?我感到困惑的主要原因是 它按预期工作 除了显示未找到 QnA Maker 服务的不祥痕迹。
在这种情况下您可能在本地主机中传递了错误的 ID这是我的问题。
在 azure
中检查bot configuration
中的 QNMakerBaseID
您需要将您的 QnA 信息添加到 *.bot 文件中:
{
"type": "qna",
"endpointKey": "",
"hostname": "",
"id": "3",
"kbId": "",
"name": "",
"subscriptionKey": ""
}
然后您将在 Bot Framework Emulator 中看到来自 QnA 的结果的详细信息