前情提要:
NuoYi 挪移-一个离线的 PDF/DOCX 转 Markdown 工具
NuoYi 挪移更新-离线的 PDF/DOCX 转 Markdown 工具稍微省一点显存了
前几天有同学跟我说,NuoYi 处理那种三五百页的学术 PDF 会遇到爆显存的情况。 说实话,之前确实不太行。本地引擎跑长文档得看显卡脸色,显存不够直接 OOM 给你看。 后来痛定思痛吧,就加了在线引擎,作为一个备用方案。 在收集的大概四五万篇文献做转换,基本思路就是先用4060+4070,显存不够的用7900xtx,还是报错的就用CPU,不太敏感不怕上传网上的再用在线的。
云端引擎:两个新选择
这次加了两个在线转换引擎——MinerU Cloud 和 Doc2x。都是走 API 的,不需要本地装模型,也不吃你的显存。
MinerU Cloud 的中文文档的识别质量一直不错,这点是公认的。用法:
export MINERU_API_KEY=your_key
nuoyi input.pdf --engine mineru-cloud
Doc2x 是另一个选择,强项在公式识别。理工科的朋友应该会喜欢——论文里那些 LaTeX 公式,用本地引擎转换经常乱码,Doc2x 处理这个确实有优势。PDF、DOCX、PPTX、图片都支持,覆盖面还算宽。
export DOC2X_API_KEY=your_key
nuoyi input.pdf --engine doc2x
两个引擎不知道还有没有免费额度,就算有,估计日常用可能也未必够,重度用户就需要考虑付费了。
长文档分块处理
这是我比较满意的一个改进。
云端 API 有可能会有页数限制,一般单次请求 50 页。之前超过 50 页的 PDF 直接报错,体验很差。这次加了一个 split_pdf 函数——自动把长文档按页数切段,逐块发到云端处理,最后再把结果拼回来。
拼接的时候不是简单粗暴地拼接。每个分块的图片会重新编号,避免名字冲突;分块之间加了页码标记,方便定位。这个是 aggregate_markdown 函数干的活。
CLI 侧也做了适配,用 --max-pages 参数可以调整每块多大:
nuoyi heavy_paper.pdf --engine doc2x --max-pages 30
默认 50 页一块,一般不用改。
跟之前比,到底改了什么
说点具体的。
引擎列表从 7 个变成了 9 个。 原来是 marker、mineru、docling、pymupdf、pdfplumber、llamaparse、mathpix。多了 mineru-cloud 和 doc2x。
现在整个引擎体系是这样的:
| 引擎 | 类型 | 需要 GPU | OCR | 适合场景 |
|---|---|---|---|---|
| marker | 本地 | 推荐 | ✅ | 追求质量,有显卡 |
| mineru | 本地 | 可选 | ✅ | 中文文档,不想用云服务 |
| docling | 本地 | 可选 | ✅ | 均衡之选 |
| pymupdf | 本地 | 否 | ❌ | 速度优先,数字 PDF |
| pdfplumber | 本地 | 否 | ❌ | 表格多,轻量处理 |
| mineru-cloud | 云端 | — | ✅ | 中文文档,不想装本地环境 |
| doc2x | 云端 | — | ✅ | 公式多,STEM 领域 |
什么时候用哪个引擎
简单说下我的建议。
日常中文文档,本地有显卡的话 marker 是首选,没显卡 mineru 也够用。没条件装本地环境,或者嫌配置麻烦的,mineru-cloud 直接上。
公式密集的论文,感觉 doc2x 目前体验最好。
快速扫几页纯文字 PDF,pymupdf 够了,秒出结果。
长文档(超过 50 页)需要云端引擎处理的话,现在会自动分块不用手动拆。
最后
这次更新的核心就两点:多了两个云端引擎选择,长文档支持自动分块处理。都是针对实际使用痛点做的改进。
NuoYi 从一开始就想做一个"够用就行"的文档转换工具——引擎多了你不一定要全用,但它得在那。本地不行有云端兜底,短文档长文档都能跑,这才是"够用"。
有问题欢迎 GitHub 提 issue。
最近看PaddleOCR更新了,以后有机会再试试他们的新版本。
预览时标签不可点
Close
更多
Name cleared
微信扫一扫赞赏作者
Like the AuthorOther Amount
赞赏后展示我的头像
作品
暂无作品
Like the Author
Other Amount
¥
最低赞赏 ¥0
OK
Back
Other Amount
更多
赞赏金额
¥
最低赞赏 ¥0
1
2
3
4
5
6
7
8
9
0
.
虚拟化,操作系统,以及一些小工具 · 目录
虚拟化,操作系统,以及一些小工具
上一篇TransPaste 升级:一个剪贴板翻译工具的自我修养下一篇用完全开源免费的本地模型来对视频中的音频进行降噪
Close
更多
搜索「」网络结果
Close
调整当前正文文字大小
更多
100%