2025-10-25 14:26:47 +08:00
|
|
|
|
# 文档处理与 OCR
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
系统提供 4 种文档处理选项:
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
- **RapidOCR**: CPU 友好,无需 GPU,适合基础文字识别
|
|
|
|
|
|
- **MinerU**: 本地化高精度 VLM 解析,适合复杂 PDF 和表格文档
|
|
|
|
|
|
- **MinerU Official**: 官方云服务 API,无需本地部署,开箱即用
|
|
|
|
|
|
- **PaddleX**: 结构化解析,适合表格、票据等特殊格式
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
## 快速配置
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
### 1. 基础 OCR (RapidOCR)
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-10-25 14:26:47 +08:00
|
|
|
|
# 下载模型
|
|
|
|
|
|
hf download SWHL/RapidOCR --local-dir ./models/SWHL/RapidOCR
|
|
|
|
|
|
|
|
|
|
|
|
# 启动服务
|
|
|
|
|
|
docker compose up -d api
|
2025-10-10 10:49:51 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
### 2. 高精度 OCR (MinerU)
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
2025-10-26 18:30:59 +08:00
|
|
|
|
需要配置:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
MINERU_VL_SERVER=http://localhost:30000
|
|
|
|
|
|
MINERU_API_URI=http://localhost:30001
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
然后启动相关服务
|
|
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
# 需要 GPU,启动 MinerU 服务
|
|
|
|
|
|
docker compose up -d mineru-vllm-server mineru-api
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
# 启动主服务
|
|
|
|
|
|
docker compose up -d api
|
|
|
|
|
|
```
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
### 3. 官方云服务 (MinerU Official)
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
|
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
API 密钥可以从 [MinerU 官网](https://mineru.net) 申请。
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-10-25 14:26:47 +08:00
|
|
|
|
# 设置 API 密钥环境变量
|
|
|
|
|
|
export MINERU_API_KEY="your-api-key-here"
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
# 启动主服务
|
|
|
|
|
|
docker compose up -d api
|
2025-10-10 10:49:51 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
### 4. 结构化解析 (PaddleX)
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
# 需要 GPU,启动 PaddleX 服务
|
|
|
|
|
|
docker compose up -d paddlex
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
# 启动主服务
|
|
|
|
|
|
docker compose up -d api
|
|
|
|
|
|
```
|
2025-10-14 04:19:52 +08:00
|
|
|
|
|
2025-10-25 14:26:47 +08:00
|
|
|
|
## 处理器选择
|
|
|
|
|
|
|
|
|
|
|
|
| 处理器 | 适用场景 | 硬件要求 | 特点 |
|
|
|
|
|
|
|--------|----------|------------|------|
|
|
|
|
|
|
| **RapidOCR** | 基础文字识别 | CPU | 速度快,资源占用低 |
|
|
|
|
|
|
| **MinerU** | 复杂 PDF、表格、公式 | GPU | 精度高,版面分析好 |
|
|
|
|
|
|
| **MinerU Official** | 复杂文档解析(云服务) | 无特殊要求 | 官方云服务,开箱即用,有 API 配额 |
|
|
|
|
|
|
| **PaddleX** | 表格、票据、结构化文档 | GPU | 专业版面解析 |
|
|
|
|
|
|
|
|
|
|
|
|
## 参数说明
|
|
|
|
|
|
|
|
|
|
|
|
### enable_ocr 选项
|
|
|
|
|
|
- `disable`: 不启用 OCR(PDF 按文本提取,图片**必须选择 OCR 方式**)
|
|
|
|
|
|
- `onnx_rapid_ocr`: RapidOCR 处理
|
|
|
|
|
|
- `mineru_ocr`: MinerU HTTP API 处理
|
|
|
|
|
|
- `mineru_official`: MinerU 官方云服务 API 处理
|
|
|
|
|
|
- `paddlex_ocr`: PaddleX 处理
|
|
|
|
|
|
|
|
|
|
|
|
### 注意事项
|
|
|
|
|
|
- **图片文件必须启用 OCR**,否则无法提取内容
|
|
|
|
|
|
- MinerU 和 PaddleX 需要 GPU 支持
|
|
|
|
|
|
- MinerU Official 需要设置 `MINERU_API_KEY` 环境变量
|
|
|
|
|
|
- RapidOCR 适合 CPU 环境和基础识别需求
|
|
|
|
|
|
|
|
|
|
|
|
## 故障排除
|
|
|
|
|
|
|
|
|
|
|
|
### 常见问题
|
|
|
|
|
|
|
|
|
|
|
|
1. **RapidOCR 模型不存在**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 下载模型
|
|
|
|
|
|
huggingface-cli download SWHL/RapidOCR --local-dir ./models/SWHL/RapidOCR
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. **GPU 服务连接失败**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 检查服务状态
|
|
|
|
|
|
docker compose ps
|
|
|
|
|
|
|
|
|
|
|
|
# 查看日志
|
|
|
|
|
|
docker compose logs mineru
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
3. **健康检查**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 检查所有 OCR 服务状态
|
|
|
|
|
|
curl http://localhost:5050/system/health/ocr-services
|
|
|
|
|
|
```
|
2025-10-14 04:19:52 +08:00
|
|
|
|
|
2025-10-10 10:49:51 +08:00
|
|
|
|
## 批量处理脚本
|
|
|
|
|
|
|
2025-10-23 14:59:25 +08:00
|
|
|
|
系统提供便捷的批量处理脚本,用于高效批量上传文档。
|
2025-10-10 10:49:51 +08:00
|
|
|
|
|
|
|
|
|
|
### 文件上传脚本
|
|
|
|
|
|
|
|
|
|
|
|
使用 `scripts/batch_upload.py upload` 批量上传文件到知识库:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 批量上传文档
|
|
|
|
|
|
uv run scripts/batch_upload.py upload \
|
|
|
|
|
|
--db-id your_kb_id \
|
|
|
|
|
|
--directory path/to/your/data \
|
|
|
|
|
|
--pattern "*.docx" \
|
|
|
|
|
|
--base-url http://127.0.0.1:5050/api \
|
|
|
|
|
|
--username your_username \
|
|
|
|
|
|
--password your_password \
|
|
|
|
|
|
--concurrency 4 \
|
|
|
|
|
|
--recursive \
|
|
|
|
|
|
--record-file scripts/tmp/batch_processed_files.txt
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**参数说明**:
|
|
|
|
|
|
- `--db-id`: 目标知识库 ID
|
|
|
|
|
|
- `--directory`: 文件目录路径
|
|
|
|
|
|
- `--pattern`: 文件匹配模式
|
|
|
|
|
|
- `--concurrency`: 并发处理数量
|
|
|
|
|
|
- `--recursive`: 递归处理子目录
|
|
|
|
|
|
- `--record-file`: 处理记录文件路径
|
|
|
|
|
|
|
2025-10-14 04:19:52 +08:00
|
|
|
|
提示:系统按“内容哈希”进行去重;同一知识库已存在相同内容的文件会被拒绝(409)。
|
|
|
|
|
|
|
2025-10-10 10:49:51 +08:00
|
|
|
|
### 脚本功能
|
|
|
|
|
|
|
|
|
|
|
|
- **进度跟踪**: 实时显示处理进度
|
|
|
|
|
|
- **错误处理**: 自动跳过无法处理的文件
|
|
|
|
|
|
- **断点续传**: 支持中断后继续处理
|
|
|
|
|
|
- **日志记录**: 详细记录处理过程
|
|
|
|
|
|
- **结果统计**: 处理完成后显示统计信息
|
2025-10-14 04:19:52 +08:00
|
|
|
|
|
|
|
|
|
|
更多关于“入库参数、导出数据、支持类型”等,请参阅:介绍 → 知识库与知识图谱 → 文档管理。
|