From b1e284eb1dab42c63289daee9f96754871e7c46e Mon Sep 17 00:00:00 2001
From: liu <liujiatong112@163.com>
Date: Wed, 5 Jun 2024 15:54:16 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=90=91=E9=87=8F=E5=8C=96?=
 =?UTF-8?q?=E7=9A=84=E5=BA=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../com/supervision/config/VectorEmbeddingClient.java     | 8 ++++++--
 .../supervision/config/VectorSimilarityConfiguration.java | 6 ++++--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/virtual-patient-common/src/main/java/com/supervision/config/VectorEmbeddingClient.java b/virtual-patient-common/src/main/java/com/supervision/config/VectorEmbeddingClient.java
index 3d35b843..7b3aa4db 100644
--- a/virtual-patient-common/src/main/java/com/supervision/config/VectorEmbeddingClient.java
+++ b/virtual-patient-common/src/main/java/com/supervision/config/VectorEmbeddingClient.java
@@ -6,7 +6,6 @@ import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.ai.document.Document;
 import org.springframework.ai.embedding.*;
-import org.springframework.core.SpringProperties;
 import org.springframework.util.Assert;
 
 import java.util.ArrayList;
@@ -17,6 +16,11 @@ import java.util.concurrent.atomic.AtomicInteger;
 @Slf4j
 public class VectorEmbeddingClient extends AbstractEmbeddingClient {
 
+    private final String embeddingUrl;
+
+    public VectorEmbeddingClient(String embeddingUrl) {
+        this.embeddingUrl = embeddingUrl;
+    }
 
     @Override
     public List<Double> embed(Document document) {
@@ -32,7 +36,7 @@ public class VectorEmbeddingClient extends AbstractEmbeddingClient {
     public EmbeddingResponse call(EmbeddingRequest request) {
         Assert.notEmpty(request.getInstructions(), "At least one text is required!");
         List<List<Double>> embeddingList = new ArrayList<>();
-        String embeddingUrl = SpringProperties.getProperty("embeddingUrl");
+
         for (String inputContent : request.getInstructions()) {
             // 这里需要吧inputContent转化为向量数据
             String post = HttpUtil.post(embeddingUrl, JSONUtil.toJsonStr(Map.of("text", inputContent)));
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 777c178d..7c0cc4e1 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
@@ -11,13 +11,15 @@ public class VectorSimilarityConfiguration {
 
     @Bean
     public VectorEmbeddingClient vectorEmbeddingClient() {
-        return new VectorEmbeddingClient();
+        String embeddingUrl = SpringProperties.getProperty("embeddingUrl");
+        Assert.notNull(embeddingUrl, "配置文件embeddingUrl未找到");
+        return new VectorEmbeddingClient(embeddingUrl);
     }
 
     @Bean
     public RedisVectorStore redisVectorStore(VectorEmbeddingClient vectorEmbeddingClient) {
         String property = SpringProperties.getProperty("spring.ai.vectorstore.redis.uri");
-        Assert.notNull(property, "spring.ai.vectorstore.redis.uri must not be null");
+        Assert.notNull(property, "配置文件spring.ai.vectorstore.redis.uri未找到");
         RedisVectorStore.RedisVectorStoreConfig config = RedisVectorStore.RedisVectorStoreConfig.builder()
                 .withURI(property)
                 // 定义搜索过滤器使用的元数据字段