Jualan v1.5.0-063: Universal Multi-Vector Semantic Basket Duplicate Matcher
Inovasi deteksi duplikasi nota cerdas: pencocokan keranjang semantik multi-vektor lintas variasi singkatan tulisan tangan, penanganan nota pasar tanpa kop/tanggal, dan kalibrasi presisi pHash anti false-positive.
Engineering Log2mnt baca
Pada evaluasi berkas nota di lapangan, ditemukan dua tantangan ekstrem:
- False Positive Antar Nota Berbeda: Nota cetak baru dari CV. Bengawan Sumber Makmur salah terdeteksi 100% duplikat dengan nota Sales ABC (Task #411) karena ambang batas visual pHash terlalu longgar (
dist <= 24) dan adanya kueri SQL wildcard liar saat nama toko bernilaiN/A. - Variasi Ekstrem Nota Tulisan Tangan: Supplier tradisional (seperti Toko Beras Adi Rasa, Budi Bawang, UD. Garam Makmur) seringkali:
- Tidak mencantumkan kop toko/tanggal nota (Date: None).
- Menuliskan nama barang dengan singkatan dan tulisan tangan yang selalu berbeda di setiap nota (misal:
SPvsSIPvsBERAS PREMIUM SIIP, atauKT CHUMPvsBAWANG KATING).
Mengembangkan fungsi kecerdasan baru find_semantic_basket_duplicate():
- Normalisasi Entitas Kanonikal: Setiap item mentah tulisan tangan otomatis diselaraskan ke master entitas (
ocr_alias_mappings) sebelum komparasi. - Kalkulasi Sidik Jari Keranjang (Basket Fingerprint):
- Pencocokan Multi-Kriteria Cerdas:
- Jika
invoice_numbereksak cocok 100% Duplikat Faktur Resmi. - Jika Total Nominal Cocok () DAN Kemiripan Keranjang Terdeteksi Duplikat Transaksi (mampu menangkap nota manual tanpa kop & tanpa tanggal).
- Jika Total Nominal Cocok DAN Nama Toko Cocok Terdeteksi Duplikat Pembelian.
- Jika
- Mengembalikan toleransi Hamming Distance visual dHash ke
dist <= 10bit (standar akurasi foto ulang nota identik). - Menghilangkan query fallback kosong sehingga berkas nota baru dari supplier berbeda lolos 100% bersih.
| Berkas Uji / Skenario | Hasil Deteksi Sistem | Keterangan Status |
|---|---|---|
| CV. Bengawan Sumber Makmur (Total 160.400) | 🟢 Bukan Duplikat (is_duplicate: False) |
Lolos bersih tanpa false positive |
Toko Beras Adi Rasa (BERAS SIIP + C4, Total 4.035.000) |
🔴 Duplikat Terdeteksi (Similarity: 100%) | Mencocokkan Transaksi PUR-2026-0237 |
UD. Garam Makmur (Grusak / Alus, Total 380.000) |
🔴 Duplikat Terdeteksi (Similarity: 100%) | Mencocokkan Transaksi PUR-2026-0238 |