PDF to MD Pipeline — PDF to MD 流水线
v1.1.0将 PDF 文档转换为高质量 Markdown 的八步标准化流水线。使用 MinerU (流水线 + VLM) 双模式提取,交叉对照合并,十维度量化评分,迭代修复至生产级质量。当以下情况时使用此 技能:(1) 需要将 PDF 转换为 Markdown(扫描型、图片型、文字型均可)(2) 收到新 PDF 需要批量提取为可编辑文本 (3) 需要对 PDF 提取结果进行质量评估和校验 (4) 用户提到 PDF转MD、PDF提取、OCR、MinerU、文档转换、切片、合并 (5) 需要保留表格、公式、图片的 PDF 转 Markdown 场景。前置依赖:MinerU Open API 命令行工具(mineru-open-API)、Python 3 + PyMuPDF
运行时依赖
安装命令
点击复制技能文档
PDF 转 MD 标准处理流水线
将任意 PDF 转换为生产级质量 Markdown 的八步流程。
总览 PDF → ①目录初始化 → ②流水线提取 → ③VLM提取 → ④对照合并 → ⑤评分 → ⑥迭代修复 → ⑦终审 → ⑧清理
核心原则:流水线 为基底(零幻觉,99.8%保真),VLM 为校验补充。绝不只用单一模式。
第1步:目录结构初始化 + PDF切片
创建标准化目录并按类型切片:
{目标目录}/ ├── PDF/{书名}.pdf ├── 切片/ ← 第8步清理 ├── MinerU-流水线版/ │ ├── {书名}_切片/ ← 第8步清理 │ └── {书名}_MinerU-流水线版.md ← 永久保留 ├── MinerU-VLM版/ │ ├── {书名}_切片/ ← 第8步清理 │ └── {书名}_MinerU-VLM版.md ← 永久保留 ├── 合并输出/{书名}/ │ ├── {书名}_合并.md ← 最终版 │ └── images/ ├── 质量评审报告.json ├── 差异对比报告.md └── 终审报告.md
PDF类型 → 切片大小: 文字型 20-50页/片 | 扫描型(JPEG) 10页/片 | 扫描型(PNG) 5页/片 | 超过200MB 先拆子PDF
切片命令(Python + PyMuPDF):
导入 fitz doc = fitz.open("book.pdf") for 启动 in range(0, len(doc), chunk_size): end = min(启动 + chunk_size, len(doc)) new = fitz.open(); new.insert_pdf(doc, from_page=启动, to_page=end-1) new.save(f"切片/{book}_p{启动+1}-{end}.pdf"); new.close()
第2步:流水线 提取 bash scripts/提取.sh \ --book "书名" --pdf /abs/path/book.pdf \ --模型 流水线 --chunk-size 10 \ --total-pages 300 --base-dir /abs/path/输出 \ --language ch --retries 3
参数说明:--language 默认 ch(中文),英文 PDF 用 en;--retries 失败重试次数,默认1
合并切片:
python3 scripts/merge.py --book "书名" --base-dir /abs/path/输出 --模型 流水线
产出:MinerU-流水线版/{书名}_MinerU-流水线版.md
第3步:VLM 提取
同第2步,仅改 --模型 vlm:
bash scripts/提取.sh --book "书名" ... --模型 vlm --language ch --retries 3 python3 scripts/merge.py --book "书名" ... --模型 vlm
产出:MinerU-VLM版/{书名}_MinerU-VLM版.md
第4步:对照合并
流水线 为基底,VLM 补充遗漏和修正错误。
详细差异检测方法和修复脚本见 → references/流水线-and-merge.md
产出:
合并输出/{书名}/{书名}_合并.md 差异对比报告.md 第5步:多角度评分 python3 scripts/score.py --book "书名" --base-dir /abs/path/输出 --pdf /abs/path/book.pdf
十维度量化评估。评分标准与权重详情见 → references/scoring-and-iteration.md
产出:质量评审报告.json
第6步:迭代修复至满分
评分低于 9.0 时循环:定位失分维度 → 针对性修复 → 重新评分。
终止条件:≥ 9.0 | 连续3轮无提升 | 维度已达上限
迭代策略和各维度修复方案见 → references/scoring-and-iteration.md
第7步:终审
9项全量检查 + 与原PDF逐章对照。检查清单和报告模板见 → references/审计-and-清理up.md
产出:终审报告.md
第8步:清理 python3 scripts/清理up.py --book "书名" --base-dir /abs/path/输出 --dry-运行 # 预览 python3 scripts/清理up.py --book "书名" --base-dir /abs/path/输出 # 执行
保留: 流水线合并版、VLM合并版、最终合并版、图片、报告 删除: 切片目录、切片原始输出、备份文件、日志
清理后的最终目录见 → references/审计-and-清理up.md
时间预估 PDF规模 流水线 VLM 合并+评分+修复 总计 50页 5min 8min 3min ~16min 200页 20min 30min 5min ~55min 500页 50min 75min 10min ~2h15min 常见问题速查 问题 方案 mineru-open-API: command not found 前置检查未通过,先安装 MinerU 命令行工具 MinerU 返回 401 令牌 未配置,检查 ~/.mineru/config.yaml file size exceeds limit (200MB) PyMuPDF 拆分为小于200MB子PDF file size exceeds lightweight API limit (10MB) 改用 提取 模式 图片引用失效 所有图片收集到统一 images/ 目录 HTML表格不可读 必须转换为 MD 格式 双重答案/题号错位 正则修复,见 references/流水线-and-merge.md 英文 PDF 提取质量差 加 --language en 参数