Kalau chatbot customer service hanya mengandalkan model bahasa, ia bisa menjawab pertanyaan soal harga, promo, atau kebijakan refund dengan sangat yakin, padahal informasinya tidak pernah ia ketahui. Retrieval-augmented generation (RAG) mengatasi masalah ini. Setiap ada pertanyaan, sistem mencari bagian yang relevan dari dokumen bisnis Anda, lalu model diminta menjawab hanya berdasarkan bagian tersebut. Karena itu, sebagian besar pekerjaan membangun chatbot yang bagus justru ada di dokumen dan proses pencariannya, dan relatif sedikit di modelnya.
Kenapa RAG, Bukan Fine-Tuning
Fine-tuning cocok untuk mengubah gaya bahasa model, tapi kurang pas untuk mengajarkan fakta yang sering berubah. Harga, stok, jam buka, dan kebijakan bisa berganti tiap bulan, dan setiap perubahan berarti training ulang. Dengan RAG, cukup perbarui dokumennya dan jawaban chatbot ikut berubah. Setiap jawaban juga bisa dilacak ke dokumen sumbernya, sehingga kalau ada jawaban yang salah, penyebabnya lebih mudah dicari.
| Pendekatan | Cocok untuk | Keterbatasan |
|---|---|---|
| Prompt saja | Demo cepat dengan sedikit informasi | Tidak bisa dipakai lagi begitu informasinya tidak muat di prompt |
| RAG | FAQ, katalog, kebijakan, dan SOP yang berubah dari waktu ke waktu | Kualitas jawaban bergantung pada kualitas dokumen dan pencariannya |
| Fine-tuning | Gaya bahasa, format jawaban, dan istilah khusus | Mahal untuk di-update dan tidak bisa menunjukkan sumber jawabannya |
| Tool call ke sistem | Status pesanan, ketersediaan, data milik pelanggan tertentu | Butuh API dan pengaturan hak akses yang hati-hati |
Rapikan Dokumen Sebelum Mulai Coding
Akurasi chatbot tidak akan lebih baik dari dokumen yang dibacanya. Kumpulkan pertanyaan yang benar-benar masuk ke tim CS, misalnya dari riwayat chat, email, atau catatan tim, lalu cek apakah setiap pertanyaan yang sering muncul sudah punya jawaban yang jelas dan masih berlaku. Kekurangan yang ketemu di tahap ini jauh lebih murah diperbaiki daripada jawaban salah yang baru ketahuan setelah chatbot dipakai pelanggan.
- Buang dokumen yang sudah kedaluwarsa atau saling bertentangan. Kalau ada dua daftar harga yang berbeda, suatu saat chatbot akan menyebut harga yang salah.
- Tulis ulang jawaban yang hanya dimengerti orang dalam, misalnya yang merujuk ke email sebelumnya atau nama sistem internal.
- Tunjuk penanggung jawab dan jadwal review untuk setiap dokumen, supaya isinya tidak pelan-pelan usang setelah chatbot live.
- Simpan katalog produk tetap dalam bentuk data terstruktur, dengan nama, kode, dan harga sebagai kolom terpisah. Jangan diubah menjadi paragraf panjang.
Cara Memecah Dokumen (Chunking)
Supaya bisa dicari, dokumen dipecah menjadi potongan kecil yang disebut chunk. Setiap chunk diubah menjadi embedding lalu disimpan di vector database seperti pgvector atau Qdrant. Ukuran chunk perlu diatur dengan pas. Kalau terlalu kecil, potongannya kehilangan konteks. Kalau terlalu besar, hasil pencarian jadi kurang tepat dan prompt penuh dengan teks yang tidak relevan.
- Pecah dokumen mengikuti strukturnya, misalnya per heading, per entri FAQ, atau per produk. Hindari memotong berdasarkan jumlah karakter.
- Untuk FAQ, satu pertanyaan dan jawabannya masuk ke chunk yang sama.
- Tambahkan judul dokumen dan judul bagian di awal setiap chunk. Kalimat seperti "biaya ini dibebaskan" tidak ada artinya kalau tidak jelas biaya apa yang dimaksud.
- Simpan metadata di setiap chunk, seperti jenis dokumen, kategori produk, bahasa, dan tanggal update, supaya hasil pencarian bisa difilter.
Pakai Hybrid Search untuk Nama dan Kode Produk
Vector search mencari berdasarkan makna, jadi pertanyaan yang ditulis dengan cara berbeda-beda tetap bisa menemukan jawabannya. Kelemahannya ada di kata yang harus cocok persis, seperti kode produk, nomor tipe, atau nama merek. Untuk kasus seperti ini, keyword search lebih bisa diandalkan. Menggabungkan keduanya lalu mengurutkan ulang hasilnya biasanya memberi hasil paling baik, termasuk untuk pertanyaan yang ditulis campur bahasa Indonesia dan Inggris.
Saat chatbot memberi jawaban yang salah, cek dulu potongan dokumen yang diambil. Sering kali modelnya sudah menjawab sesuai dokumen, hanya saja dokumen yang diambil keliru.
Batasi Jawaban pada Dokumen, dan Biarkan Chatbot Bilang "Tidak Tahu"
Di system prompt, minta model menjawab hanya dari potongan dokumen yang diberikan. Kalau informasinya tidak ada, model harus bilang tidak tahu dan menawarkan untuk menghubungkan pelanggan ke petugas. Chatbot yang jujur tidak tahu jauh lebih aman daripada chatbot yang mengarang kebijakan refund. Simpan juga potongan dokumen yang dipakai untuk setiap jawaban, supaya mudah dicek saat review.
Data Real-Time Lewat Tool Call
Status pesanan, stok, jadwal yang tersedia, dan saldo berubah setiap saat dan berbeda untuk tiap pelanggan. Kalau data seperti ini dimasukkan ke index, jawabannya cepat basi, dan ada risiko data satu pelanggan terlihat oleh pelanggan lain. Solusinya, sediakan data tersebut sebagai tool yang bisa dipanggil model lewat API yang sudah Anda punya. Identitas pelanggan dicek oleh aplikasi, jangan diserahkan ke model. Model cukup memutuskan kapan perlu memanggil tool, lalu aplikasi yang menentukan data mana yang boleh dilihat pelanggan itu.
Siapkan Alur Alih ke Tim CS
Tugas chatbot adalah menyelesaikan pertanyaan rutin dan meneruskan sisanya ke tim dengan rapi. Alihkan ke petugas ketika pelanggan minta bicara dengan orang, ketika jawabannya tidak ada di dokumen, ketika topiknya sensitif seperti komplain atau masalah pembayaran, atau ketika percakapan mulai berputar-putar. Petugas yang menerima harus bisa melihat seluruh percakapan, supaya pelanggan tidak perlu menjelaskan ulang dari awal.
Ukur Kualitas Jawaban Secara Rutin
- Siapkan data uji berisi pertanyaan pelanggan sungguhan dan jawaban yang diharapkan. Jalankan setiap kali prompt, chunking, retrieval, atau model diubah.
- Pantau berapa persen percakapan yang selesai tanpa perlu petugas. Tetap baca sebagian percakapan itu, karena percakapan yang dianggap selesai belum tentu jawabannya benar.
- Catat pertanyaan yang tidak bisa dijawab chatbot. Dari daftar ini paling kelihatan apa yang masih kurang di dokumen.
- Pantau pemakaian token dan biaya per percakapan. Batasi panjang percakapan dan jumlah konteks yang diambil, supaya satu sesi panjang tidak membuat tagihan membengkak.
- Cek jawaban untuk topik sensitif seperti harga, refund, dan syarat ketentuan lebih sering daripada topik umum.
Langkah Meluncurkan Chatbot RAG
- 1Kumpulkan pertanyaan pelanggan yang paling sering muncul dari riwayat chat. Sepakati topik mana yang dijawab chatbot dan mana yang langsung diteruskan ke tim.
- 2Rapikan dokumen, tunjuk penanggung jawabnya, dan lengkapi jawaban yang masih kosong.
- 3Bangun proses retrieval: chunking sesuai struktur dokumen, metadata, dan hybrid search. Uji hasil pencariannya dulu sebelum menyambungkan model.
- 4Tulis prompt yang membatasi jawaban pada dokumen, tambahkan tool call untuk data real-time, dan siapkan alur alih ke petugas.
- 5Jalankan data uji dan perbaiki yang gagal. Setelah itu, luncurkan di satu channel dulu, misalnya website atau Telegram.
- 6Setiap minggu, cek pertanyaan yang tidak terjawab dan baca sebagian percakapan. Perbarui dokumen, lalu tambah channel lain kalau kualitasnya sudah stabil.
Setelah Chatbot Live
Pekerjaan terbesar setelah peluncuran adalah menjaga dokumennya tetap benar. Harga naik, promo berganti, kebijakan diperbarui, dan chatbot hanya tahu apa yang tertulis di dokumen. Jadikan update dokumen bagian dari proses kerja tim, misalnya setiap kali ada perubahan harga, dan pakai daftar pertanyaan yang tidak terjawab untuk menentukan dokumen apa yang perlu ditambah.
Poin penting
- Pakai RAG untuk informasi yang sering berubah seperti harga, stok, dan kebijakan. Cukup update dokumennya, dan setiap jawaban bisa dilacak ke sumbernya.
- Rapikan dokumen dan tentukan penanggung jawabnya sebelum mulai coding. Pencarian sebagus apa pun tidak bisa menolong dokumen yang usang atau saling bertentangan.
- Pecah dokumen sesuai strukturnya, beri judul dan metadata di setiap chunk, dan pakai hybrid search untuk kode serta nama produk.
- Ambil data real-time dan data pelanggan lewat tool call, dengan hak akses yang dicek oleh aplikasi.
- Biarkan chatbot bilang tidak tahu, alihkan ke petugas dengan riwayat lengkap, dan pakai daftar pertanyaan tak terjawab untuk melengkapi dokumen.


