Github 11.2K,这款开源工具用 AI 实现文档 OCR 自动化,支持 30 + 格式!

Zerox是一个简单而强大的OCR(光学字符识别)工具,专为AI文档处理而设计。

它由Getomni.ai开发,采用现代化的方法解决了文档处理中的一个基本问题:文档本质上是为人类视觉设计的,而AI系统需要以结构化方式访问其中的信息。

Zerox的核心逻辑简洁明了:将各种格式的文档(如PDF、Word、图片等)转换为一系列图像,利用先进的AI视觉模型从这些图像中提取文本并转换为Markdown或结构化数据格式。

主要特点

  1. 多格式支持:可处理多种文档格式,包括PDF、Word文档、Excel表格、PowerPoint演示文稿、HTML、XML和各种文本格式等。

  2. 多平台AI模型集成:Zerox支持多种AI视觉模型,包括OpenAI(GPT-4、GPT-4 Vision等)、Azure OpenAI、AWS Bedrock(支持Claude 3系列模型)、Google Gemini以及Vertex AI(仅Python版本支持)。

  3. 高级数据提取:Zerox提供丰富的数据提取功能,支持通过schema进行结构化数据提取,允许逐页数据提取,并能够在处理过程中保持文档的原始格式和结构。

  4. 性能优化:为提高处理效率,Zerox实现了多种性能优化措施,包括并发处理功能,支持异步API调用,提供临时文件管理功能,以及灵活的错误处理模式。

免费在线实用

网页地址:https://getomni.ai/ocr-demo

工作原理

  1. 用户只需上传文件,Zerox 会将其转换为一系列图像。
  2. 每个图像会被传递给 GPT 模型,生成相应的 Markdown 文本。
  3. Zerox 会汇总所有响应,返回完整的 Markdown 文档。

安装方法

Node.js版本

npm install zerox
# 依赖(需手动安装)
sudo apt-get install graphicsmagick ghostscript  # Linux示例

Python版本

pip install py-zerox
# 依赖(需手动安装poppler)
# macOS: brew install poppler
# Linux: sudo apt-get install poppler-utils

使用方法

Node.js示例

从URL加载文件

import { zerox } from "zerox";

const result = await zerox({
  filePath: "https://omni-demo-data.s3.amazonaws.com/test/cs101.pdf",
  credentials: {
    apiKey: process.env.OPENAI_API_KEY,
  }
});

从本地路径加载

import { zerox } from "zerox";
import path from "path";

const result = await zerox({
  filePath: path.resolve(__dirname, "./cs101.pdf"),
  credentials: {
    apiKey: process.env.OPENAI_API_KEY,
  },
});

Python示例

from zerox import zerox
import asyncio

# 使用OpenAI模型
ai_provider = "openai" # 仅使用vision模型!参考: https://docs.litellm.ai/docs/providers
my_api_key = "..."

# 异步调用
result = await zerox(
    "./path/to/file.pdf",
    model="gpt-4-vision-preview",
    api_key=my_api_key
)

主要参数配置

  • filePath:要处理的文件路径或URL(必需)
  • credentials:AI提供商的API密钥(必需)
  • cleanup:处理后是否清理临时文件(默认:true)
  • concurrency:并发处理的页面数量(默认:10)
  • correctOrientation:是否尝试识别和纠正页面方向(默认:true)
  • extractOnly:是否仅提取结构化数据(默认:false)
  • imageDensity:图像转换的DPI(默认:300)
  • maintainFormat:是否保持一致的格式(默认:false)
  • model:使用的AI模型(支持多种提供商的不同模型)
  • tempDir:临时文件存储目录

数据提取功能

Zerox支持从文档中提取结构化数据,特别适合处理发票、收据等包含关键信息的文档。通过提供schema,用户可以指定要提取的特定信息,使其符合JSON Schema标准。

以下是提取数据的示例输出:

{
  "completionTime": 10030,
  "filename": "invoice_36258",
  "pagesTimes": 10050,
  "pages": [
    {
      "page": 1,
      "contents": "# INVOICE # 36258\n\n*wDate*: Mar 08 2012 \n\n*wClient*: First Class \n\n*wShipping Cost*: $38.18 \n\n...",
      "contentLength": 707
    }
  ],
  "extracted": null,
  "summary": {
    "totalPages": 1,
    "ocr": 0,
    "failed": 0,
    "successful": 1
  },
  "extractions": null
}

支持的文件类型

  • 文档格式:PDF、DOC、DOCX、ODT、RTF、TXT等
  • 表格格式:XLS、XLSX、ODS、CSV、TSV等
  • 演示文稿:PPT、PPTX、ODP等
  • 网页格式:HTML、HTM、XML等
  • 其他格式:WPS、WPD等

总结

Zerox为文档OCR和AI处理提供了一个简单而强大的解决方案,特别适合开发者将各种文档转换为AI可处理的格式。通过支持多种文件格式和AI模型,以及提供Node.js和Python两个版本的实现,Zerox满足了不同开发环境和应用场景的需求。

对于需要处理大量文档并提取结构化数据的项目,Zerox提供了一种高效且灵活的方法,减少了文档处理的复杂性,同时充分利用了现代AI视觉模型的强大能力。

想要了解更多或尝试Zerox,可以访问项目的在线演示(https://getomni.ai/ocr-demo)或查阅完整文档(https://docs.getomni.ai/zerox)。

更多资料获取

📚 个人网站:ipengtao.com

如果还想要领取更多更丰富的资料,可以点击文章下方名片,回复【优质资料】,即可获取 全方位学习资料包。

在这里插入图片描述
点击文章下方链接卡片,回复【优质资料】,可直接领取资料大礼包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值