fix(llm): 修复知识库文档嵌入错误并优化相关逻辑

- 移除了 AsyncKnowledgeBase 类中的 RegUploadReqVO 相关代码
- 修复了知识库文档嵌入时知识库 ID 传递错误的问题
- 优化了文档扩展名处理逻辑
- 在 KnowledgeBaseServiceImpl 中添加了 @Transactional 注解,确保数据一致性- 修复了 score 和 topK 的判断逻辑错误
This commit is contained in:
Liuyang 2025-03-14 09:32:21 +08:00
parent e14b54a7f8
commit 216378d20d
2 changed files with 4 additions and 11 deletions

View File

@ -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());
}

View File

@ -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();