feat(module-llm):增加知识库文档分块大小功能

- 在 KnowledgeBaseSaveReqVO 中添加 chunkSize 字段,用于设置分块大小
- 在 KnowledgeDocumentsDO 中添加 chunkSize 字段,用于存储分块大小- 修改 KnowledgeBaseServiceImpl,将 chunkSize 设置为知识文档的分块大小
- 在 KnowledgeRagEmbedReqVO 中添加 chunkSize 字段,用于传递分块大小
- 修改 RagHttpService,将 chunkSize 添加到请求体中
This commit is contained in:
Liuyang 2025-03-10 16:39:09 +08:00
parent 3c32819345
commit b056abf513
5 changed files with 20 additions and 3 deletions

View File

@ -32,9 +32,14 @@ public class KnowledgeBaseSaveReqVO {
@Schema(description = "知识长度")
private Integer knowledgeLength;
/**
* 分块大小
*/
private Integer chunkSize;
@Schema(description = "文件引用")
private String knowledgeFile;
@Schema(description = "文件引用上传")
private List<KnowledgeDocumentsSaveReqVO> knowledgeDocuments;
}
}

View File

@ -48,5 +48,8 @@ public class KnowledgeDocumentsDO extends BaseDO {
* 文件Id
*/
private Long fileId;
/**
* 分块大小
*/
private Integer chunkSize;
}

View File

@ -51,6 +51,7 @@ import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -388,9 +389,10 @@ public class RagHttpService {
String fileId = reqVO.getFileId();
String fileName = reqVO.getFileName();
String fileUrl = reqVO.getFileUrl();
Integer chunkSize = Optional.ofNullable(reqVO.getChunkSize()).orElse(1500);
String mediaType = getMediaType(fileName);
log.info("文件ID: {}, 文件名: {}, 文件URL: {}, 文件类型: {}", fileId, fileName, fileUrl, mediaType);
log.info("文件ID: {}, 文件名: {}, 文件URL: {}, 文件类型: {}, 分块大小:{}", fileId, fileName, fileUrl, mediaType,chunkSize);
// 获取知识库文档
log.info("开始获取知识库文档知识库ID: {}, 文件ID: {}", id, fileId);
@ -447,6 +449,7 @@ public class RagHttpService {
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file_id", fileId)
.addFormDataPart("chunk_size", String.valueOf(chunkSize))
.addFormDataPart("file", fileName,
RequestBody.create(tempFilePath.toFile(), MediaType.parse(mediaType))
)

View File

@ -41,4 +41,9 @@ public class KnowledgeRagEmbedReqVO {
* 文件字节数组
*/
private byte[] fileBytes;
/**
* 分块大小
*/
private Integer chunkSize;
}

View File

@ -106,6 +106,7 @@ public class KnowledgeBaseServiceImpl implements KnowledgeBaseService {
updateReqVO.getKnowledgeDocuments().forEach(doc -> {
KnowledgeDocumentsDO docDO = BeanUtils.toBean(doc, KnowledgeDocumentsDO.class);
docDO.setKnowledgeBaseId(updateReqVO.getId());
docDO.setChunkSize(updateObj.getKnowledgeLength());
if (doc.getId() == null) {
newDocuments.add(docDO); // 收集新增文档
}