跳到正文
曾亮懿 ZengLiangYi Blog

PaddleOCR-VL 文档解析评估工具

接入百度智能云文档解析 API,对照原件检查阅读顺序、版面坐标、表格和 Markdown,评估真实文档的解析效果。

目录 展开 收起

接入之前,先检查自己的文档

文档解析的结果需要放回原件中检查:双栏内容的阅读顺序是否正确,标题是否分级,表格是否保留结构,以及导出的 Markdown 是否方便后续使用。只看一段识别文本,很难判断这些问题。

我做了这个本地 Web Demo,把百度智能云 PaddleOCR-VL 文档解析 API 的调用和结果校样放到一个页面中。上传文档后,可以对照版面、阅读顺序和完整 JSON,判断接口是否适合接入业务系统。

页面首图使用项目真实界面加载合成展示数据,展示版面重建和阅读顺序的对应关系。图中内容用于说明交互,不代表百度 API 的实测识别效果。

把输出放到一起看

左侧提供文档校样。PDF 使用 PDF.js 渲染原件,浏览器支持的图片直接预览;其他格式在接口返回有效坐标时尝试重建版面。解析元素和行级坐标可以叠加到页面上,帮助定位结果来自哪里。

右侧有四种视图:

  • 阅读顺序:按接口返回的元素顺序排列,点击后定位到版面。
  • Markdown:检查解析结果的渲染效果。
  • MD 源码:查看原始 Markdown,并下载保存。
  • JSON:保留完整解析结构,便于检查字段或继续开发。

表格、图片内容可能不在元素的文本字段里。界面通过 layout_id 关联对应的表格和图片数据,让这些元素也能进入校样过程。

从上传到结果展示

浏览器把文件交给本地 Python 服务。服务获取 Access Token、提交解析任务,再轮询状态;任务完成后下载 Markdown 和解析 JSON,返回前端展示。

后端使用 Python 标准库,无需安装第三方 Python 包,也无需本地部署模型。前端通过 CDN 加载 PDF.js 和 Markdown 渲染库,因此原件预览和渲染仍有网络依赖。

异步流程需要把等待和失败呈现给使用者。Demo 每五秒查询一次任务状态,最长等待十分钟,并把接口返回的错误显示到页面。这个实现面向单人评估,没有增加任务队列和并发调度。

保留结果,方便判断下一步

接口调用开启图表解析、跨页表格合并、标题重新分级、印章识别和行级坐标返回。界面保留接口返回的版面类型,也展示未知类型,避免用固定枚举隐藏新返回的内容。

项目不对结果做业务字段提取或规则修正。评估时可以分别检查模型返回了什么,以及业务还需要补哪些处理。对于后续的检索或结构化提取,Markdown 和 JSON 提供了两种可继续加工的输入。

本地运行与使用范围

准备 Python 3.9 或更高版本,在本地配置百度 API Key 和 Secret Key,运行 python3 server.py,然后访问 http://127.0.0.1:8765。源码和完整启动说明见 项目仓库。

文档会发送至百度智能云,调用会消耗账户额度。服务默认只监听本机,没有账号、鉴权、数据库或结果持久化,适合在接入业务前评估文档样本。主 Markdown 和 JSON 会在任务完成后下载,嵌入图片仍可能引用云端临时地址;需要保留的结果应及时导出。

有问题或想法?

无论是讨论技术实现,还是交流项目思路,都可以给我留言。