ตัวแยกวิเคราะห์ใบแจ้งยอดธนาคาร เป็นไลบรารี Python แบบโอเพ่นซอร์สที่แยกวิเคราะห์ใบแจ้งยอดธนาคารจากหกรูปแบบเป็น DataFrames แพนด้าที่มีโครงสร้าง การประมวลผลทั้งหมดเกิดขึ้นภายในเครื่อง ไม่มีการเรียกเครือข่าย เอาต์พุตตามที่กำหนด และการแก้ไข PII อัตโนมัติ
นี่เพื่อใคร?
- ทีมคลัง ย้ายจาก MT940 ไปยัง CAMT.053 ซึ่งต้องการโปรแกรมแยกวิเคราะห์ที่จัดการทั้งรูปแบบเก่าและใหม่ในระหว่างการเปลี่ยนแปลง
- นักพัฒนา Fintech สร้างการกระทบยอด การรายงาน หรือไปป์ไลน์การบัญชีที่ต้องการการพึ่งพาเพียงครั้งเดียว แทนที่จะรวม mt940 + ofxparse + ตรรกะ CSV แบบกำหนดเองเข้าด้วยกัน
- ทีมปฏิบัติตามข้อกำหนด ที่ต้องการการแก้ไข PII ตามค่าเริ่มต้นและพร้อมสำหรับการตรวจสอบ ผลลัพธ์ตามที่กำหนดซึ่งจะไม่ส่งข้อมูลไปยังบริการภายนอก
- ใครก็ตาม ที่ปฏิเสธที่จะส่งข้อมูลทางการเงินที่ละเอียดอ่อนไปยัง SaaS บุคคลที่สาม เมื่อเครื่องมือโอเพ่นซอร์สในพื้นที่สามารถทำงานได้
รูปแบบที่รองรับ
| รูปแบบ | มาตรฐาน | ประเภทไฟล์ | พาร์เซอร์คลาส |
|---|---|---|---|
| บมจ.053 | ใบแจ้งยอดธนาคารต่อลูกค้า ISO 20022 | .xml |
CamtParser |
| เพน.001 | การเริ่มต้นการโอนเครดิต ISO 20022 | .xml |
Pain001Parser |
| ซีเอสวี | การส่งออกของธนาคารทั่วไป | .csv |
CsvStatementParser |
| โอเอฟเอ็กซ์ | เปิดการแลกเปลี่ยนทางการเงิน | .ofx |
OfxParser |
| คิวเอฟเอ็กซ์ | เร่งการแลกเปลี่ยนทางการเงิน | .qfx |
QfxParser |
| MT940 | มาตรฐานสวิฟท์ | .mt940, .sta |
Mt940Parser |
ทุกรูปแบบจะสร้าง DataFrames แพนด้าที่ได้รับการปรับมาตรฐานด้วยชื่อคอลัมน์ที่สอดคล้องกัน ทำให้การประมวลผลแบบดาวน์สตรีมไม่เชื่อเรื่องพระเจ้า
ความสามารถที่สำคัญ
- ฟอร์แมตการตรวจจับอัตโนมัติ:
detect_statement_format()ระบุรูปแบบcreate_parser()สร้างอินสแตนซ์ของ parser ที่ถูกต้อง - การแยกวิเคราะห์แบบสตรีมมิ่ง: ประมวลผลไฟล์ขนาดใหญ่ (50 MB+, ธุรกรรม 50K+) ด้วยหน่วยความจำที่ถูกผูกไว้โดยใช้
parse_streaming(). - การประมวลผลแบบขนาน: แยกวิเคราะห์ไฟล์หลายไฟล์พร้อมกัน
parse_files_parallel()โดยใช้ ProcessPoolExecutor - การขจัดข้อมูลซ้ำซ้อน: ตรวจจับรายการที่ซ้ำกันทุกประการและการจับคู่ที่ต้องสงสัยด้วยคะแนนความมั่นใจที่อธิบายได้
- การแยกวิเคราะห์ในหน่วยความจำ:
from_string()และfrom_bytes()สำหรับเวิร์กโฟลว์ SFTP และ API ที่ไม่มีดิสก์ I/O - การประมวลผล ZIP ที่ปลอดภัย:
iter_secure_xml_entries()ด้วยการจำกัดอัตราส่วนการบีบอัด ขีดจำกัดขนาดรายการ และการปฏิเสธรายการที่เข้ารหัส - ส่งออก: CSV, JSON, Excel (
.xlsx) และ Polars DataFrames เสริม
ความปลอดภัยและความเป็นส่วนตัว
- การแก้ไข PII: ชื่อ, IBAN และที่อยู่ถูกปกปิดโดยค่าเริ่มต้นในเอาต์พุต CLI เลือกเข้าร่วมด้วย
--show-pii. - การป้องกัน XXE: ใช้การแยกวิเคราะห์ XML
resolve_entities=False,no_network=True,load_dtd=False. - การป้องกัน ZIP Bomb: ขีดจำกัดอัตราส่วนการบีบอัด (ค่าเริ่มต้น 100:1), ขนาดสูงสุดของรายการ (10 MB), การปฏิเสธรายการที่เข้ารหัส
- การป้องกันการข้ามเส้นทาง: รายการบล็อกรูปแบบที่เป็นอันตรายและความละเอียดของลิงก์สัญลักษณ์
- ความปลอดภัยของห่วงโซ่อุปทาน: การขึ้นต่อกันแบบแฮชล็อค SHA-256, CycloneDX SBOM, สร้างการรับรองแหล่งที่มา
ผลงาน
| เมตริก | ค่า |
|---|---|
| ปริมาณงาน CAMT.053 | 27,000+ เท็กซัส/วินาที |
| ปริมาณงาน PAIN.001 | 52,000+ เท็กซัส/วินาที |
| เวลาแฝงต่อธุรกรรม (CAMT) | 37 ไมโครวินาที |
| เวลาแฝงต่อธุรกรรม (PAIN.001) | 19 ไมโครวินาที |
| ถึงเวลาผลลัพธ์ครั้งแรก | < 2 มิลลิวินาที |
| การปรับขนาดหน่วยความจำ (1K-50K tx) | คงที่ (สตรีมมิ่ง) |
| ครอบคลุมการทดสอบ | ครอบคลุมสาขา 100% |
| การทดสอบ | 467 จาก 29 ไฟล์ทดสอบ |
เริ่มสร้าง
เริ่มต้นด้วยการติดตั้งและตัวอย่าง ❯
"พื้นที่เก็บข้อมูล GitHub"