Documind 是一款先进的文档处理工具,利用 AI 从 PDF 中提取结构化数据。它专为处理 PDF 转换、提取相关信息并按照可自定义的模式格式化结果而设计。
托管版本提供无缝体验,包含完全托管的 API,因此您可以跳过设置,立即开始提取数据。加入测试版 以获取托管服务的访问权限。
在使用 documind 之前,请确保已安装以下软件依赖项:
documind 依赖 Ghostscript 处理某些 PDF 操作。请先在你的系统上安装两者:
# 在 macOS 上
brew install ghostscript graphicsmagick
# 在 Debian/Ubuntu 上
sudo apt-get update
sudo apt-get install -y ghostscript graphicsmagick
确保你的系统上已安装 Node.js (v18+) 和 NPM。
你可以通过 npm 安装 documind:
npm install documind
documind 需要一个 .env 文件来存储敏感信息,例如你的 OpenAI API 密钥。
在你的项目目录中创建一个 .env 文件并添加以下内容:
OPENAI_API_KEY=your_openai_api_key
首先,导入 documind 并定义你的模式。模式概述了 documind 应在每个文档中查找哪些信息。以下是一个快速入门设置。
模式是一个对象数组,每个对象定义以下内容:
"string"、"number"、"array"、"object")。银行账单的模式示例:
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: "账户的期末余额。"
}
];
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();
阅读模板文档以获取有关模板以及如何贡献自己的模板的更多详细信息。
阅读此处了解更多关于如何使用本地模型的信息。
欢迎贡献!请提交包含任何改进或功能的拉取请求。
本项目基于 AGPL v3.0 许可证授权。
本仓库基于 Zerox 构建。Zerox 的 MIT 许可证包含在核心文件夹中,并在根许可证文件中也有所提及。