feat(module-llm):增加知识库文档分块大小功能
- 在 KnowledgeBaseSaveReqVO 中添加 chunkSize 字段,用于设置分块大小 - 在 KnowledgeDocumentsDO 中添加 chunkSize 字段,用于存储分块大小- 修改 KnowledgeBaseServiceImpl,将 chunkSize 设置为知识文档的分块大小 - 在 KnowledgeRagEmbedReqVO 中添加 chunkSize 字段,用于传递分块大小 - 修改 RagHttpService,将 chunkSize 添加到请求体中
This commit is contained in:
parent
3c32819345
commit
b056abf513
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -48,5 +48,8 @@ public class KnowledgeDocumentsDO extends BaseDO {
|
||||
* 文件Id
|
||||
*/
|
||||
private Long fileId;
|
||||
|
||||
/**
|
||||
* 分块大小
|
||||
*/
|
||||
private Integer chunkSize;
|
||||
}
|
||||
|
@ -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))
|
||||
)
|
||||
|
@ -41,4 +41,9 @@ public class KnowledgeRagEmbedReqVO {
|
||||
* 文件字节数组
|
||||
*/
|
||||
private byte[] fileBytes;
|
||||
|
||||
/**
|
||||
* 分块大小
|
||||
*/
|
||||
private Integer chunkSize;
|
||||
}
|
||||
|
@ -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); // 收集新增文档
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user