Skip to content

DocVortex 0.5.10

Choose a tag to compare

@myhloli myhloli released this 07 Oct 06:44
· 73 commits to main since this release

DocVortex 0.5.10 修复 0.5.9 新增原生 PDF 规则中的性能回退,保留完整识别结果和现有公共 API/MinerU 调用方式。

  • 图表规则:复合路径在矩形展开前只计算一次横纵基线,消除逐矩形重复扫描,最坏复杂度从接近 O(n³) 降至 O(n²)。保留原有容差、75% 支持率、边界及文字过滤规则。
  • Rust 批量内核:批量处理数字噪声、遮挡候选、Form 内容流事件、字形位集、图片白边、坐标轴、公式几何、跨栏短尾及表格局部证据;保留稳定源索引、遍历顺序、平局规则和 canonical 公式重放。缓存绑定页面及输入状态,Python 保留资源安全和无法等价处理时的完整回退。
  • 像素交付:macOS 整页渲染通过具有明确生命周期的共享内存传递原始像素,保持渲染参数和素材字节;正常完成、异常、崩溃和取消均回收资源。其他平台及分配失败沿用文件路径,不缓存渲染结果。
  • 兼容性:核对 41 个公开模块、321 个符号及公开类方法,签名和类型保持一致;ModelJson/MiddleJson、MinerU 返回值以及 auto|python|rust 选择方式不变。Python/Rust 私有协议由 30 升至 31,wheel 包含匹配的源码和扩展;现有兼容的 MinerU 无需修改调用代码或依赖范围。

同机 32 份 PDF/299 页(Flash 为 31 份),三轮平衡配对,每份预热一次并计时五次取中位数,三条链路串行测量。以逐文档三轮中位数的中位数求和:

链路 0.5.9 rust 0.5.10 rust 加速倍数
DocVortex 公开 parse() 28.20 s 14.48 s 1.95×
MinerU Flash 28.05 s 14.44 s 1.94×
MinerU 共享 PDF 处理 19.19 s 12.85 s 1.49×

shared 不计模型计算,冻结输入已独立审计。公开 parse、Flash 三轮均不超过正式 0.5.8 的 105%;相对 0.5.9 没有持续超过 5% 的逐文档耗时或 RSS 回退。完整方法、RSS 与语料重叠说明见性能记录。README 保留正式 0.5.9 与既有 0.4.25 的独立对照,不混用版本数字。

本地验收重放 219 份 PDF/507 页,Python/Rust/auto 完整文字、样式、坐标、顺序及实际素材字节均与正式 0.5.9 一致。Python 全量 8354 项、Rust 全量 9456 项通过,另通过 Cargo tests、Clippy、格式检查、独立 wheel 安装及真实 PDF 验证。发布前补充 123 项公共契约测试和 79 项当前 MinerU 对接测试;两份真实 PDF 的 32 份渲染输出及素材一致,仅 ZIP/EPUB 时间字段不同。

发布前跨平台 CI 22 项任务全部通过,覆盖 Python 3.10/3.14、Python/Rust、PDFium 版本、Pydantic 最低版本及跨平台字体/几何一致性。

发布流水线 全部通过,完成 Linux x86_64/ARM64、Windows x86_64、macOS ARM64/Intel 五个平台的原生 wheel 验证,以及纯 Python wheel 和源码包发布。PyPI 正式包 已独立下载并核对 SHA;新环境中的版本、协议 31 和真实 PDF 的 Python/Rust 完整输出对照通过。

完整变更:v0.5.9 → v0.5.10