From 85871a798ae24b99103c97294a462ebc75b6cb76 Mon Sep 17 00:00:00 2001 From: liu Date: Thu, 6 Jun 2024 19:04:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=97=AE=E7=AD=94?= =?UTF-8?q?=E6=B5=81=E7=A8=8B,=E5=88=87=E6=8D=A2=E4=B8=BA=E5=9C=A8?= =?UTF-8?q?=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/supervision/controller/TestController.java | 11 +++++------ .../supervision/service/impl/AskServiceImpl.java | 14 ++++++++------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java b/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java index 1ad4abc3..c23a5f96 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java @@ -54,6 +54,7 @@ public class TestController { private final AskTemplateQuestionSimilarityService askTemplateQuestionSimilarityService; + @GetMapping("testMatchQuestion") public String test(String question) { String template = """ @@ -84,25 +85,23 @@ public class TestController { @GetMapping("testRedisVectorStore") public void testRedisVectorStore() { List list = askTemplateQuestionLibraryService.list(); - if (CollUtil.isEmpty(list)){ return; } - Map> similarityQuestionMap = askTemplateQuestionSimilarityService.querySimilarityQuestionMapByLibraryLists(list); for (AskTemplateQuestionLibrary askTemplateQuestionLibrary : list) { String description = askTemplateQuestionLibrary.getDescription(); redisVectorStore.add(List.of(new Document(description, Map.of("type", "1", - "standardQuestionId", askTemplateQuestionLibrary.getId(), - "questionId", askTemplateQuestionLibrary.getId(), + "libraryQuestionId", askTemplateQuestionLibrary.getId(), + "matchQuestionId", askTemplateQuestionLibrary.getId(), "dictId", String.valueOf(askTemplateQuestionLibrary.getDictId()))))); List question = similarityQuestionMap.get(askTemplateQuestionLibrary.getId()); for (String s : question) { redisVectorStore.add(List.of(new Document(s, Map.of("type", "2", - "standardQuestionId", askTemplateQuestionLibrary.getId(), - "questionId", askTemplateQuestionLibrary.getId(), + "libraryQuestionId", askTemplateQuestionLibrary.getId(), + "matchQuestionId", askTemplateQuestionLibrary.getId(), "dictId", String.valueOf(askTemplateQuestionLibrary.getDictId()))))); } } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java index 422a1c69..de902739 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java @@ -99,7 +99,7 @@ public class AskServiceImpl implements AskService { // 记录大模型的流转记录 buildAiCirculationDetail(circulationList, answer, medicalRec); // 保存消息到记录表 - saveQaRecord(process.getId(), 2, question, null, answer, circulationList); + saveQaRecord(process.getId(), medicalRec, 2, question, null, answer, circulationList); return answer; } QaSimilarityQuestionAnswer similarityResult = first.get(); @@ -115,7 +115,7 @@ public class AskServiceImpl implements AskService { String answer = aiService.talk(question, medicalRec.getMedicalRecordAi()); // 记录流转记录 buildAiCirculationDetail(circulationList, answer, medicalRec); - saveQaRecord(process.getId(), 2, question, null, answer, circulationList); + saveQaRecord(process.getId(), medicalRec, 2, question, null, answer, circulationList); return answer; } // 根据对应的标准问题,从标准问题表中找到标准问题 @@ -130,7 +130,7 @@ public class AskServiceImpl implements AskService { String answer = aiService.talk(question, medicalRec.getMedicalRecordAi()); // 记录流转记录 buildAiCirculationDetail(circulationList, answer, medicalRec); - saveQaRecord(process.getId(), 2, question, null, answer, circulationList); + saveQaRecord(process.getId(), medicalRec, 2, question, null, answer, circulationList); return answer; } // 根据问题找这个病历配置的答案 @@ -146,7 +146,7 @@ public class AskServiceImpl implements AskService { String answer = aiService.talk(question, medicalRec.getMedicalRecordAi()); // 记录流转记录 buildAiCirculationDetail(circulationList, answer, medicalRec); - saveQaRecord(process.getId(), 2, question, null, answer, circulationList); + saveQaRecord(process.getId(), medicalRec, 2, question, null, answer, circulationList); return answer; } // 如果找到了,就走病历配置的内容回答 @@ -165,7 +165,7 @@ public class AskServiceImpl implements AskService { .matchQuestion(similarityResult.getMatchQuestion()) .successType(1) .build()); - saveQaRecord(process.getId(), 1, question, similarityResult.getLibraryQuestionId(), patientAnswer, circulationList); + saveQaRecord(process.getId(), medicalRec, 1, question, similarityResult.getLibraryQuestionId(), patientAnswer, circulationList); return patientAnswer; } @@ -178,7 +178,7 @@ public class AskServiceImpl implements AskService { } - private void saveQaRecord(String processId, Integer matchType, String question, String libraryId, String answer, List circulationList) { + private void saveQaRecord(String processId, MedicalRec medicalRec, Integer matchType, String question, String libraryId, String answer, List circulationList) { DiagnosisQaRecord record = new DiagnosisQaRecord(); record.setProcessId(processId); record.setMatchType(matchType); @@ -189,6 +189,8 @@ public class AskServiceImpl implements AskService { record.insert(); AtomicInteger atomicInteger = new AtomicInteger(0); circulationList.forEach(e -> { + e.setProcessId(processId); + e.setMedicalId(medicalRec.getId()); e.setRecordId(record.getId()); e.setCirculationNo(atomicInteger.incrementAndGet()); e.setQuestion(question); From feff28c07109c32fee1a7a998130bf25e9e9f675 Mon Sep 17 00:00:00 2001 From: liu Date: Thu, 6 Jun 2024 19:15:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=97=AE=E7=AD=94?= =?UTF-8?q?=E6=B5=81=E7=A8=8B,=E5=88=87=E6=8D=A2=E4=B8=BA=E5=9C=A8?= =?UTF-8?q?=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/supervision/controller/TestController.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java b/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java index c23a5f96..ee4fb5b8 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java @@ -8,6 +8,7 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.supervision.exception.BusinessException; import com.supervision.model.AskTemplateQuestionLibrary; +import com.supervision.model.AskTemplateQuestionSimilarity; import com.supervision.model.ConfigPhysicalTool; import com.supervision.model.DiagnosisAiRecord; import com.supervision.service.AskTemplateQuestionLibraryService; @@ -88,7 +89,6 @@ public class TestController { if (CollUtil.isEmpty(list)){ return; } - Map> similarityQuestionMap = askTemplateQuestionSimilarityService.querySimilarityQuestionMapByLibraryLists(list); for (AskTemplateQuestionLibrary askTemplateQuestionLibrary : list) { String description = askTemplateQuestionLibrary.getDescription(); redisVectorStore.add(List.of(new Document(description, @@ -96,12 +96,12 @@ public class TestController { "libraryQuestionId", askTemplateQuestionLibrary.getId(), "matchQuestionId", askTemplateQuestionLibrary.getId(), "dictId", String.valueOf(askTemplateQuestionLibrary.getDictId()))))); - List question = similarityQuestionMap.get(askTemplateQuestionLibrary.getId()); - for (String s : question) { - redisVectorStore.add(List.of(new Document(s, + List similarityList = askTemplateQuestionSimilarityService.lambdaQuery().eq(AskTemplateQuestionSimilarity::getLibraryId, askTemplateQuestionLibrary.getId()).list(); + for (AskTemplateQuestionSimilarity askTemplateQuestionSimilarity : similarityList) { + redisVectorStore.add(List.of(new Document(askTemplateQuestionSimilarity.getSimilarityQuestion(), Map.of("type", "2", - "libraryQuestionId", askTemplateQuestionLibrary.getId(), - "matchQuestionId", askTemplateQuestionLibrary.getId(), + "libraryQuestionId", askTemplateQuestionSimilarity.getLibraryId(), + "matchQuestionId", askTemplateQuestionSimilarity.getId(), "dictId", String.valueOf(askTemplateQuestionLibrary.getDictId()))))); } }