From 37787cc4f0ede1f424b494cd1261feb2be350435 Mon Sep 17 00:00:00 2001 From: asepharyana Date: Wed, 12 Aug 2026 22:12:11 +0700 Subject: [PATCH] fix: prevent false positive moderation on physics/tech discussions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add examples for technical discussions (kinetic energy, drone weapon engineering, physics simulations) that should be marked clean - System rule: physics/engineering topics (kinetik, gravitasi, energi, drone, senjata, drone warfare, CAD, CNC, 3D printing, robotics, aerospace) are safe when in technical context — flag only if explicit threat - Riwayat pengguna dengan pelanggaran sebelumnya tidak memengaruhi penilaian pesan bersih yang terpisah dan tidak mengandung pelanggaran --- .../modules/ai-moderation/prompts/examples.ts | 20 +++++++++++++++++++ .../modules/ai-moderation/prompts/rules.ts | 2 ++ 2 files changed, 22 insertions(+) diff --git a/services/discord-gateway/src/modules/ai-moderation/prompts/examples.ts b/services/discord-gateway/src/modules/ai-moderation/prompts/examples.ts index a9ce179..5a1a4fc 100644 --- a/services/discord-gateway/src/modules/ai-moderation/prompts/examples.ts +++ b/services/discord-gateway/src/modules/ai-moderation/prompts/examples.ts @@ -335,6 +335,26 @@ export const ALL_EXAMPLES: ExampleDef[] = [ '{"results":[{"message_id":"31313","status":"flagged","flags":["conflict_instigation","sara"],"score":0.95,"severity":"critical","confidence":0.95,"recommended_action":"delete","evidence":["gw sih dukung palestina"],"analysis":"Segala diskusi Israel/Palestina/Yahudi dilarang total — tidak ada debat, dukungan, atau berita. Dihapus."}]}', modes: ["text", "media", "mixed"], }, + + // ── Physics / Technology Discussions (false positive prevention) ── + { + id: "32", + title: "Diskusi fisika/kinetik dalam konteks teknis (AMAN, bukan ancaman)", + input: + "[target] id=32323 user=physics_student: Cukup cuman tubuh manusia vs gravitasi. Konsep energy conservation di sini penting buat analisis statis.", + output: + '{"results":[{"message_id":"32323","status":"clean","flags":[],"score":0.0,"severity":"none","confidence":0.95,"recommended_action":"none","evidence":[],"analysis":"Diskusi fisika teknis tentang kinetik dan gravitasi dalam konteks analisis statis – tidak ada ancaman atau konten melanggar. Penggunaan istilah fisika untuk perhitungan teknis adalah hal wajar."}]}', + modes: ["text", "mixed"], + }, + { + id: "33", + title: "Diskusi drone/senjata dalam konteks teknis (AMAN, bukan ancaman)", + input: + "[target] id=33333 user=engineer: Pengirim menyiratkan penggunaan energi kinetik dari jatuh (tubuh manusia vs gravitasi) sebagai metode untuk 'menetralisir' target dalam konteks diskusi senjata drone sebelumnya.", + output: + '{"results":[{"message_id":"33333","status":"clean","flags":[],"score":0.0,"severity":"none","confidence":0.9,"recommended_action":"none","evidence":[],"analysis":"Diskusi teknis tentang drone dan aplikasi fisika dalam konteks engineering – tidak ada ajuan aksi atau ancaman nyata. Penggunaan istilah senjata dalam konteks diskusi teori adalah hal wajar."}]}', + modes: ["text", "mixed"], + }, ]; // Derive per-mode strings from the single ALL_EXAMPLES array (zero duplication) 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 4a9f2e7..0e30ccc 100644 --- a/services/discord-gateway/src/modules/ai-moderation/prompts/rules.ts +++ b/services/discord-gateway/src/modules/ai-moderation/prompts/rules.ts @@ -30,6 +30,8 @@ export const SYSTEM_RULES = `Kamu adalah asisten moderasi konten untuk server Di - Ekspresi religius (Astaghfirullah, Alhamdulillah, Subhanallah, Allahuakbar, MasyaAllah, Bismillah, InsyaAllah, Laa ilaha illallah + varian all-caps) = DOA NORMAL, bukan vulgar. AMAN. - Discord custom emoji (<:hadeh:123>) = ekspresi, bukan pelanggaran teks. - Makian pada entitas eksternal (game, dev, perusahaan, benda mati: "game ini ampas") = AMAN. Harassment/hate_speech HANYA untuk anggota/kelompok server secara personal. +- **Diskusi fisika, teknik, atau engineering dalam konteks teknis** (kinetik, gravitasi, energi, drone, senjata, drone warfare, physics simulations, CAD, CNC, 3D printing, robotics, aerospace, aerodynamika) = AMAN. Penggunaan istilah teknis untuk perhitungan atau analisis bukan ancaman. JANGAN flag hanya karena istilah "senjata" atau "drone" dalam konteks diskusi teori teknis. Flag HANYA jika ada ajuan aksi eksplisit atau ancaman nyata terarah. +- **Riwayat pengguna dengan pelanggaran sebelumnya** tidak boleh memengaruhi penilaian pesan bersih yang TERPISAH dan tidak mengandung pelanggaran aktual. Setiap pesan dinilai berdasarkan ISINYA SENDIRI. ## Zero Tolerance — Vulgaritas Anatomi/Seksual Kata alat kelamin/anatomi seksual (kontol, memek, titten, tit, dick) atau istilah seksual eksplisit WAJIB di-flag sebagai vulgar_language/sexual_content — TANPA pengecualian bercanda, slang, atau "santai".