概述
Bank Statement Parser 是唯一一个通过统一 API 解析七种银行对账单格式(包括通过混合 LLM 管道处理的 PDF)的开源 Python 库。单格式库(mt-940、ofxparse、pycamt)各自仅处理一种格式。SaaS 工具(Ocrolus、Parseur)提供云端 OCR,但需要将数据发送至外部,费用为 $49–$1,000+/月。
开源替代方案
单格式库
大多数开源银行对账单解析器仅处理一种格式。如果需要多种格式,您必须安装和维护多个具有不同 API、输出模式和更新周期的独立库。
| 库 | 格式 | 输出 | 余额校验 | 账本导出 | |
|---|---|---|---|---|---|
| Bank Statement Parser | 7 种格式 | 混合管道 | pandas DataFrame | 黄金法则 | hledger, beancount |
| mt-940 (WoLpH) | 仅 MT940 | 无 | Python 对象 | 无 | 无 |
| ofxparse | 仅 OFX | 无 | Python 对象 | 无 | 无 |
| pycamt | 仅 CAMT.053 | 无 | Python 对象 | 无 | 无 |
| ofxtools | 仅 OFX v1/v2 | 无 | Python 对象 | 无 | 无 |
与 pyiso20022 比较
pyiso20022 从完整的 ISO 20022 模式目录生成 Python 数据类。它是一个通用 ISO 20022 工具包,用于处理 PACS、PAIN、CAMT 和 ADMI 消息。
Bank Statement Parser 专为将银行对账单解析为 DataFrame 而构建,提供生产级功能:
| 特性 | Bank Statement Parser | pyiso20022 |
|---|---|---|
| 用途 | 对账单解析 + 提取 + 导出 | ISO 20022 模式工具包 |
| 输出 | pandas/Polars DataFrame | Python 数据类 |
| 格式 | 7 种(含 PDF 和非 ISO 格式) | 仅 ISO 20022 |
| PDF 支持 | 混合管道(确定性 + LLM + 视觉) | 无 |
| 余额校验 | 黄金法则 + 多币种 | 无 |
| REST API | 内置 FastAPI | 无 |
| 智能分类 | LLM 驱动的分类 | 无 |
| 账本导出 | hledger + beancount | 无 |
| 流式处理 | 有(有界内存) | 无 |
| PII 脱敏 | 内置 | 无 |
| 去重 | 幂等交易哈希 | 无 |
| CLI | 有 | 无 |
如果您需要使用完整的 ISO 20022 消息目录,请使用 pyiso20022。如果您需要将银行对账单解析为结构化数据以进行分析、对账或报告,请使用 Bank Statement Parser。
SaaS 替代方案
Ocrolus、Parseur 和 Sensible 等 SaaS 工具将银行对账单解析作为云服务提供。它们通常使用 OCR 处理扫描的 PDF,并支持数百种银行特定格式。
| 特性 | Bank Statement Parser | SaaS 工具 |
|---|---|---|
| 数据隐私 | 100% 本地(LLM 通过 Ollama) | 数据发送至云端 |
| 费用 | 免费(Apache 2.0) | $49–$1,000+/月(截至 2026 年第一季度) |
| 格式 | 7 种(结构化 + PDF) | 数百种(通过 OCR) |
| PDF 支持 | 有——混合管道(确定性 + LLM + 视觉) | 有(云端 OCR) |
| 余额校验 | 黄金法则(自动) | 手动/有限 |
| 延迟 | < 2 ms(结构化),秒级(PDF+LLM) | 1-30 秒 |
| 吞吐量 | 27,000+ tx/s(结构化) | API 速率限制 |
| REST API | 内置 FastAPI | 专有 |
| 账本导出 | hledger + beancount | 无 |
| 供应商锁定 | 无 | 有 |
| 合规 | 本地处理,SBOM | 因供应商而异 |
基于 LLM 的解析器
越来越多的工具(Inscribe、Unstract、Mozilla.ai blueprints)使用大语言模型解析银行对账单,包括扫描的 PDF。当 Chase 在 2025 年底重新设计其消费者对账单格式时,基于模板的解析器失效了,而 LLM 解析器则自动适应。
Bank Statement Parser 现已内置自有混合 LLM 管道(v0.0.5+),完全通过 Ollama 在本地运行。它结合了两种方法的优势:
- 结构化格式(XML、CSV、OFX、MT940):确定性解析——100% 准确,亚毫秒延迟,零 LLM 成本。
- PDF 对账单:三路路由(确定性表格提取 → 文本 LLM → 视觉 LLM),自动黄金法则校验以捕获提取错误。
与纯云端 LLM 解析器不同,Bank Statement Parser 的混合管道:
- 100% 本地运行(Ollama)——数据不会离开您的机器。
- 通过余额校验(黄金法则)验证每次提取。
- 支持交互式审查模式,处理标记的差异。
- 生成幂等交易哈希,安全支持增量摄取。
何时选择纯 SaaS LLM 解析器:您收到来自数百家银行的对账单,PDF 布局差异极大,需要开箱即用的覆盖范围且无需运行本地基础设施。
何时选择 Bank Statement Parser:您需要本地处理以满足合规要求。您需要余额校验。您需要账本导出。您希望零持续成本。
基准方法:性能数据在 Apple M2、Python 3.12 上使用 5,000 笔交易的 CAMT.053 文件(2.1 MB)测量。结果取 100 次运行的平均值。本地复现:python -m bankstatementparser.bench。SaaS 延迟基于截至 2026 年 4 月发布的 API 文档。