Skip to content

bogerman1/VLMiner

Repository files navigation

VLMiner - Vision Language Model Enhanced PDF Processor

Version Python License MinerU

VLMiner 是一个强大的 PDF 处理工具,支持多种视觉语言模型(VLM),能够将 PDF 文档高质量地转换为 Markdown 格式。

✨ 核心特性

  • 🎯 多 VLM 架构:支持 MinerU VLM、Gemini VLM、OpenAI VLM
  • 🆓 免费本地处理:使用 MinerU 2.5 VLM 实现零成本处理
  • 混合处理模式:Pipeline 布局检测 + VLM 精准增强
  • 🔄 自动版本检测:兼容 MinerU 2.0 和 2.5
  • 📊 高精度识别:SOTA 级别的公式、表格、图像识别
  • 🌐 灵活部署:本地部署或云端 API,按需选择

🚀 快速开始

1. 安装

# 克隆仓库
git clone https://github.com/bogerman1/vlminer.git
cd vlminer

# 创建环境
conda create -n vlminer python=3.11 -y
conda activate vlminer

# 安装依赖(完整安装)
pip install -e ".[all]"

# 或基础安装(仅 Pipeline + Gemini)
pip install -e ".[mineru-core,gemini]"

特别说明,本项目对cuda和pytorch的环境要求严格,如有gpu报错请查看cuda和pytorch的版本

2. 下载模型

# 使用 ModelScope 源(国内用户推荐)
python download_models.py --source modelscope

# 或使用 HuggingFace 源
python download_models.py

3. 运行

# 启动 WebUI(推荐)
python main.py

# 或使用 CLI
python main.py --mode cli --input document.pdf --vlm-provider mineru

访问 http://localhost:8091 使用 WebUI。

📖 详细文档

🎯 VLM 提供商对比

特性 MinerU VLM Gemini VLM OpenAI VLM
成本 🆓 免费 💰 付费 💰 付费
部署 本地 云端 云端/本地
速度 ⚡⚡⚡ 快 ⚡ 中等 ⚡⚡ 较快
公式识别 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐
表格提取 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐
图像描述 ⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
离线支持 部分

🔧 处理模式

混合模式(推荐)

python main.py --mode cli --input doc.pdf --backend hybrid --vlm-provider mineru
  • 使用 MinerU Pipeline 进行快速布局检测
  • 使用 VLM 对公式、表格、图像进行精准增强
  • 最佳平衡:速度快 + 精度高

Pipeline Only

python main.py --mode cli --input doc.pdf --backend pipeline --vlm-provider none
  • 仅使用 MinerU Pipeline(OCR + 规则)
  • 最快速度,适合简单文档

Pure VLM

python main.py --mode cli --input doc.pdf --backend pure-vlm --vlm-provider mineru
  • 整页使用 VLM 推理
  • 最高精度,但速度较慢,MineruVLM可以用用试试,由于windows没有vllm可以用,所以建议还是把项目转到linux在用本地vlm

📦 项目结构

vlminer/
├── src/                          # 源代码
│   ├── integrations/            # MinerU API 接口层
│   │   └── mineru_api/         # 版本抽象和适配器
│   ├── vlm/                     # VLM 抽象层
│   │   ├── base.py             # VLM 基类
│   │   ├── registry.py         # 提供商注册表
│   │   └── providers/          # VLM 提供商实现
│   ├── processors/              # 核心处理器
│   │   ├── pdf_processor.py   # PDF 处理协调器
│   │   ├── batch_processor.py # 批处理器
│   │   └── spatial_mapper.py  # 空间映射
│   ├── webui/                   # Gradio WebUI
│   │   └── gradio_ui_v3.py    # 主界面
│   └── config/                  # 配置和提示词
├── MinerU25/                     # MinerU 2.5 源码
├── models/                       # AI 模型(需下载)
├── config/                       # 配置文件
│   └── mineru.json             # MinerU 配置
├── download_models.py           # 模型下载脚本
├── main.py                      # 主入口
└── pyproject.toml               # 项目配置

详细架构说明请查看 ARCHITECTURE_V2.md

🔑 环境变量

# Gemini API Key(使用 Gemini VLM 时需要)
export GEMINI_API_KEY="your-api-key"

# OpenAI API Key(使用 OpenAI VLM 时需要)
export OPENAI_API_KEY="your-api-key"

# 强制离线模式(可选)
export HF_HUB_OFFLINE=1
export TRANSFORMERS_OFFLINE=1

💡 使用示例

Python API

from src.processors.pdf_processor import PDFProcessor

# 初始化处理器
processor = PDFProcessor()

# 配置
run_config = {
    'vlm_provider': 'mineru',      # 或 'gemini', 'openai', 'none'
    'mineru_backend': 'hybrid',     # 或 'pipeline', 'pure-vlm'
    'formula_processing': True,
    'table_processing': True,
    'image_descriptions': True,
    'max_tokens': 512,
    'temperature': 0.0,
}

# 处理 PDF
result = processor.process_document(
    pdf_path='document.pdf',
    output_dir='output',
    run_config=run_config
)

print(f"输出: {result['output_file']}")

命令行

# 使用 MinerU VLM(免费本地)
python main.py --mode cli \
  --input document.pdf \
  --output output \
  --vlm-provider mineru \
  --backend hybrid

# 使用 Gemini VLM(付费云端)
python main.py --mode cli \
  --input document.pdf \
  --output output \
  --vlm-provider gemini \
  --api-key YOUR_GEMINI_KEY \
  --backend hybrid

# 使用 OpenAI 兼容的本地模型
python main.py --mode cli \
  --input document.pdf \
  --output output \
  --vlm-provider openai \
  --backend hybrid

🛠️ 系统要求

最低配置

  • CPU: 4 核心
  • RAM: 16 GB
  • 磁盘: 20 GB(包含模型)
  • Python: 3.10 - 3.13

推荐配置(使用 MinerU VLM)

  • GPU: NVIDIA GPU with 8GB+ VRAM(支持 CUDA 11.8+)
  • RAM: 32 GB
  • 磁盘: 30 GB(包含模型和缓存)

仅使用 Pipeline 或 Gemini VLM

  • 无需 GPU
  • 16 GB RAM 即可

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages