Cara Bikin Chatbot FAQ dari Dokumen PDF dengan API AI (RAG Sederhana) 2026

CS kamu kehabisan napas jawab pertanyaan yang sama: “Garansi berapa lama?”, “Bedanya private vs shared?”, “Cara top up API key?”, “Refund-nya gimana?”

Padahal jawabannya udah ada di PDF panduan, SOP, atau FAQ internal. Masalahnya: pelanggan males baca, tim males scroll.

Solusi 2026 yang paling masuk akal buat toko online & seller digital: chatbot FAQ berbasis dokumen — alias mini RAG. Bukan “AI ngarang”, tapi AI yang ambil cuplikan dari file kamu dulu, baru jawab.

Artikel ini versi praktis buat pemula–menengah. Fokus: pipeline yang jalan, biaya terkendali, dan bisa ditaruh di web/WhatsApp belakangan.

Kalau kamu baru mau paham beda akun login vs API key, bacaan bagus: API key vs akun login untuk pakai AI.

Apa yang Kita Bangun (Scope Realistis)

Kita bikin sistem yang:

  1. Baca PDF / Markdown / TXT (katalog, SOP, FAQ, panduan setup)
  2. Potong jadi chunk kecil
  3. Buat embedding (vektor angka)
  4. Saat user tanya → cari chunk paling mirip
  5. Kirim chunk + pertanyaan ke LLM (OpenAI / Claude / model lain)
  6. Jawab dengan sumber, bilang “tidak tahu” kalau di dokumen nggak ada

Ini fondasi yang sama dipakai knowledge base support di cara bikin knowledge base customer support Claude API, cuma di sini kita breakdown teknisnya lebih “bisa diimplement”.

Arsitektur Sederhana (Tanpa Over-Engineering)

PDF/MD  →  extract text  →  chunking  →  embeddings  →  store
                                                      ↓
User question → embed query → similarity search → top-k chunk
                                                      ↓
                         prompt (system + context + question) → LLM → jawaban

Komponen yang kamu butuh:

Bagian Opsi pemula Opsi scale
Extract PDF pypdf / pdfplumber OCR kalau scan
Chunk 400–800 token, overlap 10–15% recursive splitter
Embedding text-embedding-3-small bge / voyage, dll
Store JSON/SQLite + numpy pgvector / Qdrant
LLM GPT-4.1-mini / Claude Haiku–Sonnet multi-model gateway
UI Streamlit / web chat / WhatsApp API production app

Step 1 — Siapkan Dokumen yang “Layak Di-RAG”

Sampah masuk, sampah keluar. Sebelum coding:

  • Satukan FAQ, syarat garansi, cara aktivasi, troubleshooting
  • Satu topik per section, pakai heading jelas
  • Hindari scan buram; kalau perlu, convert ke text dulu
  • Update harga/promo di dokumen master, jangan cuma di story IG

Contoh struktur bagus:

# Garansi Akun
## Durasi
## Yang ditanggung
## Yang tidak ditanggung
# Cara Aktivasi ChatGPT Plus
## Step by step
## Error umum

Step 2 — Chunking yang Nggak Bikin Bot “Pecah Otak”

Aturan praktis:

  • Ukuran: 300–800 token per chunk (≈ 200–600 kata)
  • Overlap: 50–100 token biar kalimat penting nggak kepotong
  • Hormati heading: jangan potong di tengah tabel penting kalau bisa
  • Metadata: simpan source, page, section_title

Kenapa penting? Kalau chunk kebesaran, retrieval kasar. Kekecilan, konteks hilang.

Step 3 — Embeddings + Retrieval

Pseudo-flow:

  1. Tiap chunk → embedding = embed(chunk)
  2. Simpan {id, text, embedding, source}
  3. User tanya → q = embed(question)
  4. Hitung cosine similarity vs semua chunk
  5. Ambil top 3–5

Untuk dokumen kecil (misal 20 PDF panduan toko), brute-force cosine di memory udah cukup. Nanti baru pindah vector DB.

Tips akurasi: - Query expansion ringan: “garansi akun shared” → juga cari “klaim garansi”, “masa aktif” - Filter metadata (hanya folder “produk-X”) - Minimal score threshold — di bawah itu bilang “nggak ketemu di dokumen”

Step 4 — Prompt LLM yang Anti-Ngarang

Ini bagian paling penentu trust.

Kamu asisten FAQ toko. Jawab HANYA dari CONTEXT.
Kalau jawaban tidak ada di context, bilang:
"Aku belum nemu info itu di dokumen resmi. Hubungi CS ya."
Jangan mengarang harga, garansi, atau fitur.
Sertakan nama sumber/halaman kalau ada.
Nada: santai, jelas, singkat.

Lalu kirim:

CONTEXT:
[chunk 1]
[chunk 2]
[chunk 3]

PERTANYAAN:
[user question]

Model bagus + context jelek = tetap jelek. Context bagus + prompt longgar = tetap bisa ngarang. Kunci keduanya.

Perbandingan model API buat workload kayak gini ada di perbandingan OpenAI API vs Claude API vs Gemini API 2026.

Step 5 — Implementasi Minimal (Python Sketch)

Ini kerangka, bukan production full:

# 1) load & chunk docs
# 2) embed & simpan
# 3) retrieve top-k
# 4) call chat completions / messages API

system = "Jawab hanya dari context. Jika tidak ada, bilang tidak tahu."
user = f"CONTEXT:\n{context}\n\nPERTANYAAN:\n{question}"
# kirim ke OpenAI-compatible endpoint atau Claude Messages API

Kalau mau OpenAI-compatible biar gampang ganti provider, baca OpenAI-compatible API Indonesia: panduan lengkap.

Step 6 — Biaya: Jangan Kaget di Tagihan

Hitung kasar:

Item Kapan ke-charge
Embedding dokumen Sekali (atau saat update)
Embedding query Tiap pertanyaan user
LLM completion Tiap jawaban (paling mahal)

Cara hemat: - Pakai model kecil untuk FAQ rutin, model besar cuma buat eskalasi - Cache jawaban untuk pertanyaan identik - Batasi max_tokens jawaban FAQ (150–400 cukup) - Jangan taruh full PDF di prompt — cuma top-k chunk

Detail budgeting lebih dalam: cara hitung biaya API AI per project dan tips hemat kuota token API AI.

Step 7 — Tempel ke Channel yang Pelanggan Pakai

Retrieval + LLM itu “otak”. Channel itu “mulut”:

  1. Web widget di toko / blog
  2. WhatsApp via API + auto-reply (mirip alur di cara pakai OpenAI API auto-reply WhatsApp bisnis)
  3. Telegram bot buat komunitas reseller
  4. Internal tool buat tim CS (biar onboarding staff baru 1 hari, bukan 1 minggu)

Mulai 1 channel dulu. Yang paling banyak tiket.

Evaluasi: Bot Pintar atau Bot Percaya Diri?

Buat 30 pertanyaan real dari history CS:

  • 10 mudah (jam operasional, cara bayar)
  • 10 menengah (beda paket, cara ganti password)
  • 10 edge case (komplain, kasus khusus)

Score manual: - Benar & lengkap - Benar tapi kurang - Salah / ngarang - “Tidak tahu” padahal ada di doc (retrieval miss)

Target awal yang waras: >80% benar atau “tidak tahu yang jujur”, 0% ngarang soal harga/garansi.

Kalau sering miss: perbaiki chunk, heading dokumen, atau jumlah top-k — jangan langsung ganti model.

Keamanan & Batas Etis (Penting buat Seller Digital)

  • Jangan taruh kredensial akun customer di knowledge bot
  • Pisah dokumen internal (margin, supplier) vs dokumen customer-facing
  • Rate limit + auth biar nggak disalahin scrap
  • Log pertanyaan biar kamu tahu gap FAQ
  • Selalu ada tombol “chat manusia”

Ingat: chatbot bantu CS, bukan ganti tanggung jawab garansi.

Roadmap 7 Hari (Kalau Mau Eksekusi)

Hari 1–2: rapikan PDF/FAQ master
Hari 3: extract + chunk + embed
Hari 4: retrieval + prompt anti-hallucination
Hari 5: UI sederhana + 30 test question
Hari 6: tempel 1 channel (web atau WA)
Hari 7: review log, update dokumen, cache top questions

Kalau mau versi no-code automation dulu sambil belajar, bisa eksperimen alur di tutorial n8n + OpenAI API automasi marketing, lalu migrasi ke app sendiri saat stabil.

Kapan Harus Naik Level?

Naik ke stack lebih serius kalau: - Dokumen > ratusan file / sering update massal - Traffic ribuan query/hari - Butuh multi-bahasa + multi-produk ketat - Perlu citation UI yang rapi + analytics

Sampai situ, RAG sederhana di atas biasanya udah nutup 70–90% tiket berulang.

Penutup

Chatbot FAQ dari PDF itu bukan sihir. Itu pipeline rapi: dokumen bersih → chunk → retrieve → LLM jujur → channel pelanggan.

Mulai kecil: 1. 1 PDF FAQ toko
2. Top-5 retrieval
3. Prompt “jangan ngarang”
4. Tes 30 pertanyaan CS
5. Tempel ke 1 channel

Butuh API key OpenAI/Claude, gateway multi-model, atau akun AI premium buat build & tes production? Cek abdijualan.online — marketplace akun digital & API reseller yang biasa dipakai developer dan seller biar eksperimen chatbot nggak macet di akses tools.