Я использую QnA Maker v4.0 и пытаюсь программно обновить свою базу знаний, используя C #, и следую документации, предоставленной в:
https://westus.dev.cognitive.microsoft.com/docs/services/5a93fcf85b4ccd136866eb37/operations/5ac266295b4ccd1554da7600
Я могу добавитьновые вопросы и ответы соединяются с моей базой знаний, но когда я пытаюсь удалить некоторые из них, я не могу это сделать.Я не получаю сообщение об ошибке, просто если я захожу на портал QnAMaker, я все равно вижу вопрос, который пытаюсь удалить, там.
Я пытался удалить полный источник, и это работает хорошо, поэтому я немного растерялся, как удалить только заданную пару вопросов и ответов вместо всего источника.
ЧтоДо сих пор я пытался следовать документации следующим образом:
Добавить новый вопрос пара ответов
string json = "{\"add\":{\"qnaList\":[{\"id\":123456789,\"answer\":\"fooanswer\",\"source\":\"Editorial\",\"questions\":[\"fooquestion\"],\"metadata\":null},{\"id\":987654321,\"answer\":\"fooanswer2\",\"source\":\"Editorial\",\"questions\":[\"fooquestion2\"],\"metadata\":null}],\"urls\":null,\"files\":null},\"delete\":null,\"update\":null}"
public async void UpdateKnowledgeBase(string json)
{
var knowledgebaseid = "<my kb id>";
var client = new HttpClient();
var querystring = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "QnA Subscription Key>");
var uri = "https://westus.api.cognitive.microsoft.com/qnamaker/v4.0/knowledgebases/"+ this.KnowledgeBaseId + "?" + querystring;
// Request body
byte[] byteData = Encoding.UTF8.GetBytes(json);
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var method = new HttpMethod("PATCH");
var request = new HttpRequestMessage(method, uri)
{
Content = content
};
HttpResponseMessage response;
response = await client.SendAsync(request);
}
}
Это создаст пару вопросов и ответов в моих знанияхbase:
Удаление пары вопросов и ответов
Однако, если я попытаюсь сейчас следовать документации и удалить вопрос и ответпара с id 123456789
, ничего не произойдет.Для этого я делаю:
json = "{\"add\":null,\"delete\":{\"ids\":[123456789],\"sources\":null},\"update\":null}"
И после вызова метода UpdateKnowledgeBase с этим json я не получу никакой ошибки, но моя пара вопросов и ответов по-прежнему отображается на портале QnA Maker.Если я добавлю источник, он удалит все редакционные источники.Это нормально, но я также хочу удалить только одну пару, а не все.Возможно ли это?
Обновление существующей пары вопросов и ответов
При обновлении существующей пары вопросов и ответов у меня возникает та же проблема, я не получаю никакойпо ошибке, но я не вижу изменений на портале QnA Maker, что заставляет меня думать, что никаких изменений не делается.
Поэтому мой вопрос: как я могу обновить и / или удалить пары вопросов и ответов, не удаляя весь источник?
Заранее спасибо!