ภาพรวม
Bank Statement Parser เป็นไลบรารี Python โอเพ่นซอร์สเพียงตัวเดียวที่แยกวิเคราะห์ใบแจ้งยอดธนาคารเจ็ดรูปแบบ — รวมถึง PDF ผ่านไปป์ไลน์ LLM แบบไฮบริด — ด้วย API แบบรวม ไลบรารีรูปแบบเดียว (mt-940, ofxparse, pycamt) แต่ละตัวรองรับเพียงหนึ่งรูปแบบ เครื่องมือ SaaS (Ocrolus, Parseur) มี cloud OCR แต่ต้องส่งข้อมูลออกภายนอกและมีค่าใช้จ่าย $49–$1,000+/เดือน
ทางเลือกโอเพ่นซอร์ส
ไลบรารีรูปแบบเดียว
parser ใบแจ้งยอดธนาคารแบบโอเพ่นซอร์สส่วนใหญ่รองรับเพียงรูปแบบเดียว หากต้องการหลายรูปแบบ คุณต้องติดตั้งและดูแลไลบรารีแยกต่างหากที่มี API, output schema และรอบการอัปเดตที่แตกต่างกัน
| ไลบรารี | รูปแบบ | เอาต์พุต | การตรวจสอบยอดคงเหลือ | ส่งออก Ledger | |
|---|---|---|---|---|---|
| Bank Statement Parser | 7 รูปแบบ | ไปป์ไลน์ไฮบริด | pandas DataFrame | Golden Rule | hledger, beancount |
| mt-940 (WoLpH) | MT940 เท่านั้น | ไม่มี | Python objects | ไม่มี | ไม่มี |
| ofxparse | OFX เท่านั้น | ไม่มี | Python objects | ไม่มี | ไม่มี |
| pycamt | CAMT.053 เท่านั้น | ไม่มี | Python objects | ไม่มี | ไม่มี |
| ofxtools | OFX v1/v2 เท่านั้น | ไม่มี | Python objects | ไม่มี | ไม่มี |
เทียบกับ pyiso20022
pyiso20022 สร้าง Python dataclasses จากแค็ตตาล็อก schema ISO 20022 ทั้งหมด เป็นชุดเครื่องมือ ISO 20022 อเนกประสงค์สำหรับทำงานกับข้อความ PACS, PAIN, CAMT และ ADMI
Bank Statement Parser สร้างขึ้นเพื่อแยกวิเคราะห์ใบแจ้งยอดธนาคารลงใน DataFrames โดยเฉพาะ พร้อมคุณสมบัติสำหรับใช้งานจริง:
| คุณสมบัติ | Bank Statement Parser | pyiso20022 |
|---|---|---|
| วัตถุประสงค์ | แยกวิเคราะห์ใบแจ้งยอด + ดึงข้อมูล + ส่งออก | ชุดเครื่องมือ schema ISO 20022 |
| เอาต์พุต | pandas/Polars DataFrames | Python dataclasses |
| รูปแบบ | 7 (รวม PDF, ที่ไม่ใช่ ISO) | ISO 20022 เท่านั้น |
| รองรับ PDF | ไปป์ไลน์ไฮบริด (deterministic + LLM + vision) | ไม่มี |
| การตรวจสอบยอดคงเหลือ | Golden Rule + หลายสกุลเงิน | ไม่มี |
| REST API | FastAPI ในตัว | ไม่มี |
| การเสริมข้อมูล | จัดหมวดหมู่ด้วย LLM | ไม่มี |
| ส่งออก Ledger | hledger + beancount | ไม่มี |
| สตรีมมิง | มี (หน่วยความจำคงที่) | ไม่มี |
| การปกปิด PII | ในตัว | ไม่มี |
| การขจัดข้อมูลซ้ำ | Idempotent transaction hashes | ไม่มี |
| CLI | มี | ไม่มี |
ใช้ pyiso20022 หากต้องการทำงานกับแค็ตตาล็อกข้อความ ISO 20022 ทั้งหมด ใช้ Bank Statement Parser หากต้องการแยกวิเคราะห์ใบแจ้งยอดธนาคารเป็นข้อมูลที่มีโครงสร้างสำหรับการวิเคราะห์ การกระทบยอด หรือการรายงาน
ทางเลือก SaaS
เครื่องมือ SaaS เช่น Ocrolus, Parseur และ Sensible เสนอการแยกวิเคราะห์ใบแจ้งยอดธนาคารเป็นบริการคลาวด์ โดยทั่วไปใช้ OCR เพื่อจัดการ PDF ที่สแกน และรองรับรูปแบบเฉพาะธนาคารหลายร้อยรูปแบบ
| คุณสมบัติ | Bank Statement Parser | เครื่องมือ SaaS |
|---|---|---|
| ความเป็นส่วนตัวของข้อมูล | ประมวลผลในเครื่อง 100% (LLM ผ่าน Ollama) | ข้อมูลถูกส่งไปยังคลาวด์ |
| ค่าใช้จ่าย | ฟรี (Apache 2.0) | $49–$1,000+/เดือน (ณ ไตรมาสที่ 1 ปี 2026) |
| รูปแบบ | 7 (ที่มีโครงสร้าง + PDF) | หลายร้อย (ผ่าน OCR) |
| รองรับ PDF | มี — ไปป์ไลน์ไฮบริด (deterministic + LLM + vision) | มี (cloud OCR) |
| การตรวจสอบยอดคงเหลือ | Golden Rule (อัตโนมัติ) | manual / จำกัด |
| เวลาแฝง | <2 ms (ที่มีโครงสร้าง), วินาที (PDF+LLM) | 1-30 วินาที |
| ปริมาณงาน | 27,000+ tx/วินาที (ที่มีโครงสร้าง) | จำกัดอัตรา API |
| REST API | FastAPI ในตัว | เฉพาะทาง |
| ส่งออก Ledger | hledger + beancount | ไม่มี |
| Vendor lock-in | ไม่มี | มี |
| การปฏิบัติตาม | ประมวลผลในเครื่อง, SBOM | แตกต่างกันตามผู้ให้บริการ |
Parser ที่ใช้ LLM
เครื่องมือจำนวนมากขึ้น (Inscribe, Unstract, Mozilla.ai blueprints) ใช้ large language models เพื่อแยกวิเคราะห์ใบแจ้งยอดธนาคาร รวมถึง PDF ที่สแกน เมื่อ Chase ออกแบบรูปแบบใบแจ้งยอดผู้บริโภคใหม่ในช่วงปลายปี 2025 parser แบบ template พังไป ในขณะที่ LLM parser ปรับตัวได้โดยอัตโนมัติ
ตอนนี้ Bank Statement Parser มีไปป์ไลน์ LLM แบบไฮบริดของตัวเอง (v0.0.5+) ที่ทำงานในเครื่องทั้งหมดผ่าน Ollama รวมข้อดีของทั้งสองแนวทาง:
- รูปแบบที่มีโครงสร้าง (XML, CSV, OFX, MT940): การแยกวิเคราะห์แบบ deterministic — แม่นยำ 100% เวลาแฝงต่ำกว่ามิลลิวินาที ไม่มีค่าใช้จ่าย LLM
- ใบแจ้งยอด PDF: กำหนดเส้นทางสามทาง (deterministic table extraction -> text-LLM -> vision-LLM) พร้อมการตรวจสอบ Golden Rule อัตโนมัติเพื่อจับข้อผิดพลาดในการดึงข้อมูล
ต่างจาก LLM parser ที่ใช้คลาวด์เท่านั้น ไปป์ไลน์ไฮบริดของ Bank Statement Parser:
- ทำงานในเครื่อง 100% (Ollama) — ไม่มีข้อมูลออกจากเครื่องของคุณ
- ตรวจสอบการดึงข้อมูลทุกครั้งด้วยการตรวจสอบยอดคงเหลือ (Golden Rule)
- รองรับโหมดตรวจสอบแบบโต้ตอบสำหรับความคลาดเคลื่อนที่ถูกแจ้งเตือน
- สร้าง idempotent transaction hashes สำหรับการนำเข้าแบบ incremental อย่างปลอดภัย
เมื่อใดที่ควรเลือก SaaS LLM parser แทน Bank Statement Parser: คุณได้รับใบแจ้งยอดจากธนาคารหลายร้อยแห่งที่มีเลย์เอาต์ PDF ที่แตกต่างกันมาก และต้องการความครอบคลุมทันทีโดยไม่ต้องรันโครงสร้างพื้นฐานในเครื่อง
เมื่อใดที่ควรเลือก Bank Statement Parser: คุณต้องการประมวลผลในเครื่องเพื่อการปฏิบัติตาม ต้องการการตรวจสอบยอดคงเหลือ ต้องการส่งออก ledger ต้องการค่าใช้จ่ายต่อเนื่องเป็นศูนย์
วิธีการวัดประสิทธิภาพ: ตัวเลขประสิทธิภาพวัดบน Apple M2, Python 3.12 โดยใช้ไฟล์ CAMT.053 จำนวน 5,000 ธุรกรรม (2.1 MB) ผลลัพธ์เฉลี่ยจาก 100 รัน ทำซ้ำในเครื่อง: python -m bankstatementparser.bench เวลาแฝงของ SaaS อิงตามเอกสาร API ที่เผยแพร่ ณ เดือนเมษายน 2026
ดูกรณีการใช้งานจริง ❯ | วางแผนการย้ายข้อมูล MT940 สู่ CAMT ❯