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) // 定义搜索过滤器使用的元数据字段