Documind:开源 AI 文档处理工具,将 PDF 转换为图像提取结构化数据

简介: Documind 是一款利用 AI 技术从 PDF 中提取结构化数据的先进文档处理工具,支持灵活的本地或云端部署。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  • 功能:将 PDF 转换为图像,使用 OpenAI API 提取和结构化信息。
  • 灵活性:支持本地或云环境部署,用户可自定义提取模式。
  • 应用场景:适用于财务审计、法律文档处理、医疗记录管理和保险索赔处理等多种场景。

正文(附运行示例)

Documind 是什么

documind.png

Documind 是一款开源的 AI 文档处理工具,用于从 PDF 文档中提取结构化数据。它通过将 PDF 文件转换为图像,利用 OpenAI API 进行信息提取,并根据用户定义的模式格式化输出结果。Documind 支持在本地或云环境中灵活部署,适用于多种文档格式的数据处理。

用户可以通过定义提取模式(schema),指定从文档中提取哪些信息。Documind 会根据这些模式从文档中提取相应数据,并将其格式化为结构化格式。

Documind 的主要功能

  • PDF 到图像的转换:将 PDF 文件转换为图像,以便进行更详细的 AI 处理。
  • 信息提取:利用 OpenAI 的 API 识别和提取 PDF 中的文本信息。
  • 自定义提取模式:用户定义特定的提取模式(schema),指定从文档中提取哪些信息。
  • 结果格式化:根据用户定义的模式,将提取的数据格式化为结构化格式。
  • 灵活部署:支持在本地或云环境中部署,适应不同的使用场景。

Documind 的技术原理

  • 光学字符识别(OCR):用 OCR 技术将 PDF 中的图像或扫描文档转换为机器可读的文本。
  • 自然语言处理(NLP):用 NLP 技术理解并分析文本内容,识别关键信息。
  • 机器学习:机器学习模型识别文档中的模式和结构,提高信息提取的准确性。
  • API 集成:集成 OpenAI 等第三方 API,利用先进的 AI 技术增强信息提取和处理能力。

如何运行 Documind

系统依赖

在使用 Documind 之前,请确保安装了以下软件依赖:

系统依赖

  • Ghostscript:Documind 依赖于 Ghostscript 处理某些 PDF 操作。
  • GraphicsMagick:用于文档转换中的图像处理。

安装方法:

# 在 macOS 上
brew install ghostscript graphicsmagick

# 在 Debian/Ubuntu 上
sudo apt-get update
sudo apt-get install -y ghostscript graphicsmagick

Node.js & NPM

确保系统已安装 Node.js (v18+) 和 NPM。

安装 Documind

通过 npm 安装 Documind:

npm install documind

环境设置

Documind 需要一个 .env 文件来存储敏感信息,如 OpenAI API 密钥。在项目目录中创建一个 .env 文件,并添加以下内容:

OPENAI_API_KEY=your_openai_api_key

使用示例

1. 定义模式

模式是一个对象数组,每个对象定义要提取的信息字段。

例如,银行对账单的模式:

const schema = [
  {
    name: "accountNumber",
    type: "string",
    description: "银行对账单的账户号码",
  },
  {
    name: "openingBalance",
    type: "number",
    description: "账户的初始余额",
  },
  {
    name: "transactions",
    type: "array",
    description: "账户中的交易列表",
    children: [
      {
        name: "date",
        type: "string",
        description: "交易日期",
      },
      {
        name: "creditAmount",
        type: "number",
        description: "交易的贷方金额",
      },
      {
        name: "debitAmount",
        type: "number",
        description: "交易的借方金额",
      },
      {
        name: "description",
        type: "string",
        description: "交易描述",
      },
    ],
  },
  {
    name: "closingBalance",
    type: "number",
    description: "账户的最终余额",
  },
];

2. 运行 Documind

使用 Documind 处理 PDF 文件:

import { extract } from "documind";

const runExtraction = async () => {
  const result = await extract({
    file: "https://example.com/bank_statement.pdf",
    schema,
  });

  console.log("Extracted Data:", result);
};

runExtraction();

示例输出

提取的结果可能如下所示:

{
   
  "success": true,
  "pages": 1,
  "data": {
   
    "accountNumber": "100002345",
    "openingBalance": 3200,
    "transactions": [
      {
   
        "date": "2021-05-12",
        "creditAmount": null,
        "debitAmount": 100,
        "description": "转账给 Tom"
      },
      {
   
        "date": "2021-05-12",
        "creditAmount": 50,
        "debitAmount": null,
        "description": "前几天的午餐"
      },
      {
   
        "date": "2021-05-13",
        "creditAmount": 20,
        "debitAmount": null,
        "description": "优惠券退款"
      },
      {
   
        "date": "2021-05-13",
        "creditAmount": null,
        "debitAmount": 750,
        "description": "5月房租"
      }
    ],
    "closingBalance": 2420
  },
  "fileName": "bank_statement.pdf"
}

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
5月前
|
人工智能 中间件 数据库
沐曦 GPU 融入龙蜥,共筑开源 AI 基础设施新底座
沐曦自加入社区以来,一直与龙蜥社区在推动 AIDC OS 的开源社区建设等方面保持合作。
|
5月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
6436 92
|
5月前
|
人工智能 自然语言处理 Shell
我们开源了一款 AI 驱动的用户社区
KoalaQA 是一款开源的 AI 驱动用户社区,支持智能问答、语义搜索、自动运营与辅助创作,助力企业降低客服成本,提升响应效率与用户体验。一键部署,灵活接入大模型,快速构建专属售后服务社区。
532 5
我们开源了一款 AI 驱动的用户社区
|
5月前
|
人工智能 搜索推荐 UED
一个牛逼的国产AI自动化工具,开源了 !
AiPy是国产开源AI工具,结合大语言模型与Python,支持本地部署。用户只需用自然语言描述需求,即可自动生成并执行代码,轻松实现数据分析、清洗、可视化等任务,零基础也能玩转编程,被誉为程序员的智能助手。
|
11月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
8月前
|
C#
【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤
本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。
1010 40
|
8月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
10月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
570 10
|
9月前
|
数据采集 存储 API
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件

热门文章

最新文章