From a4e5212478490be25502c129b46a2e99ef19af66 Mon Sep 17 00:00:00 2001 From: liu <liujiatong112@163.com> Date: Thu, 6 Jun 2024 13:39:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=B5=8B=E8=AF=95=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/VectorSimilarityConfiguration.java | 2 ++ .../domain/QaSimilarityQuestionAnswer.java | 5 +++++ .../java/com/supervision/util/SimilarityUtil.java | 1 + .../com/supervision/controller/TestController.java | 13 +++++++++---- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/virtual-patient-common/src/main/java/com/supervision/config/VectorSimilarityConfiguration.java b/virtual-patient-common/src/main/java/com/supervision/config/VectorSimilarityConfiguration.java index b69c9ad6..90186aa2 100644 --- a/virtual-patient-common/src/main/java/com/supervision/config/VectorSimilarityConfiguration.java +++ b/virtual-patient-common/src/main/java/com/supervision/config/VectorSimilarityConfiguration.java @@ -30,6 +30,8 @@ public class VectorSimilarityConfiguration { .withMetadataFields( // 问题的ID RedisVectorStore.MetadataField.tag("questionId"), + // 关联字典ID + RedisVectorStore.MetadataField.tag("dictId"), // 标准问ID RedisVectorStore.MetadataField.tag("standardQuestionId"), // 类型 1标准问 2相似问 3自定义 diff --git a/virtual-patient-common/src/main/java/com/supervision/domain/QaSimilarityQuestionAnswer.java b/virtual-patient-common/src/main/java/com/supervision/domain/QaSimilarityQuestionAnswer.java index 30f45d53..b1592634 100644 --- a/virtual-patient-common/src/main/java/com/supervision/domain/QaSimilarityQuestionAnswer.java +++ b/virtual-patient-common/src/main/java/com/supervision/domain/QaSimilarityQuestionAnswer.java @@ -15,6 +15,11 @@ public class QaSimilarityQuestionAnswer { */ private String matchQuestionCode; + /** + * 关联的字典ID + */ + private String dictId; + /** * cosine余弦得分,一般0.5以上匹配度就比较高了 */ diff --git a/virtual-patient-common/src/main/java/com/supervision/util/SimilarityUtil.java b/virtual-patient-common/src/main/java/com/supervision/util/SimilarityUtil.java index bc930e8a..5d711e92 100644 --- a/virtual-patient-common/src/main/java/com/supervision/util/SimilarityUtil.java +++ b/virtual-patient-common/src/main/java/com/supervision/util/SimilarityUtil.java @@ -43,6 +43,7 @@ public class SimilarityUtil { return documents.stream().map(document -> { QaSimilarityQuestionAnswer qaSimilarityQuestionAnswer = new QaSimilarityQuestionAnswer(); qaSimilarityQuestionAnswer.setMatchQuestion(document.getContent()); + qaSimilarityQuestionAnswer.setDictId(String.valueOf(document.getMetadata().get("dictId"))); qaSimilarityQuestionAnswer.setMatchQuestionCode(String.valueOf(document.getMetadata().get("standardQuestionId"))); qaSimilarityQuestionAnswer.setMatchScore(Double.parseDouble(String.valueOf(document.getMetadata().get("vector_score")))); return qaSimilarityQuestionAnswer; 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 6b94464c..1137071e 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 @@ -79,16 +79,20 @@ public class TestController { @GetMapping("testRedisVectorStore") public void testRedisVectorStore() { - List<AskTemplateQuestionLibrary> list = askTemplateQuestionLibraryService.list(); for (AskTemplateQuestionLibrary askTemplateQuestionLibrary : list) { String description = askTemplateQuestionLibrary.getDescription(); - redisVectorStore.add(List.of(new Document(description, Map.of("type", "1", "medicalId", "222")))); + redisVectorStore.add(List.of(new Document(description, Map.of("type", "1", + "standardQuestionId", askTemplateQuestionLibrary.getId(), + "questionId", askTemplateQuestionLibrary.getId(), + "dictId", askTemplateQuestionLibrary.getDictId())))); List<String> question = askTemplateQuestionLibrary.getQuestion(); for (String s : question) { - redisVectorStore.add(List.of(new Document(s, Map.of("type", "1", "medicalId", "222")))); + redisVectorStore.add(List.of(new Document(s, Map.of("type", "2", + "standardQuestionId", askTemplateQuestionLibrary.getId(), + "questionId", askTemplateQuestionLibrary.getId(), + "dictId", askTemplateQuestionLibrary.getDictId())))); } -// log.info("处理完成:{}", description); } } @@ -106,6 +110,7 @@ public class TestController { }); return documents; } + @GetMapping("testExpireTime") public String testExpireTime() { return "OK";