From 216378d20d1737848ecab50eee85238cb1a9d78b Mon Sep 17 00:00:00 2001 From: Liuyang <2746366019@qq.com> Date: Fri, 14 Mar 2025 09:32:21 +0800 Subject: [PATCH] =?UTF-8?q?fix(llm):=20=E4=BF=AE=E5=A4=8D=E7=9F=A5?= =?UTF-8?q?=E8=AF=86=E5=BA=93=E6=96=87=E6=A1=A3=E5=B5=8C=E5=85=A5=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=B9=B6=E4=BC=98=E5=8C=96=E7=9B=B8=E5=85=B3=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了 AsyncKnowledgeBase 类中的 RegUploadReqVO 相关代码 - 修复了知识库文档嵌入时知识库 ID 传递错误的问题 - 优化了文档扩展名处理逻辑 - 在 KnowledgeBaseServiceImpl 中添加了 @Transactional 注解,确保数据一致性- 修复了 score 和 topK 的判断逻辑错误 --- .../module/llm/service/async/AsyncKnowledgeBase.java | 10 +--------- .../knowledgebase/KnowledgeBaseServiceImpl.java | 5 +++-- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncKnowledgeBase.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncKnowledgeBase.java index 63c8113d2..5fb33ca41 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncKnowledgeBase.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncKnowledgeBase.java @@ -74,20 +74,12 @@ public class AsyncKnowledgeBase { log.info("将文档状态更新为 NOT_UPLOADED,文档 ID: {}", knowledge.getId()); updateFileState(knowledge, KnowledgeStatusEnum.NOT_UPLOADED); - // 准备 RegUploadReqVO 用于文档上传 - log.info("为文档准备 RegUploadReqVO,文档 ID: {}", knowledge.getId()); - RegUploadReqVO regUploadReqVO = new RegUploadReqVO() - .setUrl(llmBackendProperties.getRagEmbed()) - .setFileId(String.valueOf(knowledge.getFileId())) - .setFileName(knowledge.getDocumentName()) - .setFileUrl(knowledge.getFileUrl()); - // 检查文件扩展名并根据扩展名处理 int lastIndex = knowledge.getDocumentName().lastIndexOf("."); if (lastIndex != -1) { String extension = knowledge.getDocumentName().substring(lastIndex + 1).toLowerCase(); log.info("文档扩展名: {}", extension); - knowledgeEmbed(knowledge, knowledge.getFileId(), knowledgeParameters); + knowledgeEmbed(knowledge, knowledge.getKnowledgeBaseId(), knowledgeParameters); } else { log.warn("文档无扩展名,跳过处理,文档 ID: {}", knowledge.getId()); } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/knowledgebase/KnowledgeBaseServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/knowledgebase/KnowledgeBaseServiceImpl.java index abff96751..db3cf7fda 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/knowledgebase/KnowledgeBaseServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/knowledgebase/KnowledgeBaseServiceImpl.java @@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; @@ -57,7 +58,7 @@ public class KnowledgeBaseServiceImpl implements KnowledgeBaseService { } @Override - // @Transactional(rollbackFor = Exception.class) + @Transactional(rollbackFor = Exception.class) public void updateKnowledgeBase (KnowledgeBaseSaveReqVO updateReqVO) { // 1. 校验知识库是否存在 validateKnowledgeParam(updateReqVO); @@ -321,7 +322,7 @@ public class KnowledgeBaseServiceImpl implements KnowledgeBaseService { } Double score = 0.2; - if (baseDO.getScore() == null || baseDO.getTopK() <= 0.0|| baseDO.getScore() > 1) { + if (baseDO.getScore() == null || baseDO.getTopK() <= 0.0 || baseDO.getScore() > 1) { testReqVO.setScore(score); } else { score = baseDO.getScore();