用 LlamaParse + GPT-4o 提取发票数据并自动入账

最后更新: 2/21/2026阅读时间: 1 分钟
#文档解析#发票处理#OCR#结构化提取#财务运营#Google 表格#Telegram

LlamaParse 把复杂 PDF 解析成可用文本,再用 GPT-4o 输出严格的发票 JSON。把结果写入 Google Sheets,原文件归档到 Google Drive,并通过 Telegram 推送给审核人。

谁适合用?

财务运营团队创业公司运营会计/出纳需要处理开票的销售运营负责采购/报销的产品经理

解决了什么问题?

挑战

  • 人工录入发票约 12 分钟/份,按 50 美元/小时计成本约 10.00 美元。

  • 复制粘贴易出错,税额/总额/供应商名约 1-3% 不一致导致返工。

  • 多页 PDF 的原始 OCR 文本嘈杂,常见 20,000-60,000 tokens。

解决方案

  • 解析+抽取约 45 秒/份,把人工成本压到约 0.63 美元(降低约 94%)。

  • 用 Schema 校验的 JSON 把不一致率降到约 0.2%,并可自动做字段校验。

  • 结构化解析+定向提示词通常控制在约 2,000-6,000 tokens(降低约 70-95%)。

使用此工具包你将获得的成果

把发票与业务 PDF 变成可入账的结构化台账,同时保留可追溯的原件归档与快速人工复核。

把所有发票统一成一个 JSON 合约

通过 Schema 校验,在入账前拦截缺失总额、日期格式错误、币种不一致等问题。

让财务流程可审计(附件不丢失)

每一行结构化数据都能回链到原始文件,让审计从 30 分钟翻找变成 30 秒定位。

流程概览

1文档进入(邮件/上传)> LlamaParse 文本+版式解析
2GPT-4o 按 Schema 输出 JSON
3Google Sheets 台账 + Drive 归档
4Telegram 审核提醒
1

Step 1: 收集源文档

从邮件附件(更适合供应商寄送)或人工上传文件夹接收发票 PDF,并记录最小化的收件元数据。

实操提示词/代码:

System: 你是一名运营助理,负责记录发票入库元数据。
只返回 JSON:{"source":"email|upload","received_at":"ISO-8601","sender":"string","filename":"string","notes":"string"}。
不知道就返回 null。

专家提示:先保存原文件,后做抽取;这样就算抽取失败也不影响审计追溯。

接收并保存发票 PDF

推荐理由:

选择它是因为它能稳定接收邮件附件并保留发件人/时间戳,让入库链路具备审计级可追溯性。

Gmail

Gmail

4.8FreemiumEN

AI 驱动的智能通讯中心与工作流自动化

2

Step 2: 把文档解析成干净文本

把已保存的 PDF 发送到 LlamaParse,请求版式友好的输出(markdown 或 text),确保行项目与合计金额可读。

实操提示词/代码:

import os
from llama_parse import LlamaParse

parser = LlamaParse(
    api_key=os.environ.get("LLAMA_CLOUD_API_KEY"),
    result_type="markdown",
    verbose=False,
)

# file_path = "/path/to/invoice.pdf"
# documents = parser.load_data(file_path)
# parsed_markdown = "

".join([d.text for d in documents])

专家提示:多页发票保留分页分隔符,复核时能快速定位字段来源页。

保留版式的发票解析文本

推荐理由:

选择它是因为它能版式感知解析表格与行项目,减少下游模型“看错列”的风险与返工。

3

Step 3: 把发票字段抽取为合法 JSON

把解析文本交给 GPT-4o,强制按 Schema 输出,确保总额/税额/行项目被统一口径。

实操提示词/代码:

System: 你是一个财务数据抽取引擎。
你必须只返回严格合法的 JSON,且必须完全匹配 schema。禁止输出 markdown 或解释。

归一化规则:
- 日期必须是 ISO-8601(YYYY-MM-DD)。
- 金额必须是数字(不含币种符号)。
- 币种尽量输出 ISO 4217(如 USD/JPY/EUR)。
- 行项目有数量/单价就输出,没有就置 null。

JSON Schema(严格):
{
  "invoice_number": "string|null",
  "invoice_date": "string|null",
  "vendor_name": "string|null",
  "vendor_tax_id": "string|null",
  "bill_to": "string|null",
  "currency": "string|null",
  "subtotal": "number|null",
  "tax": "number|null",
  "total": "number|null",
  "due_date": "string|null",
  "payment_terms": "string|null",
  "line_items": [
    {"description":"string|null","quantity":"number|null","unit_price":"number|null","amount":"number|null"}
  ]
}

专家提示:当 subtotal + tax 与 total 偏差超过 0.5% 时直接判失败,优先拦截解析漂移。

抽取为 JSON 的发票字段

推荐理由:

选择它是因为它能在半结构化文本上稳定推理并按严格 Schema 填充字段,避免写脆弱的正则规则。

GPT-4o

GPT-4o

4.9FreemiumEN

集成文本、音频与视觉的实时全能大模型

4

Step 4: 写入台账并归档原件

把 JSON 作为“一票一行”追加写入 Google Sheets,再把原始 PDF 存入 Google Drive,并把文件 URL 写回表格。

实操提示词/代码:

// 伪代码(任意 Sheets/Drive SDK 都能实现)
const row = [
  data.invoice_number,
  data.invoice_date,
  data.vendor_name,
  data.currency,
  data.subtotal,
  data.tax,
  data.total,
  data.due_date,
  drive_file_url
];
// sheets.appendRow("Invoices", row)

专家提示:用 vendor_name + invoice_number + total 作为幂等键,避免重复入账。

表格台账行及文件归档链接

推荐理由:

选择它是因为它以“类数据库行”承载财务台账,团队无需开发应用就能筛选、透视与审计。

Google 表格

Google 表格

4.8FreemiumEN

集成 Gemini AI 的智能协作云端表格

推荐理由:

选择它是因为它能可靠保存文件并提供可共享链接,让每一条台账都能回溯到原始 PDF。

Google 云端硬盘

Google 云端硬盘

4.8FreemiumEN

集成 AI 的云端操作系统:实现文档流自动化与智能存储

5

Step 5: 向审核人发送复核通知

通过 Telegram 发送简洁消息(供应商/总额/到期日/Drive 链接),让人工在约 10 秒内完成复核。

实操提示词/代码:

消息模板:
新发票待复核
- 供应商:{vendor_name}
- 总额:{currency} {total}
- 到期:{due_date}
- 链接:{drive_file_url}
回复:APPROVE 或 REJECT:{原因}

专家提示:在表格里加一列状态(Pending/Approved/Rejected),对账就会非常确定且可追踪。

包含发票摘要的复核通知消息

推荐理由:

选择它是因为它能用最低摩擦完成快速审批,把人留在关键环节,但不引入笨重的工单系统。

Telegram

Telegram

4.9FreemiumEN

面向 AI 机器人、小程序和自动化社区的开放式操作系统

相似工作流

正在寻找不同的工具?探索这些替代工作流。

常见问题

最适合发票/收据/对账单,尤其是带表格和多栏版式的 PDF;也可用于报告/合同/扫描图片,但准确率取决于扫描质量(建议 300 DPI)。

一个现实的基线是每张约 0.01-0.05 美元(解析+LLM 抽取,小规模),再加接近 0 的存储成本;最大收益来自把人工从约 10.00 美元/张(12 分钟、50 美元/小时)降到约 0.63 美元/张(45 秒)。

5-15 页的发票包原始 OCR 文本常见约 20,000-60,000 tokens;而版式解析+定向抽取通常约 2,000-6,000 tokens,往往可降低约 70-95%,从而直接降低 API 花费并加快响应。

手写发票与低清扫描会显著降精度;另外,供应商行项目格式不统一时,需要更严格的 schema 和自定义归一化规则手册来保证 line_items 一致。

可以:上传 PDF → 解析 → 跑抽取提示词 → 把 JSON 写入表格行 → 发复核消息;自动化的价值只是把复制粘贴去掉,并让批量处理更一致。

通知可换成邮件或 Slack,台账可换成 Airtable 或数据库表;核心不变:解析 → Schema-JSON → 写入台账 → 回链原件。