public async Task <string> GetApiQnAList() { string kb = User.Identity.GetSpecificKnowledgebaseId(); string key = User.Identity.GetSpecificSubscriptionKeyAzure(); string uri = User.Identity.GetUriBaseQnA(); var qnaModels = new QnAListCreate(); var onlyQuery = ""; var metadataString = ""; var response = await qnaConn.QnaAnswer("", 2, kb, key, uri); RootObject datalist = JsonConvert.DeserializeObject <RootObject>(response); qnaModels.QnaModelLists.Clear(); foreach (var list in datalist.qnaDocuments) { var qnAModel = new QnaQuestionModel { IdQna = list.id, Preguntas = new List <string>() }; foreach (var question in list.questions) { onlyQuery = question; qnAModel.Preguntas.Add(question); } foreach (var metadata in list.metadata) { metadataString = metadata.name + ":" + metadata.value; } qnAModel.Pregunta = onlyQuery; qnAModel.Respuesta = list.answer; qnAModel.Metadata = metadataString; qnaModels.QnaModelLists.Add(qnAModel); } var jsonConvert = JsonConvert.SerializeObject(qnaModels.QnaModelLists.ToList()); return(jsonConvert); }
public async Task <JsonResult> SendQuestionAndAnswer(QnaQuestionModel question) { string kb = User.Identity.GetSpecificKnowledgebaseId(); string key = User.Identity.GetSpecificSubscriptionKeyAzure(); string uri = User.Identity.GetUriBaseQnA(); List <string> listQuery = new List <string>(); int company = User.Identity.GetCompanyId(); string MetadataSelect = ""; foreach (var datos in question.Preguntas) { listQuery.Add("'" + datos.ToString() + "'"); } if (question.MetadataSelect == 1) { MetadataSelect = "{'name': 'feedback', 'value': 'true'}"; } else if (question.MetadataSelect == 2) { MetadataSelect = "{'name': 'context', 'value': 'ticketca'}"; } else if (question.MetadataSelect == 3) { MetadataSelect = "{'name': 'autoagent', 'value': 'true'}"; } else { MetadataSelect = ""; } string addListQuery = string.Join(",", listQuery.ToArray()); string finalAnswer = @"{'add': {'qnaList': [{'id': 0,'answer': '" + question.Respuesta + "','source': ' QnADataBaseCompany#" + company + "','questions': [" + addListQuery + "],'metadata': [" + MetadataSelect + "]}]}}"; await qnaConn.QnaAnswer(finalAnswer, 1, kb, key, uri); return(Json(new { success = true, message = "Se ha agregado la pregunta correctamente" }, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> GetData(string Preguntas) { var qnaModels = new QnAListEdit(); var onlyQuery = ""; var an = ""; dynamic json = JsonConvert.DeserializeObject(Preguntas); foreach (var item in json) { an = item; } int valueMetadata = 0; int company = User.Identity.GetCompanyId(); string kb = User.Identity.GetSpecificKnowledgebaseId(); string key = User.Identity.GetSpecificSubscriptionKey(); string uri = User.Identity.GetUriBaseQnA(); string questionJSON = @"{'question': '" + an + "'}"; var response = await qnaConn.GetData(questionJSON, kb, key, uri); var acceptableAnswers = from answerFinal in response.ToList() where answerFinal.Score == 100 orderby answerFinal.Score descending select answerFinal; foreach (var list in acceptableAnswers.ToList()) { var qnAModel = new QnaQuestionModel { IdQna = list.Id, Preguntas = new List <string>() }; foreach (var metadata in list.Metadata) { string stringMeta = metadata.ToString().Replace("\r\n", string.Empty); if (stringMeta == "{ \"name\": \"feedback\", \"value\": \"true\"}") { valueMetadata = 1; } else if (stringMeta == "{ \"name\": \"context\", \"value\": \"ticketca\"}") { valueMetadata = 2; } else if (stringMeta == "{ \"name\": \"autoagent\", \"value\": \"true\"}") { valueMetadata = 3; } else { valueMetadata = 0; } qnAModel.MetadataSelect = valueMetadata; } foreach (var question in list.Questions) { qnAModel.Preguntas.Add($"<input type='text' id='PreguntasE' name='PreguntasE[]' class='form-control' placeholder='Intención-Entidad' value='{question}'/>"); } qnAModel.Respuesta = list.AnswerText; qnaModels.QnaModelListEdit.Add(qnAModel); } return(View(qnaModels)); }