ForcePilot/docs/advanced/document-processing.md

145 lines
3.8 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.

# 文档处理与 OCR
系统提供 4 种文档处理选项:
- **RapidOCR**: CPU 友好,无需 GPU适合基础文字识别
- **MinerU**: 本地化高精度 VLM 解析,适合复杂 PDF 和表格文档
- **MinerU Official**: 官方云服务 API无需本地部署开箱即用
- **PaddleX**: 结构化解析,适合表格、票据等特殊格式
## 快速配置
### 1. 基础 OCR (RapidOCR)
```bash
# 下载模型
hf download SWHL/RapidOCR --local-dir ./models/SWHL/RapidOCR
# 启动服务
docker compose up -d api
```
### 2. 高精度 OCR (MinerU)
```bash
# 需要 GPU启动 MinerU 服务
docker compose up -d mineru-vllm-server mineru-api
# 启动主服务
docker compose up -d api
```
### 3. 官方云服务 (MinerU Official)
API 密钥可以从 [MinerU 官网](https://mineru.net) 申请。
```bash
# 设置 API 密钥环境变量
export MINERU_API_KEY="your-api-key-here"
# 启动主服务
docker compose up -d api
```
### 4. 结构化解析 (PaddleX)
```bash
# 需要 GPU启动 PaddleX 服务
docker compose up -d paddlex
# 启动主服务
docker compose up -d api
```
## 处理器选择
| 处理器 | 适用场景 | 硬件要求 | 特点 |
|--------|----------|------------|------|
| **RapidOCR** | 基础文字识别 | CPU | 速度快,资源占用低 |
| **MinerU** | 复杂 PDF、表格、公式 | GPU | 精度高,版面分析好 |
| **MinerU Official** | 复杂文档解析(云服务) | 无特殊要求 | 官方云服务,开箱即用,有 API 配额 |
| **PaddleX** | 表格、票据、结构化文档 | GPU | 专业版面解析 |
## 参数说明
### enable_ocr 选项
- `disable`: 不启用 OCRPDF 按文本提取,图片**必须选择 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
```
## 批量处理脚本
系统提供便捷的批量处理脚本,用于高效批量上传文档。
### 文件上传脚本
使用 `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`: 处理记录文件路径
提示系统按“内容哈希”进行去重同一知识库已存在相同内容的文件会被拒绝409
### 脚本功能
- **进度跟踪**: 实时显示处理进度
- **错误处理**: 自动跳过无法处理的文件
- **断点续传**: 支持中断后继续处理
- **日志记录**: 详细记录处理过程
- **结果统计**: 处理完成后显示统计信息
更多关于“入库参数、导出数据、支持类型”等,请参阅:介绍 → 知识库与知识图谱 → 文档管理。