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";