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。

当我在机器人模拟器中发送问题时:

  1. 消息已发送至机器人。
  2. Luis 确定了正确的意图;模拟器显示 Luis Trace - 看起来完全符合我的预期。
  3. 模拟器显示 QnAMaker Trace无法找到具有知识库 ID [ID] 的 QnA Maker 服务。请将 QnA Maker 服务添加到您的机器人。
  4. 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 的结果的详细信息