From ef41898a6012cca2ba4cb95a5fdf45e0013f57c4 Mon Sep 17 00:00:00 2001 From: asepharyana Date: Fri, 18 Sep 2026 18:03:28 +0700 Subject: [PATCH] feat: add sexual/provocative username detection to LLM prompt rules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - rules.ts: explicit rule that sexual/provocative username terms (Pecinta Pria, Cinta, pacar, janda, bokep, hot, seks, nude, telanjang) MUST be flagged as offensive_username with low severity - output.ts: output schema case for sexual/provocative username violations, always status: warn, severity: low, never flagged/delete No hardcoded keyword lists — fix is at the LLM prompt level only. --- .../discord-gateway/src/modules/ai-moderation/prompts/output.ts | 1 + .../discord-gateway/src/modules/ai-moderation/prompts/rules.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/services/discord-gateway/src/modules/ai-moderation/prompts/output.ts b/services/discord-gateway/src/modules/ai-moderation/prompts/output.ts index 9d6d3a95..591614ea 100644 --- a/services/discord-gateway/src/modules/ai-moderation/prompts/output.ts +++ b/services/discord-gateway/src/modules/ai-moderation/prompts/output.ts @@ -48,6 +48,7 @@ Wajib sebutkan ISI/KONTEN spesifik apa yang dibicarakan pengirim — bukan templ - **Melanggar:** "Pengirim . . ." - **conflict_instigation:** "Pengirim . . Diberi peringatan karena berpotensi memicu drama." - **Username ofensif (pesan bersih):** "Pengirim memiliki username yang . Isi pesan hanya . Diberi warning ringan." — SELALU status: 'warn', severity: 'low', recommended_action: 'none' atau 'warn' — TIDAK PERNAH status: 'flagged', recommended_action: 'delete'. (pesan memperkuat): " + isi pesan memperkuat tone kebencian. Pelanggaran berat." — baru boleh status: 'flagged' + severity tinggi. +- **Username seksual/provocative (isi pesan bersih):** "Pengirim memiliki username yang mengandung unsur seksual/provocative (mis. istilah kecantikan provokatif, kode seksual tersembunyi). Isi pesan hanya . Diberi warning ringan." — SELALU status: 'warn', severity: 'low', recommended_action: 'none' atau 'warn' — TIDAK PERNAH status: 'flagged', recommended_action: 'delete'. (pesan memperkuat): " + isi pesan memperkuat tone kebencian. Pelanggaran berat." — baru boleh status: 'flagged' + severity tinggi. - **Evasi (zalgo/leetspeak):** "Pengirim menggunakan teknik obfuscation untuk menyembunyikan . . ." - **Spam (repetitions > 1):** "Pengirim mengirim teks yang sama sebanyak N kali dalam waktu singkat. . Diberi peringatan karena spam berulang." — nilai tetap dari isi; pengulangan saja (mis. "ok" x5 dalam obrolan aktif) bukan pelanggaran. - **sexual_deviation:** "Pengirim . . Melanggar kebijikan server." diff --git a/services/discord-gateway/src/modules/ai-moderation/prompts/rules.ts b/services/discord-gateway/src/modules/ai-moderation/prompts/rules.ts index 5e456d61..d63d61e0 100644 --- a/services/discord-gateway/src/modules/ai-moderation/prompts/rules.ts +++ b/services/discord-gateway/src/modules/ai-moderation/prompts/rules.ts @@ -56,6 +56,7 @@ Username DAN isi pesan WAJIB dinilai secara TERPISAH — tidak boleh saling meng - **Username dinilai dari username saja.** Isi pesan yang melanggar TIDAK boleh menaikkan status/aksi username-only violation. - **Rumus aturan:** Jika hanya username yang melanggar (isi bersih) → severity WAJIB rendah, aksi WAJIB 'warn' — TIDAK 'delete'. Jika isi pesan yang melanggar → nilai isi pesan secara independen dari username. - **Username dengan istilah dari LARANGAN BERAT** (mis. nama tokoh politik, kata berbau SARA): username WAJIB dinilai sebagai 'offensive_username' severity rendah — BUKAN sebagai diskusi topik terlarang. Username hanyalah identitas, bukan konten diskusi. TIDAK boleh men-trigger aturan topik terlarang dari LARANGAN BERAT. +- **Kata-kata seksual/provocative dalam username** (mis. "Pecinta Pria", "Cinta", "pacar", "janda", "perempuan selingkuhan", "bokep", "hot", "seks", "nude", "telanjang"): username WAJIB dinilai sebagai 'offensive_username' severity rendah — BUKAN clean. Username yang mengandung unsur seksual/provocative TIDAK boleh dianggap AMAN hanya karena tidak ada kata kasar eksplisit. Tanda-tandanya: kata yang merujuk pada aktivitas seksual, kecantikan secara provokatif, atau kode-kode seksual yang tersembunyi dalam bentuk kata umum. ## LARANGAN BERAT (ZERO TOLERANCE) — berlaku untuk ISI PESAN, bukan username - **LGBT:** Segala promosi, diskusi, pengakuan orientasi, coming out, atau curhat personal tentang LGBT WAJIB di-flag "sexual_deviation". Tidak ada pengecualian. (Lihat juga pohon keputusan #3.)