From d18e307e10687ecdeacbec63935de262e5af0ae1 Mon Sep 17 00:00:00 2001 From: 邢继森 <1933694610@qq.com> Date: 星期一, 19 五月 2025 00:45:32 +0800 Subject: [PATCH] fix: 自动上传向量时间改为三分钟;修复根据条件删除向量数据报错问题; --- ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/KnowledgeInfoServiceImpl.java | 1 + ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/VectorStoreServiceImpl.java | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletions(-) diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/VectorStoreServiceImpl.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/VectorStoreServiceImpl.java index 7e1f6f9..917652c 100644 --- a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/VectorStoreServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/VectorStoreServiceImpl.java @@ -131,7 +131,31 @@ createSchema(kid,modelName); // 鏍规嵁鏉′欢鍒犻櫎鍚戦噺鏁版嵁 Filter simpleFilter = new IsEqualTo("kid", kid); - embeddingStore.removeAll(simpleFilter); + removeByFilter(simpleFilter); + } + + public void removeByFilter(Filter filter) { + List<Float> dummyVector = new ArrayList<>(); + // TODO 妯″瀷缁村害 + int dimension = 1024; + for (int i = 0; i < dimension; i++) { + dummyVector.add(0.0f); + } + Embedding dummyEmbedding = Embedding.from(dummyVector); + EmbeddingSearchRequest request = EmbeddingSearchRequest.builder() + .queryEmbedding(dummyEmbedding) + .filter(filter) + .maxResults(10000) + .build(); + // 鎼滅储 + List<String> idsToDelete = embeddingStore.search(request) + .matches().stream() + .map(EmbeddingMatch::embeddingId) + .collect(Collectors.toList()); + // 鍒犻櫎 + if (!idsToDelete.isEmpty()) { + embeddingStore.removeAll(idsToDelete); + } } @Override diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/KnowledgeInfoServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/KnowledgeInfoServiceImpl.java index 89b6863..06ad06b 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/KnowledgeInfoServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/KnowledgeInfoServiceImpl.java @@ -405,4 +405,5 @@ .set(KnowledgeAttach::getVectorStatus, DealStatus.STATUS_10) .eq(KnowledgeAttach::getVectorStatus, DealStatus.STATUS_40)); } + @Scheduled(fixedDelay = 180000) // 3鍒嗛挓鎵ц涓�娆� } -- Gitblit v1.9.3