Jualan & MCP Server: Fix OCR Nota Tulisan Tangan dan Integrasi JSON
Perbaikan OCR Nota Tulisan Tangan dan integrasi REST Bridge JSON pada MCP Server untuk sistem Jualan.
Pembaruan ini menangani serangkaian masalah yang membuat ekstraksi nota tulisan tangan selalu gagal atau menyebabkan sistem loading tanpa henti pada saat pengguna mengunggah gambar.
Sebelumnya, backend mencoba menghubungi fitur OCR terbaru dari MCP Server (ocr_receipt), namun tool tersebut belum terdaftar (unregistered) dengan benar di REST Bridge.
- Penyelesaian: Telah mendaftarkan
ocr_receiptsecara resmi ke objekserver.toolMCP dan juga pada HTTP Endpoint/tools/:toolNamediindex.ts.
Ketika dites mengirimkan file nota asli menggunakan curl, sistem MCP menolak (Payload Too Large) karena gambar dalam bentuk base64 melewati batas bawaan ExpressJS.
- Penyelesaian: Mengubah batas maksimum unggahan JSON pada
express.json()menjadi 50MB.
Terdapat mismatch format data. Setelah MCP berhasil merespons dengan JSON terstruktur, worker Celery (ocr_worker.py) di Jualan masih mengekspektasikan data berbentuk Markdown String, yang mengakibatkan string kosong dan memicu sistem fallback ulang ke Gemini AI (yang kemudian terkendala limit quota 429).
- Penyelesaian: Memperbaiki logika ekstraksi
raw_ocr_textdiocr_worker.py. Jika respon dari MCP sudah berupa dictionary/object terstruktur (dibuktikan dengan adanya atributmerchantatauitems), maka sistem akan otomatis men-serialize (json.dumps) object tersebut agar parser bawaan Jualan bisa bekerja dengan normal.
Dengan perbaikan ini, sistem OCR berhasil mengekstrak nota (termasuk tulisan tangan) dengan tingkat akurasi tinggi dan format JSON yang sempurna dalam hitungan detik. Seluruh komponen (mcp, sajen-api, sajen-worker) telah berhasil di-deploy ke VPS.