OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  Documind — 面向文档问答与知识提取的 AI 工具集

Documind — 面向文档问答与知识提取的 AI 工具集

 
  kite ·  2026-06-21 11:00:32 · 12 次点击  · 0 条评论  


加入我们的 Discord

Documind

Documind 是一款先进的文档处理工具,利用 AI 从 PDF 中提取结构化数据。它专为处理 PDF 转换、提取相关信息并按照可自定义的模式格式化结果而设计。

主要功能

  • 从非结构化文档中提取结构化的 JSON 输出。
  • 将文档转换为 Markdown 格式。
  • 支持自定义数据提取模式。
  • 包含常见模式的预定义模板。
  • 可与 OpenAI 及自定义 LLM 设置(Llava 和 Llama3.2-vision)配合使用。
  • 基于文档内容自动生成模式。

尝试托管版本 🚀

托管版本提供无缝体验,包含完全托管的 API,因此您可以跳过设置,立即开始提取数据。加入测试版 以获取托管服务的访问权限。

路线图

✅ 已发布的功能

  • [x] PDF 提取
  • [x] 基本模式定义
  • [x] 结构化 JSON 输出
  • [x] 模板模式
  • [x] 本地 LLM 集成(Llama3.2)
  • [x] 自动生成模式
  • [x] 文档格式化器(文本和 Markdown)
  • [x] 多文件支持(DOCX、PNG、JPG、TXT、HTML)
  • [x] 额外模式字段类型(布尔型和枚举型)

🚧 即将推出的功能

  • [ ] 更多模型(本地和云端)
  • [ ] 图像提取
  • [ ] 高级文档格式化器
  • [ ] 数据分类
  • [ ] 使用您微调后的模型

系统要求

在使用 documind 之前,请确保已安装以下软件依赖项:

系统依赖项

  • Ghostscriptdocumind 依赖 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。

安装

你可以通过 npm 安装 documind

npm install documind

环境设置

documind 需要一个 .env 文件来存储敏感信息,例如你的 OpenAI API 密钥。

在你的项目目录中创建一个 .env 文件并添加以下内容:

OPENAI_API_KEY=your_openai_api_key

使用指南

基础示例

首先,导入 documind 并定义你的模式。模式概述了 documind 应在每个文档中查找哪些信息。以下是一个快速入门设置。

1. 定义模式

模式是一个对象数组,每个对象定义以下内容:

  • name:要提取的字段名称。
  • type:数据类型(例如 "string""number""array""object")。
  • description:字段的描述。
  • children(可选):对于数组和对象,定义嵌套字段。

银行账单的模式示例:

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,传入文件 URL 和模式。

import { extract } from 'documind';

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

  console.log("提取的数据:", 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"
}

阅读文档了解更多关于如何定义模式以及启用自动生成功能的信息。

模板

Documind 内置了用于从发票、银行账单等常见文档类型提取数据的模板。这些模板让你无需自己定义模式即可快速上手。

列出可用模板

你可以使用 templates.list 函数列出所有可用模板。

import { templates } from 'documind';

const templates = templates.list();
console.log(templates); // 记录所有可用的模板名称

使用模板

要使用模板,只需将模板名称与要提取数据的文件一起传递给 extract 函数。例如:

import { extract } from 'documind';

const runExtraction = async () => {
  const result = await extract({
    file: 'https://bank_statement.pdf',
    template: 'bank_statement'
  });

  console.log("提取的数据:", result);
};

runExtraction();

阅读模板文档以获取有关模板以及如何贡献自己的模板的更多详细信息。

使用本地 LLM 模型

阅读此处了解更多关于如何使用本地模型的信息。

贡献

欢迎贡献!请提交包含任何改进或功能的拉取请求。

许可证

本项目基于 AGPL v3.0 许可证授权。

致谢

本仓库基于 Zerox 构建。Zerox 的 MIT 许可证包含在核心文件夹中,并在根许可证文件中也有所提及。

12 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 21 ms
Developed with Cursor