ForcePilot/docs/advanced/document-processing.md

102 lines
2.7 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 服务
系统提供多种 OCR 服务选项,满足不同精度和性能需求。
### 基础 OCR 服务
使用 RapidOCR ONNX 版本,无需 GPU 支持:
#### 1. 下载模型
```bash
huggingface-cli download SWHL/RapidOCR --local-dir ${MODEL_DIR:-./models}/SWHL/RapidOCR
```
#### 2. 模型要求
确保以下文件存在:
- `PP-OCRv4/ch_PP-OCRv4_det_infer.onnx`
- `PP-OCRv4/ch_PP-OCRv4_rec_infer.onnx`
::: warning 权限问题
如果提示 `[Errno 13] Permission denied`,需要使用 sudo 修改权限后执行。
:::
### 高级 OCR 服务
为提升 PDF 解析准确性,可选择以下 GPU 加速服务:
#### 1. MinerU 服务(推荐)
```bash
# 需要 CUDA 12.6+ 环境
docker compose up mineru --build
```
#### 2. PP-Structure-V3 服务
```bash
# 需要 CUDA 11.8+ 环境
docker compose up paddlex --build
```
**配置文件**: `docker/PP-StructureV3.yaml`
### OCR 服务选择建议
- **基础使用**: RapidOCR无需 GPU
- **高精度需求**: MinerU推荐
- **结构化文档**: PP-Structure-V3
- **生产环境**: 根据硬件条件选择
### `enable_ocr` 取值说明(入库参数)
- `disable`:不启用 OCRPDF 将按纯文本提取,图片会自动转为 `onnx_rapid_ocr` 提示)
- `onnx_rapid_ocr`CPU 友好,安装简单
- `mineru_ocr`GPU 加速,复杂文档效果好
- `paddlex_ocr`:结构化表格/票据等场景
## 批量处理脚本
系统提供便捷的批量处理脚本,用于高效批量上传文档。
### 文件上传脚本
使用 `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
### 脚本功能
- **进度跟踪**: 实时显示处理进度
- **错误处理**: 自动跳过无法处理的文件
- **断点续传**: 支持中断后继续处理
- **日志记录**: 详细记录处理过程
- **结果统计**: 处理完成后显示统计信息
更多关于“入库参数、导出数据、支持类型”等,请参阅:介绍 → 知识库与知识图谱 → 文档管理。