maxkb/MINERU_INTEGRATION_REVIEW.md
朱潮 7c16c954e6
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
os error
2025-08-27 11:16:30 +08:00

211 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 一、已完成的集成工作
### 1. 核心功能集成 ✅
- [x] MinerU 代码完整复制到 MaxKB 项目 (`/apps/common/handle/impl/mineru/`)
- [x] 创建 MaxKB 适配器 (`maxkb_adapter.py`)
- [x] 实现分段处理器 (`mineru_split_handle.py`)
- [x] 注册到文档处理流程(最高优先级)
### 2. 模型调用改造 ✅
- [x] 创建 MaxKB 模型客户端 (`maxkb_model_client.py`)
- [x] 替换 litellm 调用为 MaxKB 模型调用
- [x] 支持 LLM 和 Vision Model 两种模型
- [x] 实现模型响应对象的兼容层
### 3. 前端集成 ✅
- [x] 添加 MinerU 文档类型选项
- [x] 实现模型选择器LLM + Vision Model
- [x] 集成模型列表动态加载
- [x] 使用 Pinia store 管理状态
### 4. 后端支持 ✅
- [x] 文档序列化器支持额外参数传递
- [x] 支持 MinerU 特定的模型参数
- [x] 处理器支持 kwargs 参数
### 5. 依赖处理 ✅
- [x] 移除 gptbase.settings 依赖
- [x] 移除 litellm 直接调用
- [x] 实现本地 ImageOptimizer
- [x] 实现本地 utils 功能
## 二、需要注意的问题和待优化项
### 1. 缺失的功能模块 ⚠️
#### a. 图片上传功能
```python
# 当前在 maxkb_adapter.py 中是 TODO
# TODO: 实现图片上传逻辑
# uploaded_url = await upload_image(img_path, upload_options)
```
**需要实现**:集成 MaxKB 的文件存储系统用于图片上传
#### b. 追踪系统
```python
# parallel_processor.py 中注释了
# from loader.trace import set_trace_id
```
**建议**:使用 MaxKB 的日志系统替代
#### c. 缓存系统
- MinerU 原本有缓存机制,需要确认是否需要在 MaxKB 中实现
- 当前使用临时目录,可能需要更持久的缓存策略
### 2. API 调用问题 ⚠️
#### a. MinerU API 客户端
```python
# api_client.py 中的 MinerU API 调用
# 需要确认 MinerU API 服务是否可用
```
**需要确认**
- MinerU API 服务地址和认证
- 是否需要自建 MinerU 服务
- API 调用的超时和重试策略
#### b. 并行处理
```python
# parallel_processor.py 和 parallel_processor_pool.py
# 使用了队列和线程池进行并行处理
```
**需要测试**:在 MaxKB 环境中的并发性能
### 3. 配置项检查 ⚠️
需要在 MaxKB 中添加的环境变量:
```bash
# MinerU API 配置
MINERU_API_KEY=xxx
MINERU_API_URL=https://mineru.net
MINERU_API_TYPE=cloud
# 处理配置
MAX_FILE_SIZE=52428800 # 50MB
LIBREOFFICE_PATH=libreoffice
CONVERSION_TIMEOUT=300
# 性能配置
MAX_CONCURRENT_UPLOADS=5
MAX_CONCURRENT_API_CALLS=3
MINERU_BATCH_PROCESSING=true
MINERU_BATCH_SIZE=20
```
### 4. 文件格式支持 ⚠️
当前支持的格式:
- PDF ✅
- PPT/PPTX ✅
需要确认的转换工具:
- LibreOfficePPT 转 PDF- 需要系统安装
- PyMuPDF (fitz) - 需要 pip 安装
### 5. 错误处理增强 🔧
建议添加的错误处理:
1. 模型调用失败的降级策略
2. MinerU API 不可用时的处理
3. 文件转换失败的处理
4. 大文件处理的内存管理
## 三、测试清单
### 1. 单元测试
- [ ] MaxKB 模型客户端测试
- [ ] MinerU 适配器测试
- [ ] 文件格式检测测试
- [ ] 图片处理测试
### 2. 集成测试
- [ ] PDF 文档解析测试
- [ ] PPT 文档解析测试
- [ ] 大文件处理测试(>10MB
- [ ] 并发处理测试
- [ ] 模型调用测试
### 3. 端到端测试
- [ ] 完整的文档上传流程
- [ ] 模型选择和切换
- [ ] 解析结果的质量验证
- [ ] 向量化存储验证
## 四、部署准备
### 1. 系统依赖
```bash
# 需要安装的系统包
apt-get install -y libreoffice
apt-get install -y python3-pip
# Python 依赖
pip install pymupdf
pip install pillow
pip install beautifulsoup4
pip install tiktoken
```
### 2. 性能优化建议
1. 为 MinerU 处理设置独立的队列
2. 实现文档处理的异步化
3. 添加处理进度的实时反馈
4. 实现智能的批处理策略
### 3. 监控指标
- 文档处理时间
- 模型调用次数和耗时
- 内存使用情况
- 错误率统计
## 五、下一步行动计划
### 优先级 1 - 必须完成
1. **实现图片上传功能**
- 集成 MaxKB 文件存储
- 实现图片 URL 管理
2. **完善 MinerU API 配置**
- 确认 API 服务可用性
- 配置认证和超时
3. **添加基础错误处理**
- 模型调用失败处理
- 文件处理异常捕获
### 优先级 2 - 建议完成
1. **优化缓存机制**
- 实现持久化缓存
- 添加缓存清理策略
2. **增强日志记录**
- 添加详细的处理日志
- 实现处理追踪
3. **性能优化**
- 优化大文件处理
- 改进并发策略
### 优先级 3 - 可选增强
1. **添加更多文件格式支持**
2. **实现处理结果预览**
3. **添加处理统计和报告**
## 六、风险和注意事项
1. **许可证合规性**:确保 MinerU 的使用符合许可要求
2. **数据安全**:确保文档处理过程中的数据安全
3. **资源消耗**MinerU 处理可能消耗大量 CPU/内存
4. **API 限制**:注意第三方 API 的调用限制
5. **模型成本**Vision Model 调用可能产生较高成本
## 七、总结
MinerU 集成的核心功能已经完成,可以进行基础的文档解析。主要需要关注:
1. 完善图片上传功能
2. 确认 MinerU API 服务配置
3. 进行完整的测试
4. 优化性能和错误处理
建议先在测试环境中验证完整流程,确保稳定后再部署到生产环境。