Я пытаюсь перенести моего бота из API QnAMaker v2 в API QnAMaker v4.Я могу отправлять обновления в базу знаний, но публикация, похоже, не занимает.Вот код, который я использую.
static void Main(string[] args)
{
MainAsync(args).Wait();
}
static async Task MainAsync(string[] args)
{
Console.WriteLine("We're starting.");
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", mySubKey);
var uri = new Uri($"https://westus.api.cognitive.microsoft.com/qnamaker/v4.0/knowledgebases/{myKBId}");
var payload = "{\"add\": {\"qnaList\": [{\"id\": 0,\"answer\": \"A woodchuck could chuck all the wood he could chuck if a woodchuck could chuck wood.\",\"source\": \"Custom Editorial\",\"questions\": [\"How much wood could a woodchuck chuck if a woodchuck could chuck wood?\"],\"metadata\": []}]},\"delete\": {},\"update\": {}}";
var method = new HttpMethod("PATCH");
var request = new HttpRequestMessage(method, uri);
request.Content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
var responseMessage = await response.Content.ReadAsStringAsync();
Console.Write(responseMessage);
Console.ReadLine();
method = new HttpMethod("POST");
payload = "";
request = new HttpRequestMessage(method, uri);
request.Content = new StringContent(payload, Encoding.UTF8, "application/json");
response = await client.SendAsync(request);
responseMessage = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseMessage);
Console.ReadLine();
}
Мой тестовый процесс
- Спросите бота о сурках.
- Запустите этот код.
- Убедитесь, что пара q / a о сурках есть в базе знаний.
- Снова спросите бота о сурках.
Пока что API отвечает, как и ожидалось, но мой бот остаетсяне обращая внимания на критические знания о сурке, пока я не нажму "опубликовать" на сайте qnamaker.ai.Чего мне не хватает?