AI个人学习
和实操指南

Zerox:PDF、DOCX、图像转换为Markdown,视觉模型高精度OCR

本文于 2025-01-19 21:15 更新,部分内容具有时效性,如有失效,请留言

综合介绍

Zerox是一个开源项目,旨在通过视觉模型将PDF、DOCX、图像等文件转换为Markdown格式。该项目由getomni-ai团队开发,提供了简单高效的OCR(光学字符识别)解决方案。Zerox支持Node和Python两种编程语言,利用graphicsmagick和ghostscript进行PDF到图像的处理。用户可以通过提供文件路径和OpenAI API密钥,快速将文档转换为Markdown格式,适用于各种复杂布局的文档,如表格和图表。

Zerox:将PDFDOCX、图像转换为Markdown,使用视觉模型实现高效OCR-1


 

功能列表

  • 支持PDF、DOCX、图像等文件格式的转换
  • 提供Node和Python两种编程语言的支持
  • 利用视觉模型进行高效OCR处理
  • 自动安装graphicsmagick和ghostscript进行PDF到图像的处理
  • 支持文件路径和URL两种输入方式
  • 提供多种可选参数,如并发处理、页面方向校正、错误处理模式等
  • 支持预处理和后处理回调函数
  • 可选择保存转换结果到指定目录

 

使用帮助

安装流程

Node版本

  1. 安装Node.js和npm
  2. 运行命令 npm install zerox
  3. 确保系统已安装graphicsmagick和ghostscript,若未安装,可运行以下命令:
   sudo apt-get update
sudo apt-get install -y graphicsmagick ghostscript

Python版本

  1. 安装Python和pip
  2. 运行命令 pip install zerox
  3. 确保系统已安装graphicsmagick和ghostscript,若未安装,可运行以下命令:
   sudo apt-get update
sudo apt-get install -y graphicsmagick ghostscript

使用方法

Node版本

  1. 导入zerox模块:
   import { zerox } from "zerox";
  1. 使用文件路径进行转换:
   const result = await zerox({
filePath: "path/to/file.pdf",
openaiAPIKey: process.env.OPENAI_API_KEY,
});
  1. 使用URL进行转换:
   const result = await zerox({
filePath: "https://example.com/file.pdf",
openaiAPIKey: process.env.OPENAI_API_KEY,
});

Python版本

  1. 导入zerox模块:
   from zerox import zerox
  1. 使用文件路径进行转换:
   result = zerox(
file_path="path/to/file.pdf",
openai_api_key="your_openai_api_key"
)
  1. 使用URL进行转换:
   result = zerox(
file_path="https://example.com/file.pdf",
openai_api_key="your_openai_api_key"
)

主要功能操作流程

  1. 文件转换:提供文件路径或URL,调用zerox函数进行转换,返回Markdown格式的文本。
  2. 并发处理:通过设置concurrency参数,控制同时处理的页面数量,提高处理效率。
  3. 页面方向校正:默认启用页面方向校正功能,确保转换后的文本方向正确。
  4. 错误处理模式:可选择忽略错误或抛出错误,通过设置errorMode参数进行配置。
  5. 预处理和后处理回调:提供回调函数,在每页处理前后执行自定义操作。
  6. 保存结果:通过设置outputDir参数,将转换结果保存到指定目录。

示例代码

Node版本

import { zerox } from "zerox";
const result = await zerox({
filePath: "path/to/file.pdf",
openaiAPIKey: process.env.OPENAI_API_KEY,
cleanup: true,
concurrency: 10,
correctOrientation: true,
errorMode: "IGNORE",
maintainFormat: false,
maxRetries: 1,
maxTesseractWorkers: -1,
model: "gpt-4o-mini",
onPostProcess: async ({ page, progressSummary }) => Promise<void>,
onPreProcess: async ({ imagePath, pageNumber }) => Promise<void>,
outputDir: "output",
pagesToConvertAsImages: -1,
});

Python版本

from zerox import zerox
result = zerox(
file_path="path/to/file.pdf",
openai_api_key="your_openai_api_key",
cleanup=True,
concurrency=10,
correct_orientation=True,
error_mode="IGNORE",
maintain_format=False,
max_retries=1,
max_tesseract_workers=-1,
model="gpt-4o-mini",
on_post_process=lambda page, progress_summary: None,
on_pre_process=lambda image_path, page_number: None,
output_dir="output",
pages_to_convert_as_images=-1,
)

 

我们使用 libreoffice 和 graphicsmagick 的组合来进行文档到图像的转换。对于非图像/非 PDF 文件,我们使用 libreoffice 将该文件转换为 PDF,然后再转换为图像。

[
"pdf", // Portable Document Format
"doc", // Microsoft Word 97-2003
"docx", // Microsoft Word 2007-2019
"odt", // OpenDocument Text
"ott", // OpenDocument Text Template
"rtf", // Rich Text Format
"txt", // Plain Text
"html", // HTML Document
"htm", // HTML Document (alternative extension)
"xml", // XML Document
"wps", // Microsoft Works Word Processor
"wpd", // WordPerfect Document
"xls", // Microsoft Excel 97-2003
"xlsx", // Microsoft Excel 2007-2019
"ods", // OpenDocument Spreadsheet
"ots", // OpenDocument Spreadsheet Template
"csv", // Comma-Separated Values
"tsv", // Tab-Separated Values
"ppt", // Microsoft PowerPoint 97-2003
"pptx", // Microsoft PowerPoint 2007-2019
"odp", // OpenDocument Presentation
"otp", // OpenDocument Presentation Template
];
未经允许不得转载:首席AI分享圈 » Zerox:PDF、DOCX、图像转换为Markdown,视觉模型高精度OCR

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文