摘要:由Getomni.ai开发,采用现代化的方法解决了文档处理中的一个基本问题:文档本质上是为人类视觉设计的,而AI系统需要以结构化方式访问其中的信息。
Zerox是一个简单而强大的OCR(光学字符识别)工具,专为AI文档处理而设计。
由Getomni.ai开发,采用现代化的方法解决了文档处理中的一个基本问题:文档本质上是为人类视觉设计的,而AI系统需要以结构化方式访问其中的信息。
Zerox的核心逻辑是将各种格式的文档(如PDF、Word、图片等)转换为一系列图像,利用先进的AI视觉模型从这些图像中提取文本并转换为Markdown或结构化数据格式。
网页地址:https://getomni.ai/ocr-demo
工作原理
用户只需上传文件,Zerox 会将其转换为一系列图像。每个图像会被传递给 GPT 模型,生成相应的 Markdown 文本。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-utilsNode.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 zeroximport asyncio# 使用OpenAI模型ai_provider = "openai" # 仅使用vision模型!参考: https://docs.litellm.ai/docs/providersmy_api_key = "..."# 异步调用result = await zerox("./path/to/file.pdf",model="gpt-4-vision-preview",api_key=my_api_key)主要参数配置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}Zerox为文档OCR和AI处理提供了一个简单而强大的解决方案,特别适合开发者将各种文档转换为AI可处理的格式。通过支持多种文件格式和AI模型,以及提供Node.js和Python两个版本的实现,Zerox满足了不同开发环境和应用场景的需求。
对于需要处理大量文档并提取结构化数据的项目,Zerox提供了一种高效且灵活的方法,减少了文档处理的复杂性,同时充分利用了现代AI视觉模型的强大能力。
Github项目地址:https://github.com/getomni-ai/zerox
来源:走进科技生活