Zerox OCR
一种简单直接的方法,可以将文档进行OCR处理以供AI摄取。毕竟,文档本质上是一种视觉表现形式。对于复杂的布局、表格、图表等,视觉模型确实更有意义!
基本逻辑如下:
- 输入PDF(URL或文件缓冲区)
- 将PDF转换为一系列图像
- 将每张图像传递给GPT,并友好地请求生成Markdown
- 汇总响应并返回Markdown
听起来很基础!但使用gpt-4o-mini
时,这种方法在价格上可以与现有产品竞争,且结果明显更好。
价格比较
这是与其他文档处理服务的价格对比。使用Zerox处理1,000页大约需要25M输入token和0.4M输出token。
服务 | 成本 | 准确度 | 表格质量 |
---|---|---|---|
AWS Textract [1] | $1.50 / 1,000页 | 低 | 低 |
Google Document AI [2] | $1.50 / 1,000页 | 低 | 低 |
Azure Document AI [3] | $1.50 / 1,000页 | 高 | 中 |
Unstructured (PDF) [4] | $10.00 / 1,000页 | 中 | 中 |
------------------------ | ------------------- | ------ | -------- |
Zerox (gpt-mini) | $ 4.00 / 1,000页 | 高 | 高 |
安装
npm install zerox
Zerox使用graphicsmagick
和ghostscript
进行PDF转图像的处理步骤。这些应该会自动安装,但您可能需要手动安装。
使用方法
使用文件URL
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,
});
从本地路径
import path from "path";
import { zerox } from "zerox";
const result = await zerox({
filePath: path.resolve(__dirname, "./cs101.pdf"),
openaiAPIKey: process.env.OPENAI_API_KEY,
});
选项
const result = await zerox({
// 必填
filePath: "path/to/file",
openaiAPIKey: process.env.OPENAI_API_KEY,
// 可选
concurrency: 10, // 同时处理的页数。
maintainFormat: false, // 速度较慢但有助于保持一致的格式。
cleanup: true, // 运行后清理临时图像。
outputDir: undefined, // 将合并的result.md保存到文件
tempDir: "/os/tmp", // 用于临时文件的目录(默认:系统临时目录)
});
maintainFormat
选项尝试通过将前一页的输出作为额外上下文传递给下一页,以返回一致格式的markdown。这需要同步运行请求,所以会慢很多。但如果您的文档有大量表格数据,或经常有跨页的表格,这个选项很有价值。
请求 #1 => 第1页图像
请求 #2 => 第1页markdown + 第2页图像
请求 #3 => 第2页markdown + 第3页图像
输出示例
{
completionTime: 10038,
fileName: 'invoice_36258',
inputTokens: 25543,
outputTokens: 210,
pages: [
{
content: '# 发票 # 36258\n' +
'**日期:** 2012年3月6日 \n' +
'**运送方式:** 头等舱 \n' +
'**应付余额:** $50.10 \n' +
'## 账单地址:\n' +
'Aaron Bergman \n' +
'98103, 西雅图, \n' +
'华盛顿州, 美国 \n' +
'## 收货地址:\n' +
'Aaron Bergman \n' +
'98103, 西雅图, \n' +
'华盛顿州, 美国 \n' +
'\n' +
'| 商品 | 数量 | 单价 | 金额 |\n' +
'|----------------------------------------|------|--------|--------|\n' +
'| 全球按钮式经理椅,靛蓝色 | 1 | $48.71 | $48.71 |\n' +
'| 椅子, 家具, FUR-CH-4421 | | | |\n' +
'\n' +
'**小计:** $48.71 \n' +
'**折扣 (20%):** $9.74 \n' +
'**运费:** $11.13 \n' +
'**总计:** $50.10 \n' +
'---\n' +
'**备注:** \n' +
'感谢您的惠顾! \n' +
'**条款:** \n' +
'订单ID : CA-2012-AB10015140-40974 ',
page: 1,
contentLength: 747
}
]
}
许可证
本项目采用MIT许可证。