不知道各位小伙伴平时工作中有没有一些将别的格式的文档转为 Markdown 的需求?

最近发现了一个好玩的开源项目,能够帮我们把二十多种不同格式的文章利用 AI 转为 markdown,非常好用。

一 Zerox OCR

图片

Zerox OCR 是一个基于 GPT 技术的 OCR 工具,它能够将 PDF、DOCX 等文件转换为 Markdown 格式。

相比于传统的 OCR 工具,Zerox OCR 有很多不一样的地方,具体体现在:

  1. 零配置:Zerox OCR 的一个显著特点是它的零配置特性,用户只需提供文件和 API token,即可轻松实现文本提取,省去了繁琐的参数设置。
  2. 高精度识别:Zerox OCR 使用 GPT-4o-mini 模型进行文本识别,能够处理完全陌生的 PDF、图片等文档类型,不需要事先训练数据,即可提供高精度的 OCR 结果。
  3. Markdown 输出格式:在 OCR 转换过程中,Zerox 将每个识别的页面转化为简洁的 Markdown 格式,方便对文本进行后期处理和整理。
  4. 支持复杂文档:Zerox 不仅可以处理简单的文本,还能够处理包含表格、图表等复杂布局的文件。无论是扫描版 PDF 还是其他格式,Zerox 都可以对它们进行 OCR 识别,生成准确的文本内容。
  5. 本地运行与 API 支持:Zerox 支持本地运行,无需担心隐私泄露问题。此外,它还提供了 API 接口,方便集成到应用中,提升业务流程的自动化和效率。
  6. 开源项目:Zerox 是一个开源项目,使用 MIT 许可证,用户可以免费使用其核心功能。

Zerox OCR 以其高效准确、易用性和广泛的应用前景,成为了文档处理和数据提取领域的一个重要工具。开发者和用户可以通过访问 Zerox 的 GitHub 页面来体验这款 OCR 神器,开启高效文本提取之旅。

GitHub 地址:https://github.com/getomni-ai/zerox

二 支持的文档格式

那么这个开源工具到底都支持哪些不同格式的文档呢?

我们来看下官方给的这个支持的文档列表:

[
  "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
]

可以看到,主流的文档格式都是支持的。

三 实践

最后我们再来看下这个工具该如何使用。

首先来安装:

npm install zerox

Zerox 使用 graphicsmagick 和 ghostscript 进行 PDF 到图像的转换。这些工具应会自动下载,但有时需要手动安装。

手动安装命令如下:

sudo apt-get update
sudo apt-get install -y graphicsmagick

装好之后就可以使用了,使用的时候可以使用一个在线的文件路径:

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,
});

最终解析结果类似下面这样:

{
  completionTime: 10038,
  fileName: 'invoice_36258',
  inputTokens: 25543,
  outputTokens: 210,
  pages: [
    {
      content: '# INVOICE # 36258\n' +
        '**Date:** Mar 06 2012  \n' +
        '**Ship Mode:** First Class  \n' +
        '**Balance Due:** $50.10  \n' +
        '## Bill To:\n' +
        'Aaron Bergman  \n' +
        '98103, Seattle,  \n' +
        'Washington, United States  \n' +
        '## Ship To:\n' +
        'Aaron Bergman  \n' +
        '98103, Seattle,  \n' +
        'Washington, United States  \n' +
        '\n' +
        '| Item                                       | Quantity | Rate   | Amount  |\n' +
        '|--------------------------------------------|----------|--------|---------|\n' +
        "| Global Push Button Manager's Chair, Indigo | 1        | $48.71 | $48.71  |\n" +
        '| Chairs, Furniture, FUR-CH-4421             |          |        |         |\n' +
        '\n' +
        '**Subtotal:** $48.71  \n' +
        '**Discount (20%):** $9.74  \n' +
        '**Shipping:** $11.13  \n' +
        '**Total:** $50.10  \n' +
        '---\n' +
        '**Notes:**  \n' +
        'Thanks for your business!  \n' +
        '**Terms:**  \n' +
        'Order ID : CA-2012-AB10015140-40974  ',
      page: 1,
      contentLength: 747
    }
  ]
}
扫码领红包

微信赞赏支付宝扫码领红包

发表回复

后才能评论