ruoyi-modules-api/ruoyi-knowledge-api/pom.xml
@@ -47,20 +47,6 @@ <version>1.0.79</version> </dependency> <!-- milvus java sdk --> <!-- <dependency>--> <!-- <groupId>io.milvus</groupId>--> <!-- <artifactId>milvus-sdk-java</artifactId>--> <!-- <version>2.3.2</version>--> <!-- </dependency>--> <!-- <dependency>--> <!-- <groupId>io.weaviate</groupId>--> <!-- <artifactId>client</artifactId>--> <!-- <version>4.0.0</version>--> <!-- </dependency>--> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j</artifactId> @@ -94,6 +80,29 @@ <artifactId>langchain4j-ollama</artifactId> </dependency> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-milvus</artifactId> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>milvus</artifactId> <version>1.19.6</version> </dependency> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-qdrant</artifactId> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>qdrant</artifactId> <version>1.19.6</version> </dependency> </dependencies> </project> ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorStoreService.java
@@ -19,7 +19,7 @@ List<String> getQueryVector(QueryVectorBo queryVectorBo); void createSchema(String kid); void createSchema(String kid,String modelName); void removeByKidAndFid(String kid, String fid); ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/VectorStoreServiceImpl.java
ÎļþÃû´Ó ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/WeaviateVectorStoreImpl.java ÐÞ¸Ä @@ -11,6 +11,8 @@ import dev.langchain4j.store.embedding.EmbeddingStore; import dev.langchain4j.store.embedding.filter.Filter; import dev.langchain4j.store.embedding.filter.comparison.IsEqualTo; import dev.langchain4j.store.embedding.milvus.MilvusEmbeddingStore; import dev.langchain4j.store.embedding.qdrant.QdrantEmbeddingStore; import dev.langchain4j.store.embedding.weaviate.WeaviateEmbeddingStore; import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; @@ -30,13 +32,13 @@ /** * Weaviateåéåºç®¡ç * åéåºç®¡ç * @author ageer */ @Service @Slf4j @RequiredArgsConstructor public class WeaviateVectorStoreImpl implements VectorStoreService { public class VectorStoreServiceImpl implements VectorStoreService { private EmbeddingStore<TextSegment> embeddingStore; @@ -44,7 +46,8 @@ @Override @PostConstruct public void createSchema(String kid) { public void createSchema(String kid,String modelName) { if(modelName.equals("weaviate")){ String protocol = configService.getConfigValue("weaviate", "protocol"); String host = configService.getConfigValue("weaviate", "host"); String className = configService.getConfigValue("weaviate", "classname"); @@ -56,6 +59,25 @@ .avoidDups(true) .consistencyLevel("ALL") .build(); }else if(modelName.equals("milvus")){ String uri = configService.getConfigValue("milvus", "host"); String collection = configService.getConfigValue("milvus", "collection"); String dimension = configService.getConfigValue("milvus", "dimension"); this.embeddingStore = MilvusEmbeddingStore.builder() .uri(uri) .collectionName(collection+kid) .dimension(Integer.parseInt(dimension)) .build(); }else if(modelName.equals("qdrant")){ String host = configService.getConfigValue("qdrant", "host"); String port = configService.getConfigValue("qdrant", "port"); String collectionName = configService.getConfigValue("qdrant", "collectionName"); this.embeddingStore = QdrantEmbeddingStore.builder() .host(host) .port(Integer.parseInt(port)) .collectionName(collectionName) .build(); } } @Override ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/KnowledgeInfoServiceImpl.java
@@ -160,7 +160,9 @@ knowledgeInfo.setUid(LoginHelper.getLoginUser().getUserId()); } baseMapper.insert(knowledgeInfo); vectorStoreService.createSchema(String.valueOf(knowledgeInfo.getId())); if (knowledgeInfo != null) { vectorStoreService.createSchema(String.valueOf(knowledgeInfo.getId()),bo.getVector()); } }else { baseMapper.updateById(knowledgeInfo); }