如何使用 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
}
}
我已经使用 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
}
}