如何使用 QnA Maker API v4.0 更新现有知识库?

How to update existing Knowledgebase using QnA Maker API v4.0?

我已经使用 API 成功创建了我的知识库。 但是我忘了为其中一对添加一些替代问题和元数据。

我注意到 API 中的 PATH 方法可以更新 Knowledebase,因此支持更新 kb。 我创建了一个看起来像这样的有效载荷:

{
"add": {

},
"delete": {

},
"update": {
    "qnaList": [
       {
        "id": 1,
        "answer": "Answer",
        "source": "link_to_source",
        "questions": [
            "Question 1?",
            "Question 2?"
        ],
        "metadata": [
            {
                "name": "oldMetadata",
                "value": "oldMetadata"
            },
            {
                "name": "newlyAddedMetaData",
                "value": "newlyAddedMetaData"
            }
        ]
    }]}
}

我收到以下回复 HTTP 202 Accepted

{
"operationState": "NotStarted",
"createdTimestamp": "2018-05-21T07:46:52Z",
"lastActionTimestamp": "2018-05-21T07:46:52Z",
"userId": "user_uuid",
"operationId": "operation_uuid"
}

所以,看起来它成功了。但实际上,这个请求没有任何影响。

当我检查操作细节时,它 returns 我得到以下信息:

{
"operationState": "Succeeded",
"createdTimestamp": "2018-05-21T07:46:52Z",
"lastActionTimestamp": "2018-05-21T07:46:54Z",
"resourceLocation": "/knowledgebases/kb_uuid",
"userId": "user_uuid",
"operationId": "operation_uuid"
}

我做错了什么?我应该如何通过 API 正确更新我的知识库?

请帮忙

我也遇到了同样的问题,我发现即使不使用,也必须拥有json的所有数据。 在您的情况下,您需要 "update" 部分中的 "name" 和 "urls" 以及 "update/qnaList/questions" 部分中的 "Delete":

{
  "add": {},
  "delete": {},
  "update": {
  "name": "nameofKbBase", //this
  "qnaList": [
      {
         "id": 2370,
        "answer": "DemoAnswerEdit",
        "source": "CustomSource",
        "questions": {
         "add": [
            "DemoQuestionEdit"
          ],
           "delete": [] //this
        },
        "metadata": { }
      }
     ],
    "urls": [] //this
  }
}