Bot Framework-“无法找到具有知识库ID的QnA Maker服务...”错误

时间:2019-12-05 17:22:27

标签: botframework azure-cognitive-services qnamaker

我的常见问题解答QnAMaker知识库配置有问题/没有问题。

当我在漫游器模拟器中发送问题时:

  1. 邮件已发送到漫游器。
  2. 路易斯确定适当的意图;模拟器显示Luis Trace-完全符合我的期望。
  3. 仿真器显示QnAMaker Trace,其中带有“ 无法找到具有知识库ID [ID]的QnA Maker服务。请向您的漫游器添加QnA Maker服务。
  4. 尽管跟踪中有上一条消息,Bot仍将完全按照我的期望返回知识库结果。

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服务的不祥痕迹之外, 它能按预期工作

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可能在本地主机中传递了错误的ID ,这对我来说是个问题。

azure

中检查QNMakerBaseID中的bot configuration

答案 1 :(得分:1)

您需要将QnA信息添加到* .bot文件中:

{
    "type": "qna",
    "endpointKey": "",
    "hostname": "",
    "id": "3",
    "kbId": "",
    "name": "",
    "subscriptionKey": ""
}

然后在您的Bot Framework仿真器中,您将看到来自QnA的结果的详细信息