
Zerox OCR3步把PDF和扫描件转成Markdown让AI直接读懂文档【免费下载链接】zeroxOCR Document Extraction using vision models项目地址: https://gitcode.com/GitHub_Trending/ze/zerox如果你手里有一堆扫描版 PDF、发票图片或 Word 文档想让 AI 读取里面的内容第一步往往就卡住了文字提取。传统 OCR光学字符识别即从图片里读出文字的技术遇到复杂排版、跨页表格、图表经常拆得七零八落你得手工整理半天。Zerox 换了一个思路——不逐字识别而是把整页文档交给视觉大模型直接产出一份结构完整的 Markdown。读完这篇你可以用 3 步跑通它一个文件进一份 AI 能直接消费的 Markdown 出。什么是 Zerox用视觉模型做文档 OCR一句话定位Zerox 是一个用视觉模型做文档 OCR 的开源项目核心是把 PDF、Word、扫描件等各种文档转成 Markdown方便喂给大模型。它没有自研识别引擎流程朴素到有点暴力把文件逐页转成图片 → 把每页图片发给视觉模型请它转成 Markdown → 把每页结果拼接成一份完整文档。听起来简单但对表格、图表、复选框这类传统 OCR 的老大难视觉模型的理解能力反而更好使。30 秒跑通一行代码把 PDF 转 MarkdownPython 版安装后系统需先装好 poppler这是 PDF 转图片的依赖库import asyncio, os from pyzerox import zerox os.environ[OPENAI_API_KEY] your-key result asyncio.run(zerox(file_pathassets/cs101.pdf, modelgpt-4o-mini)) print(result.pages[0].content)无需额外配置不需要选引擎、调参数、装识别包。只要一个模型服务的 API Key输出就是逐页的 Markdown 内容。仓库自带示例文件assets/cs101.pdf拿来就能试。能力拆解三个模块撑起整条流水线模块一文档转图像先让模型看清楚它是什么一条文件预处理管线把 PDF、DOCX、PPT 等 20 多种格式统一转成 300 DPI 的页面图片。为什么重要视觉模型只认图片格式统一了后面所有文档才走同一条路你不用为每种格式单独写逻辑。具体怎么体现核心实现在 py_zerox/pyzerox/processor/pdf.py通过 pdf2image 按页切图Node 版还支持方向矫正correctOrientation和边缘裁剪trimEdges扫描件歪斜、留白多也能先摆正再识别。模块二多供应商视觉模型不绑定一家大模型它是什么统一的模型接入层Python 版通过 LiteLLM一个统一调用各家大模型的中间库接入 OpenAI、Azure、AWS Bedrock、Google Gemini、Vertex AI 等。为什么重要识别质量跟模型强相关你能按预算和效果在 gpt-4o、Claude、Gemini 之间随时切换不会被单一厂商锁死。具体怎么体现模型定义集中在 py_zerox/pyzerox/models/Node 版对应 node-zerox/src/models/换模型只需改一个参数。各家调用方式可参考 examples/node/ 下的 azure.ts、bedrock.ts、google.ts 等示例。模块三跨页格式保持表格不会被拦腰截断它是什么结果聚合层。每页的 Markdown 按页码拼接成一份完整文档开启maintainFormat后还会把上一页的输出作为上下文传给下一页。为什么重要跨页表格是文档转 Markdown 最容易坏的地方上下文传递让模型记得上一页的表头长什么样。具体怎么体现转换规则写死在 shared/systemPrompt.txt 里——图表优先转表格、无文字图片替换为描述、复选框用 ☐/☑ 表示。你可以直观看到每页图片 → 一份 Markdown的完整约定。真实演示一张物流发票的前后对比仓库里放了 40 组输入文档 → 输出 Markdown的样本shared/inputs与shared/outputs一一对应这是其中一组输入是一张双栏排版、含两个运单块的物流发票扫描件上图。Zerox 输出的 shared/outputs/0020.md 片段# ZESTADO EXPRESS **Bill To:** Custom Board Makers ... **SHIPPING INVOICE 10112** Issue Date: 8th December 2021 ## Waybill No: 012345A ### Main Shipping Information **Customer Reference:** GC12345 ...一句话结果原来散落在双栏排版里的字段变成了带标题层级、加粗标签的结构化 Markdown两个 Waybill 区块各自独立成节AI 直接引用即可。仓库还配了自动校验脚本把输出与 shared/test.json 里的期望关键词逐页比对跑一遍npm run test就知道关键内容有没有丢见 node-zerox/tests/README.md。适合谁适用场景与边界适合你如果你需要把 PDF、发票、合同、手册批量转成 Markdown 给 RAG / AI 问答系统做语料文档排版复杂表格、图表混排传统 OCR 输出需要大量手工修补你已有任一主流视觉模型的 API Key不想自建识别流水线。这些情况要诚实面对它不是独立 OCR 引擎识别质量和成本都取决于你选的模型——换个更弱的模型效果就跟着变弱有系统依赖Node 处理 PDF 需要 graphicsmagickPython 版需要 poppler两端功能不完全对齐结构化数据抽取按 schema 抽字段、错误处理模式只在 Node 版提供自定义系统提示词只在 Python 版提供它面向的是现代文档发票、报告、教材、手册。对严重破损、手写的古籍扫描件它没有专门的修复或增强能力效果取决于模型本身的容错。资源入口与下一步完整文档与参数表README.md输入/输出对照样本shared/inputs/ 与 shared/outputs/Node 版调用示例examples/node/openai.ts想本地跑起来的话clone 仓库地址https://gitcode.com/GitHub_Trending/ze/zerox建议的路径先用仓库自带的assets/cs101.pdf跑通第一遍再把自己的一个真实文档丢进shared/inputs看看输出质量——3 步之内你就能判断它能不能接进你现在的文档流程里。【免费下载链接】zeroxOCR Document Extraction using vision models项目地址: https://gitcode.com/GitHub_Trending/ze/zerox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考