Sebuah asisten RAG (retrieval-augmented generation) berbasis WhatsApp yang baru berhenti berhalusinasi dengan mewajibkan setiap jawaban didukung oleh sitasi terenkode JSON. Ketika model tidak dapat merujuk ke chunk tertentu, ia mengembalikan pesan “Saya tidak memiliki cukup informasi untuk menjawab itu,” mengubah pembohong yang percaya diri menjadi sistem “Saya tidak tahu” yang tepercaya.
Mengapa kepercayaan itu penting dalam RAG
Sebagian besar tutorial tentang RAG terlalu fokus pada retrieval—memilih embedding, memotong dokumen menjadi chunk, hingga melakukan re-ranking hasil. Mereka melewatkan apa yang terjadi setelah teks yang relevan ditemukan. Pengguna kehilangan kepercayaan ketika asisten memberikan jawaban pasti yang sebenarnya tidak didukung oleh konteks yang diambil.
Kesenjangan kepercayaan diri
Dalam sebuah prototipe yang dibangun dengan PostgreSQL dan ekstensi pgvector, alur pengambilan data (retrieval pipeline) berjalan lancar. Tantangan sebenarnya muncul saat produksi: model bahasa terdengar sangat yakin bahkan ketika cuplikan yang diambil kekurangan informasi yang dibutuhkan. Sebuah demo mungkin bisa menyembunyikan masalah tersebut, tetapi pengguna asli mengungkap kesenjangan antara terdengar percaya diri dan menjadi benar.
Memaksakan sitasi dengan JSON
Alih-alih membujuk model dengan prompt seperti “jawab hanya jika Anda memiliki konteks,” penulis mengubah format outputnya. Sistem sekarang mewajibkan objek JSON di mana setiap klaim menyertakan referensi ke chunk tepat yang mendukungnya. Jika model tidak dapat melampirkan sitasi, respons akan ditolak dan pengguna akan melihat pesan “Saya tidak tahu” yang jelas.
Penegakan aturan berpindah dari instruksi bahasa alami ke validasi skema. Model tetap menghasilkan teks, tetapi kode di sekitarnya memeriksa apakah JSON tersebut sesuai dengan struktur yang diperlukan sebelum sampai ke pengguna.
Apa yang berubah
- Chunking menjadi lebih konservatif. Chunk yang samar atau terlalu luas kini menghasilkan klaim tanpa sitasi, yang memicu mekanisme fallback “Saya tidak tahu”.
- System prompt menyusut. Prompt yang terlalu kaku yang mencoba mengontrol perilaku model digantikan oleh sekumpulan instruksi singkat, membiarkan skema melakukan pekerjaan beratnya.
- Kegagalan terlihat jelas. Ketika retrieval mengembalikan materi yang tidak relevan, asisten tidak lagi menutupi kesalahan dengan jawaban yang percaya diri namun salah; ia secara terbuka mengakui ketidakpastiannya.
Poin Penting: Untuk asisten RAG, menjamin bahwa setiap klaim dapat ditelusuri ke sumber yang diambil membangun kepercayaan pengguna secara lebih andal daripada sekadar memoles langkah retrieval saja. Dengan mengubah sitasi yang hilang menjadi pesan “Saya tidak tahu” yang terlihat, pengembang membiarkan sistem mengakui batasannya alih-alih mengarang jawaban.
