Zerox OCR 是一款开源的 AI 文档智能工具,能将 PDF、DOCX、图片等格式的文件转换为 Markdown。Zerox OCR利用 AI 视觉模型(例如 GPT-4o-mini)实现 OCR 识别,先将文档拆分成一系列图片,再逐一传递给模型生成 Markdown,最后整合输出为结构化数据,能识别复杂的文档布局、表格和图表等内容。
Zerox提供了Node.js和Python两种包,你可以选择使用你喜欢的版本。
如果你选择使用Node.js,使用以下代码来使用Zerox:
import { zerox } from "zerox";
const result = await zerox({
filePath: "https://omni-demo-data.s3.amazonaws.com/test/cs101.pdf",
openaiAPIKey: process.env.OPENAI_API_KEY,
});
如果你选择Python,使用以下代码来使用Zerox:
from pyzerox import zerox
import os
import json
import asyncio
async def main():
file_path = "https://omni-demo-data.s3.amazonaws.com/test/cs101.pdf"
result = await zerox(file_path=file_path, model="gpt-4o-mini")
return result
result = asyncio.run(main())
print(result)
Zerox支持多种文件类型,包括PDF、DOC、DOCX、ODT、RTF、TXT、HTML、XML、WPS、WPD、XLS、XLSX、ODS、CSV、TSV、PPT、ODP等,对于非图像和非PDF文件,Zerox会先将其转换为PDF,然后再转换为图像。
使用Zerox需要安装一些依赖项。如果是Node.js版本,需要先安装graphicsmagick和ghostscript。如果Python版本,需要先安装poppler。
Zerox输出一个包含Markdown内容的对象,包含一些元数据。例如:
{
"completionTime": 10038,
"fileName": "invoice_36258",
"inputTokens": 25543,
"outputTokens": 210,
"pages": [
{
"content": "# 发票 # 1234\n**日期2025年4月14日\n**运输方式:** 顺丰快递\n**应付余额:** ¥50.10\n## 收件人:\n无名\n98103, 北京市,\n朝阳区立水桥\n## 发货人:\n川普\n98103, 海湖庄园,\n佛罗里达州, 美国\n\n| 商品 | 数量 | 单价 | 总额 |\n| --- | --- | --- | --- |\n| 英伟达H100 | 10000 | $250 | ¥2500000 |",
"page": 1
}
]
}