feat(data-management): 扩展文档解析功能支持DOC和DOCX格式

- 添加对DOC和DOCX文件类型的常量定义和支持
- 将文件类型验证逻辑从仅PDF扩展为PDF/DOC/DOCX
- 集成Docx2txtLoader用于处理Word文档解析
- 更新错误消息为中文描述以提升用户体验
- 重构文件解析方法以支持多种文档格式
- 添加解析器元数据记录以追踪使用的解析工具
- 更新文件路径验证和构建逻辑以适配新的文件类型
This commit is contained in:
2026-01-29 13:05:58 +08:00
parent ab957ab53d
commit f77fd99c31
3 changed files with 54 additions and 27 deletions

View File

@@ -68,6 +68,9 @@ import java.util.stream.Stream;
@Transactional
public class DatasetFileApplicationService {
private static final String PDF_FILE_TYPE = "pdf";
private static final String DOC_FILE_TYPE = "doc";
private static final String DOCX_FILE_TYPE = "docx";
private static final Set<String> DOCUMENT_TEXT_FILE_TYPES = Set.of(PDF_FILE_TYPE, DOC_FILE_TYPE, DOCX_FILE_TYPE);
private final DatasetFileRepository datasetFileRepository;
private final DatasetRepository datasetRepository;
@@ -783,7 +786,7 @@ public class DatasetFileApplicationService {
return;
}
String fileType = datasetFile.getFileType();
if (fileType == null || !fileType.equalsIgnoreCase(PDF_FILE_TYPE)) {
if (fileType == null || !DOCUMENT_TEXT_FILE_TYPES.contains(fileType.toLowerCase(Locale.ROOT))) {
return;
}
pdfTextExtractAsyncService.extractPdfText(dataset.getId(), datasetFile.getId());