📄 非结构化数据提取:用 AI 与 PDF 插件处理发票
企业办公中最令人头疼的一环,往往是从各种版式复杂的 PDF、发票或研报中手动提取数据。
利用 MindLogic 内置的 Native PDF Extractor(原生 PDF 提取器)插件和 LLM 结构化提取能力,我们可以瞬间将死板的非结构化文档变成可供下游系统读取的 JSON 数据库。
场景概述
在这个流程中,我们实现:
- 输入文件:传入一个含有报表/发票的本地或远程 PDF 文件路径。
- 文本解析:使用 PDF 插件将所有文本提取为长字符串。
- 字段抽取:大模型读取长字符串,并被强制要求以特定的 JSON 格式提取金额、日期和客户名。
- 数据校验:自定义节点脚本解析 JSON,判断金额是否超标。
节点编排步骤
第一步:配置 PDF 提取插件
创建一个节点,命名为 [Invoice Reader]。
在插件面板选择 Native PDF Extractor。
配置输入的 URL/Path,它可以是一个本地路径(如 file:///Users/.../invoice.pdf)或云端链接。
执行后,PDF 纯文本将存放于 node.outputs['pdf_text'] 中。
第二步:大模型结构化抽取
创建一个节点,命名为 [Data Extraction],连线自上游。
- 选用大模型插件。
- System Prompt(极为关键,强制输出格式):
你是一个发票数据提取机器人。请从下方文本中提取信息,并严格输出合法的 JSON 格式。不要输出任何除了 JSON 之外的说明文本。 格式要求: { "company_name": "公司名", "date": "YYYY-MM-DD", "total_amount": 数字 } - User Prompt:
{{ node.inputs['pdf_text'] }}大模型执行完毕后,将会输出一段纯净的 JSON 字符串。
第三步:脚本层面的业务校验
创建一个节点,命名为 [Business Logic Audit]。
这一步不使用插件,而是直接在底部的节点脚本中处理上游传递过来的 JSON。
let jsonStr = node.inputs['response'];
try {
let invoiceData = JSON.parse(jsonStr);
let amount = invoiceData.total_amount;
// 如果金额超过 10000,修改节点标题并改变颜色警报
if (amount > 10000) {
node.title = "⚠️ 需要总监审批";
node.color = "red";
} else {
node.title = "✅ 自动通过审批";
node.color = "green";
}
} catch (e) {
node.title = "❌ 解析失败";
node.outputs['__scriptError'] = e.toString();
}
成果与价值
这是一个典型的“混合型节点自动化”。你不仅使用了前沿的 AI 技术,还回归了传统代码逻辑的严谨性。 通过 MindLogic,你把一个原本需要程序员写几百行 Python 代码并部署服务器才能跑起来的服务,变成了一个在画布上连连线就能搞定的可视化小程序!
