zhch158_admin 6f9eb6afc4 feat: 新增银行交易流水场景配置,支持多种输入格式和输出选项 2 settimane fa
..
model_evaluator 860240f847 feat: 新增README文档,提供doclayoutyolo_batch.py的使用示例及参数说明 3 settimane fa
sample_data 3572efbf95 feat: 删除旧的PDF文件并添加新的示例数据文件 2 mesi fa
universal_doc_parser 6f9eb6afc4 feat: 新增银行交易流水场景配置,支持多种输入格式和输出选项 2 settimane fa
utils eae609a851 feat: 新增工具模块,包含CUDA环境检测、文件处理、文档处理及金融数字标准化功能 1 mese fa
Finance_report_extract.md cfc7f8d003 新增年报知识图谱生成工具文档,包含功能特性、使用方法及注意事项 3 mesi fa
OrientationClsModel-说明.md 475af38b06 feat: 新增PaddleOrientationClsModel方向判断文档,详细解析模型工作原理及处理流程 2 settimane fa
README.md d65218de5a feat: 新增 mac OS 用户启动 vLLM 服务器的命令示例 2 settimane fa
annual_report_kg_solution.md e57ddf2bf3 新增年报PDF知识图谱生成方案文档和MinerU流水线执行流程图 3 mesi fa
demo.py 4657b81cee feat: 新增PDF解析功能,支持多种输出格式和后端选择 2 mesi fa
demo_zhch_v1.py 4b63f964fe feat: 新增demo_zhch_v1.py文件,包含PDF处理和Markdown生成逻辑 2 mesi fa
layout模型-onnx.md 81da4cfc76 feat: 新增Layout模型使用ONNX的适用性分析文档,包含模型对比及实际应用场景 2 settimane fa
magic-pdf-0.json 732de336c0 layoutlmv3 11 mesi fa
magic-pdf.json 5cba8285cd doclayout_yolo 11 mesi fa
magic_pdf_parse_main_zhch.py bf42036dcd 加入对html的后处理 11 mesi fa
mineru.json b004dcc3ec feat: 新增MinerU配置文件mineru.json,包含存储桶信息、LaTeX分隔符配置和模型目录 2 mesi fa
mineru2_vllm_multthreads.py 31df2f3fe9 feat: 更新内容列表JSON生成逻辑,调整bbox坐标比例缩放,并修正输入目录参数名称 1 mese fa
mineru_fast_api_daemon.sh c8aaad3b3e feat: 新增MinerU FastAPI服务守护进程脚本,支持服务启动、停止、状态检查及日志查看功能 1 mese fa
mineru_pipeline_flow.md e57ddf2bf3 新增年报PDF知识图谱生成方案文档和MinerU流水线执行流程图 3 mesi fa
mineru_vllm_daemon.sh a51c722b5e feat: 在MinerU vLLM守护进程脚本中新增served-model-name参数 1 mese fa
mineru_处理流程.md 13c12e74f5 feat: 新增关键代码段,包含类型定义和后处理工具的路径 2 settimane fa
mineru_文字PDF_处理流程.md ecf974c9a1 feat: 新增文字PDF判断和处理流程文档,详细说明分类机制及处理步骤 1 mese fa
paddleocr2pytorch-说明.md 5f851215da Implement feature X to enhance user experience and fix bug Y in module Z 2 settimane fa
坐标归一化.md 43c54511f3 feat: 新增坐标归一化文档,详细解释bbox坐标处理逻辑及其优势 1 mese fa
文字PDF-表格处理.md f16ca60453 feat: 新增文字PDF表格处理文档,详细描述表格处理流程及关键代码实现 1 mese fa

README.md

MinerU vLLM 批量处理系统

基于 MinerU 2.5+ 的文档解析和批量处理系统,支持 PDF 和图像文档的智能解析。

1. 环境配置

1.1 代码获取

git clone https://gitee.com/zhch158_admin/MinerU.git -c user.name=zhch158_admin -c user.email=zhch158@sina.com
cd MinerU
git config --local user.name "zhch158_admin"
git config --local user.email "zhch158@sina.com"

1.2 Python 环境安装

# 创建 conda 环境
conda create -n mineru2 python=3.12
conda activate mineru2

# 安装 MinerU 核心
pip install -U "mineru[core]" -i https://mirrors.aliyun.com/pypi/simple

# 开发模式安装(推荐)
uv pip install -U -e '.[all]'

# 安装额外依赖
pip install PyMuPDF loguru tqdm pillow

# 检查 PyTorch 版本
python -c "import torch; print(f'PyTorch: {torch.__version__}, CUDA: {torch.cuda.is_available()}')"

1.3 模型下载

# 从 ModelScope 下载模型权重文件
python -m mineru.cli.models_download

# 模型会保存到 $MODELSCOPE_CACHE 目录
# 默认路径: /home/ubuntu/models/modelscope_cache/models/OpenDataLab/MinerU2___5-2509-1___2B

1.4 环境变量配置

创建 .env 文件或设置环境变量:

# .env 文件内容
NLTK_DATA="/home/ubuntu/nltk_data"
HF_HOME="/home/ubuntu/models/hf_home"
HF_ENDPOINT=https://hf-mirror.com
HF_HUB_OFFLINE=0
TORCH_HOME="/home/ubuntu/models/torch/"
MODELSCOPE_CACHE="/home/ubuntu/models/modelscope_cache"
USE_MODELSCOPE_HUB=1
CUDA_VISIBLE_DEVICES=0,1,2,3
MINERU_TOOLS_CONFIG_JSON="/home/ubuntu/zhch/MinerU/mineru.json"

2. 服务启动

2.1 vLLM 服务器

# 启动 vLLM 服务器(单GPU)
CUDA_VISIBLE_DEVICES="4" mineru-vllm-server --port 8121 --gpu-memory-utilization 0.3

# 或使用守护进程脚本
./mineru_vllm_daemon.sh start
./mineru_vllm_daemon.sh status
./mineru_vllm_daemon.sh logs

mac OS 用户请使用以下命令启动 vLLM 服务器:

pip install -U "mineru-vl-utils[mlx]"

vllm serve opendatalab/MinerU2.5-2509-1.2B --host 127.0.0.1 --port 8121 \
  --logits-processors mineru_vl_utils:MinerULogitsProcessor --max-model-len 2048

2.2 FastAPI 服务器(可选)

# 启动 FastAPI HTTP 服务
./mineru_fast_api_daemon.sh start

# 访问 API 文档
# http://localhost:8120/docs

3. 使用方式

3.1 命令行调用(官方方式)

Pipeline 后端(传统OCR + 规则)

export MINERU_TOOLS_CONFIG_JSON="/home/ubuntu/zhch/MinerU/mineru.json"

# 处理单个文件
python -m mineru.cli.client -p /path/to/document.pdf -o /path/to/output --lang ch --source modelscope

# 处理目录
python -m mineru.cli.client -p /path/to/images/ -o /path/to/output --lang ch --source modelscope

VLM 后端(视觉语言模型)

# 使用本地 vLLM 引擎
CUDA_VISIBLE_DEVICES=4 python -m mineru.cli.client \
    -p /path/to/document.pdf \
    -o /path/to/output \
    --backend vlm-vllm-engine \
    --gpu-memory-utilization 0.3 \
    --source modelscope

# 使用 HTTP 客户端(连接到 vLLM 服务器)
python -m mineru.cli.client \
    -p /path/to/document.pdf \
    -o /path/to/output \
    --backend vlm-http-client \
    --server-url http://127.0.0.1:8121 \
    --source modelscope

3.2 批量处理脚本

使用增强的批量处理脚本 mineru2_vllm_multthreads.py

# 基本用法
python mineru2_vllm_multthreads.py \
    --input_dir /path/to/images \
    --output_dir /path/to/output \
    --server_url http://127.0.0.1:8121

# 高级参数
python mineru2_vllm_multthreads.py \
    --input_file /path/to/document.pdf \
    --output_dir /path/to/output \
    --server_url http://127.0.0.1:8121 \
    --batch_size 1 \
    --timeout 300 \
    --debug \
    --test_mode

# 从文件列表批量处理
python mineru2_vllm_multthreads.py \
    --input_file_list /path/to/file_list.txt \
    --output_dir /path/to/output \
    --collect_results /path/to/results.csv

# 从 CSV 文件处理(支持断点续传)
python mineru2_vllm_multthreads.py \
    --input_csv /path/to/processed_files.csv \
    --output_dir /path/to/output \
    --no-normalize  # 禁用金额标准化

3.3 输出结构

output_dir/
├── filename.md                 # Markdown 格式文档内容
├── filename.json               # Content list(结构化内容)
├── filename_layout.pdf         # 布局边界框可视化
├── images/                     # 提取的图片
│   ├── image_0.jpg
│   └── ...
├── filename_results.json       # 处理结果统计
└── processed_files.csv         # 处理状态记录

# 调试模式额外输出:
├── filename_middle.json        # 中间 JSON 数据
├── filename_model.json         # 模型原始输出
└── filename_origin.pdf         # 原始 PDF 文件

4. 功能特性

4.1 支持的文档格式

  • PDF 文档:多页 PDF 自动分页处理
  • 图像格式:PNG, JPG, JPEG, TIFF, BMP 等
  • 批量处理:目录、文件列表、CSV 文件

4.2 解析能力

  • 版面分析:自动识别标题、段落、表格、图片等
  • 表格识别:复杂表格结构化提取
  • 公式识别:数学公式 LaTeX 格式输出
  • 多语言支持:中文、英文等多语言文档

4.3 批量处理增强

  • 进度显示:实时进度条和处理统计
  • 断点续传:支持从中断点继续处理
  • 错误处理:详细错误记录和重试机制
  • 金额标准化:全角数字转半角数字(财务文档优化)
  • 结果收集:自动生成处理结果统计

4.4 部署模式

  1. Pipeline 模式:传统 OCR + 规则引擎(快速、轻量)
  2. VLM-Transformers 模式:本地 Transformers 推理(慢但简单)
  3. VLM-vLLM-Engine 模式:本地 vLLM 引擎(高性能)
  4. VLM-HTTP-Client 模式:连接远程 vLLM 服务(推荐)

5. 实际应用案例

5.1 财务报表批量处理

# 处理年度报告
python mineru2_vllm_multthreads.py \
    --input_file /Users/zhch158/workspace/data/至远彩色印刷工业有限公司/2023年度报告母公司.pdf \
    --output_dir /Users/zhch158/workspace/data/至远彩色印刷工业有限公司/mineru-vlm-2.5.3_Results \
    --server_url http://10.192.72.11:8121 \
    --timeout 300 \
    --batch_size 1 \
    --pdf_dpi 200 \
    --debug

5.2 银行流水分析

# A用户流水分析
python -m mineru.cli.client \
    -p /data/流水分析/A用户_单元格扫描流水.img \
    -o /output/A用户_流水分析 \
    --lang ch --source modelscope

# B用户流水分析(VLM模式)
CUDA_VISIBLE_DEVICES=3 python -m mineru.cli.client \
    -p /data/流水分析/B用户_扫描流水.img \
    -o /output/B用户_流水分析 \
    --backend vlm-vllm-engine \
    --gpu-memory-utilization 0.3 \
    --source modelscope

# A用户_单元格扫描流水(VLM模式)
python mineru2_vllm_multthreads.py \
    --input_dir /Users/zhch158/workspace/data/流水分析/A用户_单元格扫描流水.img \
    --output_dir /Users/zhch158/workspace/data/流水分析/A用户_单元格扫描流水/mineru-vlm-2.5.3_Results \
    --server_url http://10.192.72.11:8121 \
    --timeout 300 \
    --batch_size 1 \
    --pdf_dpi 200

# B用户流水分析(VLM模式)
python mineru2_vllm_multthreads.py \
    --input_dir /Users/zhch158/workspace/data/流水分析/B用户_扫描流水.img \
    --output_dir /Users/zhch158/workspace/data/流水分析/B用户_扫描流水/mineru-vlm-2.5.3_Results \
    --server_url http://10.192.72.11:8121 \
    --timeout 300 \
    --batch_size 1 \
    --pdf_dpi 200

# 德_内蒙古银行照(VLM模式)
python mineru2_vllm_multthreads.py \
    --input_file /Users/zhch158/workspace/data/流水分析/德_内蒙古银行照.pdf \
    --output_dir /Users/zhch158/workspace/data/流水分析/德_内蒙古银行照/mineru-vlm-2.5.3_Results \
    --server_url http://10.192.72.11:8121 \
    --timeout 300 \
    --batch_size 1 \
    --pdf_dpi 200

# 对公_招商银行图(VLM模式)
python mineru2_vllm_multthreads.py \
    --input_file /Users/zhch158/workspace/data/流水分析/对公_招商银行图.pdf \
    --output_dir /Users/zhch158/workspace/data/流水分析/对公_招商银行图/mineru-vlm-2.5.3_Results \
    --server_url http://10.192.72.11:8121 \
    --timeout 300 \
    --batch_size 1 \
    --pdf_dpi 200

5.3 评测数据集处理

# OmniDocBench 评测集
python -m mineru.cli.client \
    -p /data/OmniDocBench/images \
    -o /output/OmniDocBench_Results \
    --lang ch --source modelscope

6. 服务管理

6.1 vLLM 服务管理

# 启动服务
./mineru_vllm_daemon.sh start

# 查看状态
./mineru_vllm_daemon.sh status

# 查看日志
./mineru_vllm_daemon.sh logs

# 测试 API
./mineru_vllm_daemon.sh test

# 停止服务
./mineru_vllm_daemon.sh stop

# 重启服务
./mineru_vllm_daemon.sh restart

6.2 FastAPI 服务管理

# 启动 FastAPI 服务
./mineru_fast_api_daemon.sh start

# 服务状态和测试
./mineru_fast_api_daemon.sh status
./mineru_fast_api_daemon.sh test

# API 文档访问
# http://localhost:8120/docs

7. 配置参数

7.1 GPU 配置

  • CUDA_VISIBLE_DEVICES: 指定使用的GPU设备
  • --gpu-memory-utilization: GPU内存利用率(0.1-0.9)
  • --max-model-len: 最大模型长度
  • --max-num-batched-tokens: 最大批处理token数

7.2 处理参数

  • --batch_size: 批处理大小
  • --timeout: 请求超时时间
  • --debug: 调试模式(输出详细日志和中间文件)
  • --test_mode: 测试模式(仅处理前10个文件)
  • --no-normalize: 禁用金额标准化

7.3 输入参数

  • --input_file: 单个文件
  • --input_dir: 输入目录
  • --input_file_list: 文件列表
  • --input_csv: CSV文件(支持断点续传)

8. 性能优化

8.1 硬件要求

  • GPU: NVIDIA GPU with CUDA support (推荐 24GB+ VRAM)
  • 内存: 32GB+ RAM
  • 存储: SSD 推荐(I/O密集)

8.2 性能调优

# GPU 内存优化
--gpu-memory-utilization 0.3  # 30% GPU内存使用

# 批处理优化
--batch_size 1                # 根据GPU内存调整

9. 故障排除

9.1 常见问题

  1. GPU 内存不足: 降低 gpu-memory-utilization 参数
  2. 服务连接失败: 检查 vLLM 服务状态和端口
  3. 模型下载失败: 检查网络连接和 ModelScope 配置
  4. 处理超时: 增加 timeout 参数值

10. 更新日志

  • v0.2: 支持金额标准化、增强批量处理
  • v0.1: 支持 vLLM 后端、多GPU并行

联系信息