❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 功能:将 PDF 转换为图像,使用 OpenAI API 提取和结构化信息。
- 灵活性:支持本地或云环境部署,用户可自定义提取模式。
- 应用场景:适用于财务审计、法律文档处理、医疗记录管理和保险索赔处理等多种场景。
正文(附运行示例)
Documind 是什么
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"
}
资源
- 项目官网:https://www.documind.xyz/
- GitHub 仓库:https://github.com/DocumindHQ/documind
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦