Glosarium
Istilah kunci yang dipakai di seluruh dokumentasi HUPH. Diurut per abjad.
Aria — persona AI chatbot yang berinteraksi dengan user di WhatsApp. Tidak singkatan — sekadar nama yang terasa ramah untuk calon mahasiswa.
BGE-M3 — (legacy, removed April 2026) Model embedding open-
source dari BAAI, menghasilkan dense (1024 dimensi) dan sparse
vector dalam satu pass. HUPH memakainya via self-hosted apps/rag
Python service selama Mar–awal Apr 2026. Sudah digantikan oleh
Dify + OpenAI embeddings. Sudah tidak ada di repo saat ini.
BGE-reranker-v2-m3 — (legacy, removed April 2026) Cross-
encoder dari BAAI untuk rerank top kandidat setelah hybrid search
awal. Dihapus bersamaan dengan apps/rag ketika AI pipeline pindah
ke Dify.
Channel — entry point pesan user. Sejak April 2026, HUPH hanya punya SATU channel aktif: WhatsApp (via 360dialog). Telegram dan Web dihapus di cleanup Apr 8.
Claude Haiku — LLM Anthropic yang dipakai untuk generate
response, klasifikasi intent (Layer 3 fallback), dan eval judging.
Model ID saat ini: claude-haiku-4-5 (tanpa suffix tanggal).
Dipanggil via Anthropic API langsung (bukan AWS Bedrock).
Cluster — grouping akademik prodi UPH. HUPH punya 5 cluster:
- CASS (College of Arts & Social Sciences)
- CBT (College of Business & Technology)
- CHS (College of Health Sciences)
- CIST (College of Information Science & Technology)
- CNE (College of Nursing & Education)
Setiap cluster punya counselor khusus.
Cluster ownership (sticky vs flip) — model ownership hybrid-
lite HUPH. owner_source pada lead menentukan cara flip:
program_match— fluid, ikut program terakhir yang disebutregister_intent— lock saat user bilang "mau daftar"manual— override admin, selalu menang
Lihat halaman escalation.
Counselor Dashboard — view admin Phase 1.6 (merged Apr 9 via PR #2) yang menampilkan antrian per-counselor, KPI, dan akses lead yang di-scope.
Dify — platform AI self-hosted yang dipakai HUPH sebagai layer
chat completion + annotation reply + KB management. Di-host di
dify.huph.val.id. FAQ annotation match dalam ~300 ms, melewati
full LLM pipeline.
Dify Annotation — pasangan Q&A curated di Dify yang match
query user via fuzzy match. Bypass LLM, balas ~300 ms. Sistem FAQ
HUPH men-sync row faq_local ke Dify annotation.
Escalation — menyerahkan percakapan dari Aria ke counselor
manusia. Set conversations.status = 'escalated' dan pause bot.
Di-trigger oleh rule (user frustrated, percakapan panjang) atau
Take Over manual dari Inbox admin.
Escalation kind — salah satu dari 2 jenis notifikasi:
escalation— judul "Escalation:", fire saat action=escalate, status flipnotify— judul "Hot lead:", fire saat action=notify, status tidak berubah
FAQ vs KB — dua jalur jawaban berbeda:
- FAQ = pasangan exact-match curated yang disimpan lokal dan sinkron ke Dify annotation. Cepat (~300 ms), no LLM.
- Knowledge Base (KB) = retrieval semantic search atas dokumen yang di-crawl. Lebih lambat (~6 s), lebih fleksibel.
Feature flag — env var boolean yang mengatur subsystem. Flag HUPH saat ini:
LEAD_CAPTURE_ENABLED— lead capture Phase 2A pipelineTEAM_OWNERSHIP_ENABLED— cluster resolver dan ownershipESCALATION_ROUTING_ENABLED— notification fan-outAPI_AUTH_MODE—disabled | warn | enforceuntuk Phase 0 auth
Golden QA dataset — set 21 pasangan Q-A tetap yang dipakai
ukur kualitas RAG via Run Eval di tab KB Evaluation admin.
Baseline per 2026-03-27: 95.2% pass rate (20/21), faithfulness
0.94, relevancy 0.93.
Hybrid search — kombinasi similarity vector dense dengan keyword matching sparse, di-fuse via RRF. Historically diimplementasikan di HUPH via BGE-M3 self-hosted + query langsung ke Qdrant; arsitektur sekarang delegasi ke workflow Dify yang menjalankan logika serupa atas Milvus.
Intent Router — classifier 4-tier Phase 1 yang route pesan masuk ke handler yang tepat sebelum RAG. Tier: deterministic regex → keyword heuristic → Claude Haiku → default.
JWE (NextAuth) — format JWT ter-enkripsi yang dipakai
NextAuth untuk session token. Bukan signed JWT — decoding butuh
next-auth/jwt encode/decode dengan NEXTAUTH_SECRET yang sama,
bukan jsonwebtoken.sign/verify. Silent failure kalau tertukar.
Lead — record terstruktur dengan data kontak (nama, phone, email, program interest) yang di-ekstrak dari percakapan. Berbeda dari conversation — satu conversation bisa hasilkan 0 atau 1 lead, dan satu lead bisa punya banyak conversations.
Lead stage (real enum DB):
incomplete → new → contacted → qualified → enrolled → lost
Milvus — vector database yang dipakai saat ini. Dipakai oleh
Dify untuk KB retrieval. Di-bring up via docker-compose.milvus.yml,
terpisah dari docker-compose.yml utama. Menggantikan Qdrant di
akhir Mar / awal Apr 2026.
Qdrant — (legacy, removed April 2026) Vector database yang
dulu dipakai oleh self-hosted RAG service. docker-compose.yml
line 33 secara eksplisit comment: "Qdrant removed — replaced by
Milvus". Volume qdrant_data disimpan 30 hari sebagai backup.
NextAuth — library auth yang dipakai apps/admin untuk
session management. Pakai JWE cookie (bukan signed JWT). Tabel
admin_users custom sebagai identity store, password bcrypt hash.
Persona — scaffolding prompt yang diaplikasikan berdasarkan
user type. Variabel: user_type, tone, address_style,
emoji_usage, answer_length, guidance_rules.
Phoenix — Arize Phoenix, dipakai untuk trace OpenTelemetry collection di port 6006. Komplemen Langfuse (yang fokus observability LLM).
RAG (Retrieval-Augmented Generation) — pattern yang dipakai
HUPH untuk jawaban chatbot: retrieve dokumen relevan dari vector
DB, lalu feed ke LLM sebagai konteks generation. Implementasi HUPH
sekarang seluruhnya ada di stack Dify (Dify handle embeddings,
similarity search di Milvus, dan panggilan LLM). Self-hosted
apps/rag Python service yang menjalankan pipeline ini di Mar–awal
Apr 2026 sudah dihapus. Lihat
halaman AI Pipeline architecture.
RBAC Phase 1.5 — cluster-based access control pada endpoint
admin. marketing_counselor dengan cluster_id=X hanya melihat
lead + conversation cluster X. marketing_staff dan
marketing_admin bersifat global.
RRF (Reciprocal Rank Fusion) — algoritma fuse hasil dense dan sparse search di hybrid retrieval. Setiap kandidat dapat score berdasarkan rank di setiap ranking, lalu dijumlah antar ranking. HUPH historically memakainya di direct Qdrant hybrid search; workflow Dify sekarang pakai semantik fusion serupa secara internal.
Socket.io — transport realtime yang dipakai HUPH (menggantikan
SSE deprecated). Jalan embedded di API server port 3101 dengan
namespace /admin. Di-autentikasi via NextAuth JWE yang di-
forward pada upgrade request.
Take Over — aksi counselor dari Inbox admin yang meng-escalate
percakapan: set conversations.status = 'escalated', assign
assigned_agent_id ke counselor, pause Aria. Di-konfirmasi via
ConfirmDialog untuk cegah kecelakaan.
Timezone trigger bug (WIB) — bug historis di mana kolom
timestamp without time zone di-serialize tanpa offset UTC,
membuat frontend parse sebagai waktu WIB lokal dan menunjukkan
"7 jam lalu" untuk event baru. Fixed 2026-04-08 via cast
AT TIME ZONE 'UTC' di semua 5 fungsi trigger.
UPH — Universitas Pelita Harapan. Universitas yang HUPH
dibangun untuk. Lihat uph.edu.
WhatsApp 24-hour window — constraint WhatsApp Business API: pesan outbound free-form hanya diizinkan dalam 24 jam dari pesan terakhir user. Setelah itu, wajib pakai Meta Template Messages yang sudah di-approve (2–7 hari review). Mempengaruhi halaman follow-up.