Semua artikel

Membuat Chatbot AI Customer Service dengan RAG

Cara membuat chatbot AI yang menjawab dari FAQ, katalog, dan kebijakan bisnis Anda sendiri dengan RAG: menyiapkan dokumen, chunking, hybrid search, mengambil data real-time, alih ke tim CS, dan mengukur kualitas jawabannya.

Pengembangan AI|Dipublikasikan |10 menit baca
Ilustrasi kecerdasan buatan yang terhubung dengan jaringan data

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.

PendekatanCocok untukKeterbatasan
Prompt sajaDemo cepat dengan sedikit informasiTidak bisa dipakai lagi begitu informasinya tidak muat di prompt
RAGFAQ, katalog, kebijakan, dan SOP yang berubah dari waktu ke waktuKualitas jawaban bergantung pada kualitas dokumen dan pencariannya
Fine-tuningGaya bahasa, format jawaban, dan istilah khususMahal untuk di-update dan tidak bisa menunjukkan sumber jawabannya
Tool call ke sistemStatus pesanan, ketersediaan, data milik pelanggan tertentuButuh 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

  1. 1Kumpulkan pertanyaan pelanggan yang paling sering muncul dari riwayat chat. Sepakati topik mana yang dijawab chatbot dan mana yang langsung diteruskan ke tim.
  2. 2Rapikan dokumen, tunjuk penanggung jawabnya, dan lengkapi jawaban yang masih kosong.
  3. 3Bangun proses retrieval: chunking sesuai struktur dokumen, metadata, dan hybrid search. Uji hasil pencariannya dulu sebelum menyambungkan model.
  4. 4Tulis prompt yang membatasi jawaban pada dokumen, tambahkan tool call untuk data real-time, dan siapkan alur alih ke petugas.
  5. 5Jalankan data uji dan perbaiki yang gagal. Setelah itu, luncurkan di satu channel dulu, misalnya website atau Telegram.
  6. 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.

Artikel terkait

Artikel lain tentang software development, AI, cloud, dan infrastruktur.

Smartphone yang menampilkan folder berisi aplikasi pesan
Pengembangan AI|

Chatbot AI untuk Bisnis: Manfaat, Contoh Penggunaan, dan Biayanya

Panduan untuk pemilik bisnis yang mempertimbangkan chatbot AI: bedanya dengan chatbot biasa, kapan sepadan, contoh per industri, memilih antara website, Telegram, dan WhatsApp, komponen biaya, dan cara mengukur hasilnya.

Terminal Linux yang menampilkan prompt Ubuntu dengan perintah sudo
Tools Developer|

Setup WSL 2 untuk Development di Windows: Panduan Praktis

Panduan development di Windows dengan WSL 2: instalasi, di mana menyimpan file proyek, VS Code dan Git, membatasi memori lewat .wslconfig, Docker dan systemd, networking, backup, dan solusi masalah yang sering muncul.

Sedang mencari partner untuk pengembangan software?

Ceritakan proyek yang sedang Anda bangun, kebutuhan yang ingin diselesaikan, dan tantangan yang dihadapi. Kami dapat membantu membahas pendekatan teknis, scope, timeline, dan estimasi biaya.

Mulai diskusi