Lanjut ke konten
Samkarsa Logbook

MCP Server: RAG Injection Dinamis dengan Two-Pass Vision OCR

Pengembangan arsitektur Two-Pass Vision Analysis untuk penyuntikan RAG dinamis pada proses OCR nota belanja.

feature1mnt baca

Pembaruan ini menangani masalah “salah sasaran” dari Retrieval-Augmented Generation (RAG) pada sistem OCR. Sebelumnya, sistem menggunakan kueri hardcode secara statis (“PT INDOMARCO ADI PRIMA”) yang menyebabkan aturan spesifik Indomarco selalu disuntikkan ke seluruh nota yang diunggah, meskipun itu adalah nota warung sederhana.

Untuk memastikan bahwa kueri yang digunakan untuk mencari aturan di Vector DB relevan dengan nota yang sedang diproses, kita beralih menggunakan arsitektur Two-Pass:

  • Pass 1 (Quick Scan): Sistem memanggil LLM Vision (gemini) sesaat sebelum OCR utama dimulai untuk mengidentifikasi profil cepat dari gambar. Prompt yang digunakan: “Berdasarkan gambar nota ini, sebutkan nama merchant/toko/supplier dan daftar nama kolom pada tabelnya…”
  • Vector Search Dinamis: 1 baris teks profil yang dihasilkan oleh Pass 1 langsung dilempar sebagai kueri untuk mencari pengetahuan (RAG rules) di Vector DB.

  • Karena kueri kini sangat spesifik berdasarkan konteks gambar asli, batas relevansi (similarity threshold) diubah secara presisi ke angka 0.6. Jika hasil Pass 1 gagal memetakan kecocokan dengan Vector DB di atas batas 0.6 (misal untuk nota warung yang memang tidak punya aturan khusus), maka RAG tidak akan disuntikkan dan OCR akan berjalan dengan prompt standar.

Sistem telah di-build dan di-deploy ulang dengan mulus ke kontainer mcp-backend-prod pada port 3000. Kini OCR Engine menjadi jauh lebih adaptif dan kebal dari halusinasi aturan!