Uri IQnAService.BuildFeedbackRequest(string userId, string userQuery, string kbQuestion, string kbAnswer, out QnAMakerTrainingRequestBody postBody, out string authKey, out string knowledgebaseId) { knowledgebaseId = this.qnaInfo.KnowledgebaseId; authKey = this.qnaInfo.AuthKey; var builder = new UriBuilder($"{UriBaseV2}/{knowledgebaseId}/train"); var feedbackRecord = new FeedbackRecord { UserId = userId, UserQuestion = userQuery, KbQuestion = kbQuestion, KbAnswer = kbAnswer }; var feedbackRecords = new List <FeedbackRecord>(); feedbackRecords.Add(feedbackRecord); postBody = new QnAMakerTrainingRequestBody { KnowledgeBaseId = knowledgebaseId, FeedbackRecords = feedbackRecords }; return(builder.Uri); }
async Task <bool> IQnAService.ActiveLearnAsync(Uri uri, QnAMakerTrainingRequestBody postBody, string authKey) { try { string json = string.Empty; using (HttpClient client = new HttpClient()) { var request = new HttpRequestMessage(new HttpMethod("PATCH"), uri) { Content = new StringContent( JsonConvert .SerializeObject( postBody), Encoding.UTF8, "application/json") }; //Add the subscription key header client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", authKey); var response = await client.SendAsync(request); if (response != null && response.Content != null) { json = await response.Content.ReadAsStringAsync(); } } return(true); } catch { return(false); } }