Как обновить существующую Базу знаний, используя QnA Maker API v4.0?

Я успешно создал свою базу знаний, используя API. Но я забыл добавить несколько альтернативных вопросов и метаданных для одной из пар.

я заметил PATH метод в API для обновления базы знаний, поэтому поддерживается обновление 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"
}

Итак, похоже, это сработало. Но на самом деле этот запрос никак не влияет.

Когда я проверяю детали операции, он возвращает мне следующее:

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

Что я делаю неправильно? И как мне правильно обновить мой kb через API?

Пожалуйста помоги

1 ответ

Решение

У меня была та же проблема, я обнаружил, что необходимо иметь все данные JSON, даже если они не использовались. В вашем случае вам нужно указать "name" и "urls" в разделе "update" и "Delete" в разделе "update/qnaList/questions":

{
  "add": {},
  "delete": {},
  "update": {
  "name": "nameofKbBase", //this
  "qnaList": [
      {
         "id": 2370,
        "answer": "DemoAnswerEdit",
        "source": "CustomSource",
        "questions": {
         "add": [
            "DemoQuestionEdit"
          ],
           "delete": [] //this
        },
        "metadata": { }
      }
     ],
    "urls": [] //this
  }
}
Другие вопросы по тегам