Lewati ke isi

Panduan Konfigurasi Bot

Panduan ini menjelaskan 5 sistem pengaturan yang mengontrol perilaku chatbot HUPH. Dengan memahami sistem ini, kamu bisa mengatur akurasi, kepribadian, dan keputusan bot tanpa perlu coding.


Gambaran Umum: Bagaimana Bot Memproses Pesan

Setiap kali user WhatsApp mengirim pesan, bot memprosesnya melalui beberapa tahap. Setiap tahap dikontrol oleh sistem pengaturan yang berbeda.

Text Only
User kirim pesan WhatsApp
┌─────────────────────────────────┐
│ 1. KLASIFIKASI INTENT            │  ← diatur di halaman Intents
│    "Apa yang user inginkan?"     │
│    Hasil: mau_daftar,            │
│    tanya_beasiswa, umum...       │
└──────────────┬──────────────────┘
┌─────────────────────────────────┐
│ 2. CEK ATURAN ESKALASI          │  ← diatur di halaman Escalation Rules
│    "Perlu dialihkan ke manusia?" │
│    Cek: sentimen, skor lead,     │
│    jumlah pesan                  │
│    Hasil: eskalasi / notifikasi  │
│    / lanjut dengan bot           │
└──────────────┬──────────────────┘
┌─────────────────────────────────┐
│ 3. PENCOCOKAN FAQ                │  ← diatur di halaman FAQ
│    "Ada jawaban siap pakai?"     │
│    Pencarian kemiripan semantik  │
│    Cocok → jawab instan (~0.4s)  │
│    Tidak cocok → lanjut ke AI    │
└──────────────┬──────────────────┘
               │ (tidak ada FAQ cocok)
┌─────────────────────────────────┐
│ 4. AI BUAT JAWABAN               │
│    Cari di Knowledge Base        │  ← Dokumen + Web Sources
│    + AI generate jawaban         │
│    Dipandu oleh:                 │
│    - Guidance Rules              │  ← diatur di halaman Guidance Rules
│    - Persona chatbot             │  ← diatur di halaman Chatbot Config
│    (~5 detik)                    │
└──────────────┬──────────────────┘
         Bot kirim jawaban

Intinya:

  • Langkah 1-2 menentukan BAGAIMANA pesan diproses (routing)
  • Langkah 3 mencoba jawab CEPAT dari FAQ
  • Langkah 4 jawab menggunakan AI jika FAQ tidak cocok

1. Chatbot Config — Kepribadian & Kriteria Scoring

Halaman: Bot Config → Chatbot

Sistem ini mengatur siapa bot ini dan bagaimana menilai lead.

Pengaturan Persona

Persona menentukan identitas bot — ini mempengaruhi gaya bahasa di SEMUA jawaban.

Pengaturan Fungsi Contoh
Nama bot Cara bot memperkenalkan diri "HalloUPH"
Tone Gaya bahasa formal atau santai "Santai, ramah, pakai 'kamu'"
Bahasa Bahasa default jawaban "Bahasa Indonesia"

Kriteria Lead Scoring

Lead scoring menentukan seberapa "panas" seorang calon mahasiswa. Ini mempengaruhi prioritas follow-up dan notifikasi ke counselor.

Label Skor Ciri-ciri Yang Terjadi
HOT 80-100 Siap daftar, sudah tanya detail program, sudah kasih data pribadi Counselor langsung dihubungi, follow-up otomatis dilewati
WARM 40-79 Tertarik tapi masih eksplorasi, tanya beberapa program, bandingkan dengan universitas lain Dapat 3x follow-up, konten berisi nilai tambah
COLD 0-39 Hanya browsing, pertanyaan umum, belum sebut program tertentu Dapat max 2x follow-up, lalu berhenti

Teks kriteria ini bisa diedit di halaman Chatbot Config. AI membaca teks ini saat menilai setiap lead di pesan ke-3, 5, 7, lalu setiap 5 pesan.

Keyword Sentimen

Kata-kata yang membantu bot mendeteksi emosi user:

Sentimen Contoh Kata
Kecewa/frustasi "kecewa", "lambat", "susah", "ribet", "ga jelas"
Positif "terima kasih", "bagus", "mantap", "helpful"
Mendesak "segera", "deadline", "buru-buru", "kapan terakhir"

Keyword ini digunakan oleh Escalation Rules. Misalnya, aturan bisa berisi: "Jika sentimen = frustasi DAN skor lead > 80, eskalasi ke counselor."


2. Intents — Memahami Maksud Pesan User

Halaman: Bot Config → Intents

Sistem ini mengatur bagaimana bot mengklasifikasi apa yang user inginkan.

Cara Kerja Klasifikasi

Setiap pesan masuk melewati 4 tingkat klasifikasi:

Tingkat Cara Kecepatan Kapan Dipakai
Tingkat 1: Aturan Pencocokan kata kunci Instan Kata kunci persis (misal "mau daftar")
Tingkat 2: Cache Lookup klasifikasi sebelumnya Instan Pesan mirip pernah diklasifikasi
Tingkat 3: AI AI tentukan klasifikasi ~0.5 detik Tidak ada aturan atau cache cocok
Tingkat 4: Default Masuk ke unknown Instan AI tidak bisa tentukan → ke FAQ/KB

Daftar Intent

Intent Artinya Yang Bot Lakukan
want_register User mau mendaftar Tampilkan langkah pendaftaran, minta nama/email/telp
want_visit_campus User mau kunjungi kampus Tampilkan jadwal Open Day, minta data kontak
ask_scholarship Tanya tentang beasiswa Arahkan ke info beasiswa dari Knowledge Base
ask_program_specific Tanya tentang program tertentu Arahkan ke info program dari Knowledge Base
share_personal_info User memberikan nama/email/telp Ekstrak dan simpan ke data lead
request_human Mau bicara dengan orang Langsung eskalasi ke counselor
complaint Menyampaikan keluhan Eskalasi dengan prioritas tinggi
payment_confirmation Konfirmasi sudah bayar Eskalasi ke admin keuangan
document_upload_help Butuh bantuan upload dokumen Eskalasi ke admin
transfer_student Mahasiswa pindahan Eskalasi ke spesialis
unknown Pertanyaan umum Ke FAQ → Knowledge Base → AI jawab

Apa yang Bisa Dilakukan di Halaman Intents

  • Toggle on/off — nonaktifkan intent yang sering salah klasifikasi
  • Edit contoh — tambah atau hapus contoh kalimat untuk melatih classifier
  • AI Suggest — AI buatkan variasi contoh kalimat otomatis
  • Export/Import CSV — edit massal lewat spreadsheet
  • Lihat log klasifikasi — lihat pesan terbaru dan bagaimana diklasifikasi

Tips

  • Kalau user sering salah klasifikasi, tambah contoh kalimat untuk intent yang benar
  • Gunakan AI Suggest untuk generate variasi yang mungkin tidak terpikirkan
  • Log klasifikasi menunjukkan skor confidence — skor rendah berarti bot menebak
  • unknown itu BUKAN masalah — artinya pesan masuk ke pipeline AI lengkap untuk jawaban yang lebih baik

3. FAQ — Jawaban Cepat

Halaman: Knowledge → FAQ

Sistem ini mengatur pasangan pertanyaan-jawaban yang sudah disiapkan untuk respon instan.

Cara Kerja FAQ

FAQ adalah jalur cepat. Kalau user bertanya sesuatu yang mirip dengan FAQ, bot langsung jawab tanpa perlu proses AI yang lebih lama.

Text Only
User: "Berapa biaya kuliah Informatika?"
Sistem cek FAQ (kemiripan semantik)
    ├─ Skor > 0.7 → FAQ cocok → jawab instan (~0.4 detik)
    └─ Skor < 0.7 → tidak cocok → proses AI lengkap (~5 detik)

Statistik Saat Ini

  • 101 FAQ item aktif
  • Threshold: 0.7 skor kemiripan
  • Kecepatan: ~0.4 detik untuk FAQ vs ~5 detik untuk AI lengkap

FAQ vs Knowledge Base

FAQ Knowledge Base (Dokumen + Web Sources)
Kecepatan ~0.4 detik ~5 detik
Akurasi Tepat (jawaban ditulis manusia) Dibuat AI (bisa bervariasi)
Cakupan Hanya pertanyaan yang cocok Topik apapun yang ada di KB
Kapan pakai Pertanyaan umum yang berulang Pertanyaan kompleks dan bervariasi

Apa yang Bisa Dilakukan di Halaman FAQ

  • Tambah FAQ — tulis pertanyaan dan jawabannya
  • Toggle on/off — nonaktifkan sementara tanpa menghapus
  • Edit — ubah pertanyaan atau jawaban
  • Hapus — hapus permanen
  • Perubahan otomatis sync ke sistem dalam 5 detik

Tips

  • Mulai dari 20 pertanyaan paling sering ditanyakan — ini memberikan dampak terbesar
  • Tulis pertanyaan sesuai cara user bertanya, bukan formal (misal "Berapa biaya kuliah?" bukan "Berapakah biaya perkuliahan?")
  • Buat jawaban singkat — pesan WhatsApp harus pendek dan mudah dibaca
  • Kalau FAQ tidak pernah cocok, coba ubah kata-kata pertanyaannya sesuai cara user sebenarnya bertanya

FAQ Score Threshold — Slider Lanjutan (Phase 2)

Lokasi: Chatbot Config → Advanced → FAQ Score Threshold

Slider ini mengontrol batas minimum skor kemiripan sebelum FAQ fast-path dipakai. Default 0.7 (sudah terbukti aman untuk 101 FAQ produksi).

  • Naikkan (mis. 0.8) → FAQ lebih selektif, lebih banyak pertanyaan yang diroute ke AI lengkap. Cocok kalau operator lihat banyak reject dari judge Bot Health karena FAQ match yang kurang tepat.
  • Turunkan (mis. 0.6) → FAQ lebih longgar, lebih banyak pertanyaan yang kena fast-path. Cocok kalau volume jawaban AI tinggi tapi banyak pertanyaan sebetulnya sudah ada di FAQ.

Status saat ini: Slider terkunci sampai FEATURE_FAQ_THRESHOLD=true di-set di server. Itu dilakukan setelah window observasi 1 minggu di Phase 1 (paling cepat 2026-05-01) membuktikan knob ini perlu. Tanpa data Phase 1 yang jelas, perubahan threshold = tebak-tebakan.

Apa yang terjadi saat disimpan: backend HUPH kirim perintah ke Dify (/v1/apps/annotation-reply/enable) untuk re-index embedding dengan threshold baru. Prosesnya async (~detik untuk 35 anotasi aktif). Selama proses, slider sudah mencerminkan nilai baru; chat user langsung pakai threshold baru setelah re-index selesai.

Kalau Dify gagal: backend batal tulis ke app_config lokal dan balas 502. Ini sengaja — mencegah split-brain di mana UI bilang "0.8" tapi Dify masih pakai "0.7". Cukup retry setelah Dify sehat.

Edge case langka — Dify terima tapi database HUPH gagal: urutan saat ini Dify dulu, baru UPSERT lokal. Kalau Dify sudah apply threshold baru tapi UPSERT ke app_config gagal (koneksi postgres putus tepat saat itu), Dify punya nilai baru sementara app_config masih lama. UI akan bilang "threshold 0.7" padahal chat bot pakai 0.8. Recovery: simpan ulang slider dengan nilai yang benar (idempotent pada Dify). Secara statistik sangat jarang; dokumentasi ini ada supaya kalau kejadian operator tahu apa yang terjadi.

Apa yang tidak diubah slider: embedding_provider_name dan embedding_model_name (ditampilkan di bawah slider sebagai info). Mengubah ini butuh re-index ulang semua FAQ embedding — bukan knob harian, dilakukan lewat SQL manual + scripts/migrate-faq-threshold-config.sql bila benar-benar perlu.


4. Escalation Rules — Kapan Melibatkan Manusia

Halaman: Bot Config → Escalation Rules

Sistem ini mengatur aturan otomatis yang menentukan kapan bot harus menyerahkan percakapan ke counselor manusia.

Cara Kerja Aturan Eskalasi

Setelah setiap pesan, bot mengevaluasi SEMUA aturan eskalasi yang aktif. Setiap aturan punya kondisi (logika AND — semua harus terpenuhi) dan aksi.

Text Only
Pesan masuk → Bot klasifikasi intent + deteksi sentimen + cek skor lead
Untuk setiap aturan aktif:
    Kondisi 1 cocok? DAN Kondisi 2 cocok? DAN ...
    ├─ Semua cocok → jalankan aksi (eskalasi / notifikasi / tag)
    └─ Ada yang tidak cocok → lewati, cek aturan berikutnya

Field Kondisi

Field Apa yang Diukur Contoh Nilai
sentiment Emosi user frustrated, positive, neutral, urgent
lead_score Seberapa "panas" lead (0-100) 0, 40, 80, 95
funnel_stage Posisi di proses admisi inquiry, prospect, registered, admitted
message_count Total pesan dalam percakapan 1, 5, 10, 20
intent Apa yang user inginkan want_register, complaint, request_human
user_role Siapa yang mengirim pesan prospective_student, parent, teacher

Operator

Operator Arti Contoh
eq Sama dengan sentiment eq "frustrated"
ne Tidak sama dengan intent ne "unknown"
gt / gte Lebih besar dari / atau sama lead_score gte 80
lt / lte Lebih kecil dari / atau sama message_count lt 3
in Salah satu dari (daftar) funnel_stage in ["inquiry", "prospect"]
contains Teks mengandung intent contains "register"

Jenis Aksi

Aksi Yang Terjadi Bot Lanjut?
Escalate Status percakapan → "escalated", counselor diberitahu, bot berhenti merespons Tidak — counselor mengambil alih
Notify Notifikasi dikirim ke counselor/admin, tapi bot tetap merespons Ya — bot tetap jalan
Tag Label ditambahkan ke metadata percakapan untuk tracking Ya — tidak ada perubahan terlihat

Contoh Aturan

Nama Aturan Kondisi Aksi Mengapa
Lead panas kecewa sentimen = frustrated DAN skor_lead >= 80 Eskalasi (prioritas: tinggi) Lead bernilai tinggi sedang kecewa — perlu sentuhan manusia SEKARANG
Alert lead panas skor_lead >= 80 Notifikasi admin Beri tahu counselor tentang lead panas, tapi bot bisa terus bicara
User terjebak jumlah_pesan > 15 Eskalasi (prioritas: sedang) User sudah chat terlalu lama — kemungkinan bingung
Orang tua bertanya user_role = parent Tag "parent" Lacak percakapan orang tua secara terpisah

Eskalasi Otomatis vs Manual

Berdasarkan Intent Berdasarkan Aturan
Pemicu User bilang "mau bicara orang" Sistem mendeteksi kombinasi sinyal
Siapa yang memutuskan User meminta langsung Bot memutuskan otomatis
Contoh Intent request_human → eskalasi sentimen=frustrated + skor>80 → eskalasi
Kapan berguna User tahu mereka butuh bantuan User mungkin tidak tahu, tapi sinyal menunjukkan butuh bantuan

Keduanya bisa memicu eskalasi. Intent-based bersifat eksplisit (user minta), rules-based bersifat implisit (sistem deteksi).


5. Guidance Rules — Pedoman Pengetahuan Bot

Halaman: Bot Config → Guidance Rules

Sistem ini mengatur pengetahuan faktual dan aturan perilaku yang diinjeksi ke prompt sistem AI.

Cara Kerja Guidance Rules

Berbeda dengan FAQ (yang merupakan jawaban UNTUK user), guidance rules adalah instruksi UNTUK bot. Rules ini diinjeksi ke system prompt, sehingga AI membacanya sebelum membuat setiap jawaban.

Text Only
User bertanya
AI menerima:
  System prompt:
    "Kamu adalah HalloUPH..."                    ← dari Chatbot Config
    "Aturan yang harus diikuti:
     - Biaya formulir: 50rb/750rb/400rb           ← dari Guidance Rules
     - JANGAN sebut Rp 500rb                      ← dari Guidance Rules
     - Jawab semua pertanyaan satu-satu"           ← dari Guidance Rules
AI buat jawaban mengikuti aturan ini

Aturan yang Saat Ini Aktif

Kategori Aturan Mengapa Ada
admission "8 tahap pendaftaran: Prospect → Inquiry → Registered → Form Purchased → Submitted → Admitted → Committed → Matriculated" Bot harus tahu urutan tahap yang benar
admission "Biaya formulir: Keperawatan Rp 50.000, Kedokteran Rp 750.000, program lain Rp 400.000 — JANGAN PERNAH sebut Rp 500.000" Mencegah bot menyebut harga yang SALAH. Website lama pernah menampilkan Rp 500.000.
admission "Tes masuk hanya wajib untuk: Kedokteran, Keperawatan, Homeschool, Paket C. Lainnya: Direct Admission (tanpa tes)" Kesalahpahaman umum — banyak user mengira semua program harus tes masuk
general "Jika user kirim beberapa pertanyaan dalam satu pesan, JAWAB SEMUA pertanyaan satu per satu" Tanpa aturan ini, AI cenderung hanya menjawab pertanyaan pertama
payment "Metode pembayaran: BCA e-Payment kode 720015, BCA VA kode 75109, Mandiri ATM kode 10028" Kode pembayaran harus tepat — bot tidak boleh menebak
payment "Jenis beasiswa: Prestasi Akademik (3 semester SPP), Bantuan Keuangan (D3/S1 Farmasi), Olahraga" Info beasiswa yang akurat

Kapan Harus Menambah Guidance Rule

Tambahkan rule ketika:

  1. Bot memberikan informasi salah berulang kali — misal harga salah, deadline salah, prosedur salah
  2. Ada kesalahpahaman umum — misal "semua jurusan harus tes masuk" (salah)
  3. Kamu ingin memaksakan perilaku tertentu — misal "jawab semua pertanyaan, jangan skip"
  4. Data kritis yang harus tepat — misal kode pembayaran, nomor rekening bank

Panduan Memilih: FAQ atau Guidance Rule?

Situasi Pakai FAQ Pakai Guidance Rule
User tanya "Berapa biaya formulir?" ✅ Tulis jawaban sebagai FAQ
Bot terus menyebut harga yang salah ✅ Tambah rule: "JANGAN sebut Rp 500rb"
User tanya jenis beasiswa ✅ Daftar beasiswa di FAQ
Bot hanya jawab 1 dari 3 pertanyaan ✅ Tambah rule: "Jawab SEMUA pertanyaan"
Pertanyaan umum tentang lokasi kampus ✅ FAQ dengan alamat
Bot harus selalu arahkan ke one.uph.edu ✅ Tambah rule: "Selalu arahkan ke one.uph.edu"

Aturan sederhana:

  • FAQ = "Apa yang dijawab" — jawaban spesifik untuk user
  • Guidance Rule = "Bagaimana menjawab" — aturan perilaku untuk bot, atau "Apa yang TIDAK boleh dikatakan" — guardrail

Sistem Prioritas

Setiap rule punya nomor prioritas (lebih tinggi = lebih penting). Saat ini:

  • 95: Aturan perilaku umum (mempengaruhi semua jawaban)
  • 90: Koreksi fakta kritis (harga salah, dll.)
  • 85: Pengetahuan proses/prosedur
  • 80: Data referensi (kode pembayaran, jenis beasiswa)

Tabel Ringkasan

Sistem Halaman Mengontrol User Lihat? Seberapa Sering Diubah
Chatbot Config Bot Config → Chatbot Identitas bot, kriteria scoring, keyword sentimen Tidak langsung (mempengaruhi gaya bahasa) Jarang (diatur sekali)
Intents Bot Config → Intents Aturan klasifikasi pesan dan contoh kalimat Tidak (routing internal) Bulanan (tuning akurasi)
FAQ Knowledge → FAQ Pasangan pertanyaan-jawaban cepat Ya (dikirim ke user) Mingguan (tambah FAQ baru)
Escalation Rules Bot Config → Escalation Rules Kapan bot menyerahkan ke manusia Tidak (logika internal) Bulanan (tuning threshold)
Guidance Rules Bot Config → Guidance Rules Pengetahuan faktual dan guardrail perilaku AI Tidak langsung (mempengaruhi akurasi) Sesuai kebutuhan (saat bot buat kesalahan)

Alur Kerja yang Direkomendasikan untuk Tuning Bot

Tuning bot adalah proses iteratif. Bot semakin baik seiring waktu saat kamu menambah FAQ, guidance rules, dan contoh intent.

Langkah-langkah:

  1. Pantau percakapan — lihat inbox percakapan, cari jawaban yang salah
  2. Cek klasifikasi intent — kalau intent yang terdeteksi salah, tambah contoh kalimat di halaman Intents
  3. Tambah FAQ — kalau user terus menanyakan pertanyaan yang sama, buat FAQ untuk jawaban instan
  4. Tambah Guidance Rule — kalau bot memberikan fakta yang salah, tambah aturan guardrail
  5. Sesuaikan Escalation Rules — kalau terlalu banyak/sedikit eskalasi, ubah threshold skor
  6. Review kriteria scoring — kalau lead dinilai salah, perbaiki deskripsi HOT/WARM/COLD di Chatbot Config

Contoh Skenario:

"Bot menjawab biaya formulir Rp 500.000 padahal seharusnya Rp 400.000"

  1. Cek FAQ → ada FAQ dengan harga benar? Kalau belum, tambahkan
  2. Cek Guidance Rules → tambahkan: "JANGAN sebut Rp 500.000, harga yang benar adalah Rp 400.000"
  3. Cek Knowledge Base → apakah ada dokumen lama dengan harga salah? Hapus atau update

"User yang sangat tertarik tidak mendapat perhatian counselor"

  1. Cek scoring criteria → apakah definisi HOT sudah tepat?
  2. Cek Escalation Rules → tambahkan rule: "Jika skor >= 80, kirim notifikasi ke counselor"
  3. Cek log → apakah skor lead memang rendah padahal seharusnya tinggi?

"Bot hanya menjawab 1 dari 3 pertanyaan yang dikirim bersamaan"

  1. Cek Guidance Rules → tambahkan: "Jika user kirim beberapa pertanyaan, JAWAB SEMUA satu per satu"
  2. Tidak perlu ubah FAQ atau Intent — ini masalah perilaku AI

Tambahan 2026-04: Bilingual + Quality Gate

Dua kapabilitas tambahan aktif di chatflow live (v3-observe) yang dijelaskan di sini supaya admin paham perilaku bot yang mungkin terlihat. Kontrol utamanya ada di file YAML chatflow Dify, bukan di halaman admin seperti 5 sistem di atas.

6. Bilingual ID + EN (Phase A.6)

Chatflow punya dual-LLM per-path: setiap path bot (FAQ, Registration, Multi-Q, Complaint, Off-topic) punya dua LLM node — satu dengan prompt Bahasa Indonesia native, satu English native. Router bahasa memilih salah satu berdasarkan user_language dari API.

Saat BILINGUAL_ENABLED=false (default): 100% traffic rute ke LLM Bahasa → perilaku identik pre-April 2026. Saat BILINGUAL_ENABLED=percent:N: N% percakapan di-deteksi bahasanya + routing.

Yang bisa admin lakukan: - Isi question_en + answer_en di halaman FAQ supaya FAQ tersedia bilingual - Request developer flip BILINGUAL_ENABLED saat UPH siap (lihat docs/ops/bilingual/rollout-runbook.md)

Editing prompt LLM ID/EN butuh developer (YAML chatflow).

7. Quality Gate Observe Mode (Phase A.5)

Setiap jawaban bot dinilai LLM judge (Claude Haiku) berdasarkan apakah fakta jawaban grounded di retrieved context. Saat ini observe-only — judge mencatat keputusan ke Langfuse tapi tidak memblok.

Keputusan judge: - pass — jawaban grounded di KB - reject — klaim tampak tidak ter-ground (tidak memblok sekarang)

Yang bisa admin lakukan: - Monitor pola reject di Langfuse (port 3300) → identifikasi: - Pertanyaan yang bot sering mengarang → tambah KB/FAQ - Topic overextrapolate → tambah guidance rule - Request developer flip ke block mode saat UPH siap (lihat docs/ops/phase-a5-observe-2026-04-23.md)

Untuk pengukuran mutu kuantitatif dari jawaban bot, gunakan Answer evaluation dengan golden questions.

Monitoring Judge Decisions (Analytics → Bot Health)

Halaman Analytics V2 → tab Bot Health sekarang menampilkan panel Quality Gate — Judge Decisions di paling atas. Panel ini memperlihatkan performance judge Claude Haiku yang mengevaluasi setiap jawaban bot di Dify chatflow.

Apa yang ditampilkan

  • Pass rate — persentase jawaban bot yang dinilai "pass" oleh judge (hijau = bagus, merah muda = perlu review)
  • Rejects by path — jumlah rejection per tipe jawaban: FAQ, Registration, Multi-Q, Complaint, Off-Topic
  • Judged total — berapa banyak jawaban bot yang sudah di-evaluasi dalam window waktu yang dipilih
  • Recent rejects (tabel) — 20 rejection terakhir dengan waktu, path, snippet pertanyaan user, dan alasan judge menolak jawaban bot

Cara membaca

  • Pass rate > 90% — bot konsisten, tidak perlu aksi. Lanjut cek metric lain (intent confidence, default rate).
  • Pass rate 70-90% — review recent rejects. Cari pola:
    • Topik tertentu selalu reject? → update FAQ atau KB di topik itu
    • Program tertentu sering dihallucinate? → tambah guidance rule atau koreksi KB sourcing
    • Bahasa tertentu (ID vs EN) bermasalah? → review KB bilingual coverage
  • Pass rate < 70% — eskalasi ke tim teknis. Kemungkinan:
    • KB outdated — banyak info baru (biaya, jadwal) belum di-update
    • Model drift — Claude Haiku berperilaku beda dari sebelumnya
    • Judge prompt terlalu strict — butuh kalibrasi ulang corpus

Range waktu

Panel mengikuti range selector di atas tab (Today / 7d / 30d): - Today = 24 jam terakhir - 7d = 168 jam (1 minggu) - 30d = 720 jam (1 bulan)

Catatan penting

Saat ini Quality Gate berjalan di observe mode — router selalu teruskan jawaban ke user meski judge reject. Mode block (auto-escalate saat reject) akan di-enable setelah: 1. Data terkumpul cukup (≥50 conversations/bulan) 2. Corpus audit selesai (verify judge labels akurat) 3. Admin UI untuk override decision per-conversation tersedia 4. Stakeholder sign-off dari tim UPH

Sementara di observe mode, data rejection adalah sinyal untuk improvement KB/FAQ, bukan automatic escalation.