一款OCR神器,5.6K Star,支持20多种文档格式,一键转换成markdown

科技   2024-11-03 22:08   广东  

不知道各位小伙伴平时工作中有没有一些将别的格式的文档转为 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
    }
  ]
}

这个用法是不是非常 Easy,如果小伙伴看过松哥的 vhr 或者 tienchin,对 Vue 的使用有基本的了解,那么上面这段代码可就太好明白了。

好啦,更多功能小伙伴们可以查看 Zerox 官方文档,松哥这里就不啰嗦了。


微服务项目实战

松哥最近把 AI 面试官项目改造成了微服务,并且录制了配套的视频课程。这次真的是 Buff 叠满:

  • Spring Boot3 + Vue3 + 微信小程序
  • AI
  • 微服务项目

手把手带领小伙伴们做一个 AI 面试官微服务项目。

并且我在这个课程中也会和大家分享如何在简历中写微服务项目以及如何跟面试官去讲自己的微服务项目,让简历更靓。

下面我以问答的形式向小伙伴们介绍下微服务版的 AI 面试官项目。

项目介绍

  • 项目技术栈是什么?

AI 面试官项目采用 Spring Boot3 + Vue3 + uni-app 实现,微服务版基于脚手架完成,涉及到的组件有 Nacos、Gateway、OpenFeign 等。 其他的技术细节采用了如 MyBatis-Plus、Redis 等等。

  • 课程内容有哪些?

课程分为了四大部分,前三部分是项目的主体内容,第四部分是项目的赠送内容:

  1. 第一部分是 AI 面试官项目主体,这块我会带领大家手把手开发 AI 面试官项目的后台管理功能和小程序功能,这一阶段的工作完成后,大家的小程序就可以部署上线了,这一阶段大概 13 小时左右。
  2. 第二部分我会和大家一起拆解目前市面上主流的微服务项目脚手架,这一阶段通过对项目架构的分析,让大伙不再觉得微服务是一个高大上的东西,微服务项目是一个人人都可以快速掌握的东西。这一部分大约两小时。
  3. 第三部分我会对前面第一部分已经完成的 AI 面试官项目进行微服务化改造,让大家在理解微服务脚手架的基础之上,真正实践一次微服务。这一部分大约两小时。
  4. 第四部分是赠送给大家的,和大家聊一聊目前比较火的 AI 智能体,带领小伙伴们亲手实践几个 AI 智能体,这一部分大约是两小时。
  • 课程适合谁学?

如果你已经把微服务各个组件掌握的滚瓜烂熟,但是却从没做过微服务项目; 如果你想拥抱 AI 但是却只会把 AI 当搜索引擎使用; 如果你想把 Java 和 AI 结合起来做个小玩意但是却无从下手; 如果你想体验一把 Spring Boot3+Vue3 的最新玩法; 那么这个项目适合你。

  • 课程不适合谁学?

如果没有 Java 基础,或者不会 SSM 框架,那么不建议学习这个项目。

  • 我学习过程中遇到问题怎么办?

这个课程松哥提供了微信答疑群,所有课程相关的问题,都可以发到群里讨论,我也都会回复的。

  • 课程只有视频资料吗?

这个课程除了视频之外,还有配套的笔记和代码案例,会一同给到大家。

  • 课程会教小程序上线吗?

会教如何上线小程序,包括小程序审核需要注意的问题,都会发到群里,尽力确保每位小伙伴做完的项目都能成功上线。

  • 小程序做出来是什么样子的?

xxx

  • 我能不能先看下课程目录?

AI 面试官课程完整目录

关于松哥

9 年程序员生涯,Java 畅销书作者,华为云最具价值专家,华为开发者社区之星,GitHub 知名项目作者。

目前产品有 Java 项目课程、Java 简历指导、1V1 模拟面试等,如有需求欢迎来勾搭。

感兴趣小伙伴加微信备注 ai

课程目前售价 499,感兴趣小伙伴加松哥微信备注 ai。


江南一点雨
一站式Java全栈技术学习平台!
 最新文章