From f82b5caae4a83dca561ad8b59ffc950bf11a3815 Mon Sep 17 00:00:00 2001 From: asepharyana Date: Sun, 16 Aug 2026 09:00:55 +0700 Subject: [PATCH] refactor(gateway): strip boilerplate fields from few-shot examples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 32 few-shot examples each re-echoed score/confidence/ recommended_action/categories/policy_version inline (~150 chars × 32). Those fields carry zero moderation-decision signal — the schema and their ??-default coercion already live in OUTPUT_INSTRUCTIONS + moderationResponseParser.ts. Removed 96 redundant key/value pairs. Kept per-example: message_id, status, flags, severity, evidence, analysis — the fields that actually teach decisions. Parser derives the rest via ?? fallback, so real output shape is unchanged. examples.ts: 21.7K→18.5K chars; FEW_SHOT(mixed) 15.3K→13.4K. Total mixed system prompt now 33.9K (was 39.3K at audit start, ~14% leaner). tsc + 129 tests + biome green. Co-Authored-By: Claude Opus 5 (Nous Research) --- .../modules/ai-moderation/prompts/examples.ts | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) 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 05e633d..c58358f 100644 --- a/services/discord-gateway/src/modules/ai-moderation/prompts/examples.ts +++ b/services/discord-gateway/src/modules/ai-moderation/prompts/examples.ts @@ -47,7 +47,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ title: "Pesan bersih dengan slang", input: "[target] id=12345 user=budi: anjay wkwk gaskeun santuy bro", output: - '{"results":[{"message_id":"12345","status":"clean","flags":[],"score":0.0,"severity":"none","confidence":0.95,"recommended_action":"none","evidence":[],"analysis":"Slang Indonesia umum, tanpa pelanggaran."}]}', + '{"results":[{"message_id":"12345","status":"clean","flags":[],"severity":"none","evidence":[],"analysis":"Slang Indonesia umum, tanpa pelanggaran."}]}', modes: ["text", "mixed"], }, { @@ -56,7 +56,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=67890 user=anon: lu goblok banget sih kontol, mampus aja lo", output: - '{"results":[{"message_id":"67890","status":"flagged","flags":["harassment","vulgar_language"],"score":0.85,"severity":"high","confidence":0.9,"recommended_action":"delete","evidence":["lu goblok banget sih kontol"],"analysis":"Insult langsung dengan kata kasar terarah ke individu."}]}', + '{"results":[{"message_id":"67890","status":"flagged","flags":["harassment","vulgar_language"],"severity":"high","evidence":["lu goblok banget sih kontol"],"analysis":"Insult langsung dengan kata kasar terarah ke individu."}]}', modes: ["text", "mixed"], }, { @@ -64,7 +64,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ title: "Emoji Huruf (Evasion)", input: "[target] id=16161 user=sneaky: gsap expo 🇬 🇦 🇾", output: - '{"results":[{"message_id":"16161","status":"flagged","flags":["sexual_deviation"],"score":0.8,"severity":"medium","confidence":0.95,"recommended_action":"delete","evidence":["🇬 🇦 🇾"],"analysis":"Regional indicator mengeja kata terlarang — evasi untuk topik yang dibatasi server."}]}', + '{"results":[{"message_id":"16161","status":"flagged","flags":["sexual_deviation"],"severity":"medium","evidence":["🇬 🇦 🇾"],"analysis":"Regional indicator mengeja kata terlarang — evasi untuk topik yang dibatasi server."}]}', modes: ["text", "mixed"], }, { @@ -72,7 +72,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ title: "Typo QWERTY Programming (False Positive Prevention)", input: "[target] id=17171 user=dian432: Apakah bisa ngodonf disitu?", output: - '{"results":[{"message_id":"17171","status":"clean","flags":[],"score":0.0,"severity":"none","confidence":0.95,"recommended_action":"none","evidence":[],"analysis":"Kata \'ngodonf\' typo QWERTY natural (f-g, o-i) dari \'ngoding\', bukan obfuscation. Diskusi teknis wajar."}]}', + '{"results":[{"message_id":"17171","status":"clean","flags":[],"severity":"none","evidence":[],"analysis":"Kata \'ngodonf\' typo QWERTY natural (f-g, o-i) dari \'ngoding\', bukan obfuscation. Diskusi teknis wajar."}]}', modes: ["text", "mixed"], }, { @@ -81,7 +81,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=17172 user=dev: TypeError: Cannot read properties of undefined (reading 'map'). Kalo ada yang tau solusinya tolong bantu", output: - '{"results":[{"message_id":"17172","status":"clean","flags":[],"score":0.0,"severity":"none","confidence":0.95,"recommended_action":"none","evidence":[],"analysis":"Diskusi teknis normal tentang error programming, bukan pelanggaran."}]}', + '{"results":[{"message_id":"17172","status":"clean","flags":[],"severity":"none","evidence":[],"analysis":"Diskusi teknis normal tentang error programming, bukan pelanggaran."}]}', modes: ["text", "mixed"], }, { @@ -90,7 +90,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=17173 user=dev: Guys pake Cursor lebih enak daripada VSCode? Gw pake Claude buat bantuin debugging", output: - '{"results":[{"message_id":"17173","status":"clean","flags":[],"score":0.0,"severity":"none","confidence":0.95,"recommended_action":"none","evidence":[],"analysis":"Diskusi tools programming biasa (Cursor, VSCode, Claude), tidak ada pelanggaran."}]}', + '{"results":[{"message_id":"17173","status":"clean","flags":[],"severity":"none","evidence":[],"analysis":"Diskusi tools programming biasa (Cursor, VSCode, Claude), tidak ada pelanggaran."}]}', modes: ["text", "mixed"], }, // ── Mixed examples ── @@ -100,7 +100,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: '[target] id=11111 user=citra: <:singa_injek:123456> [sticker: "Singa injek pejabat"]', output: - '{"results":[{"message_id":"11111","status":"clean","flags":[],"score":0.1,"severity":"none","confidence":0.8,"recommended_action":"none","evidence":[],"analysis":"Sticker kartun satir dengan nama provokatif, bukan ancaman nyata."}]}', + '{"results":[{"message_id":"11111","status":"clean","flags":[],"severity":"none","evidence":[],"analysis":"Sticker kartun satir dengan nama provokatif, bukan ancaman nyata."}]}', modes: ["text", "media", "mixed"], }, { @@ -109,7 +109,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=88888 user=sexist: dasar perempuan ngerti apa sih, logika lo aja kagak bener", output: - '{"results":[{"message_id":"88888","status":"flagged","flags":["hate_speech","harassment"],"score":0.82,"severity":"high","confidence":0.9,"recommended_action":"delete","evidence":["dasar perempuan ngerti apa sih"],"analysis":"Komentar seksis merendahkan yang menyasar gender — stereotip ofensif terarah."}]}', + '{"results":[{"message_id":"88888","status":"flagged","flags":["hate_speech","harassment"],"severity":"high","evidence":["dasar perempuan ngerti apa sih"],"analysis":"Komentar seksis merendahkan yang menyasar gender — stereotip ofensif terarah."}]}', modes: ["text", "media", "mixed"], }, { @@ -118,7 +118,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=99999 user=drama: si budi kemarin ngomongin lo di belakang, masa tega banget dia, ayo kita konfrontasi di sini aja", output: - '{"results":[{"message_id":"99999","status":"warn","flags":["conflict_instigation"],"score":0.65,"severity":"low","confidence":0.75,"recommended_action":"warn","evidence":["ayo kita konfrontasi di sini aja"],"analysis":"Mengajak konfrontasi masalah personal di channel publik, berpotensi memicu drama."}]}', + '{"results":[{"message_id":"99999","status":"warn","flags":["conflict_instigation"],"severity":"low","evidence":["ayo kita konfrontasi di sini aja"],"analysis":"Mengajak konfrontasi masalah personal di channel publik, berpotensi memicu drama."}]}', modes: ["text", "media", "mixed"], }, { @@ -127,7 +127,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=10101 user=fox: mau liat foto pake kostum hewan? DM aja, khusus 18+", output: - '{"results":[{"message_id":"10101","status":"flagged","flags":["sexual_deviation"],"score":0.85,"severity":"high","confidence":0.9,"recommended_action":"delete","evidence":["mau liat foto pake kostum hewan? DM aja, khusus 18+"],"analysis":"Ajakan aktivitas seksual eksplisit \'DM khusus 18+\'. Melanggar kebijakan."}]}', + '{"results":[{"message_id":"10101","status":"flagged","flags":["sexual_deviation"],"severity":"high","evidence":["mau liat foto pake kostum hewan? DM aja, khusus 18+"],"analysis":"Ajakan aktivitas seksual eksplisit \'DM khusus 18+\'. Melanggar kebijakan."}]}', modes: ["text", "media", "mixed"], }, { @@ -136,7 +136,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=10505 user=dev: ERROR: Cannot read properties of undefined (reading 'data'). Stack trace: at Module._compile (node:internal/modules/cjs/loader:1256:14)", output: - '{"results":[{"message_id":"10505","status":"clean","flags":[],"score":0.0,"severity":"none","confidence":0.95,"recommended_action":"none","evidence":[],"analysis":"Error log programming biasa antara developer, aman."}]}', + '{"results":[{"message_id":"10505","status":"clean","flags":[],"severity":"none","evidence":[],"analysis":"Error log programming biasa antara developer, aman."}]}', modes: ["text", "media", "mixed"], }, { @@ -145,7 +145,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=12121 user=pejabat_munafik_dajjal: Halo teman-teman, ada yang main game?", output: - '{"results":[{"message_id":"12121","status":"flagged","flags":["offensive_username"],"score":0.3,"severity":"low","confidence":0.95,"recommended_action":"warn","evidence":["Username \'pejabat_munafik_dajjal\' mengandung unsur ofensif/SARA"],"analysis":"Username ofensif menyerang pejabat dengan label SARA, tapi isi pesan bersih — flag ringan."}]}', + '{"results":[{"message_id":"12121","status":"flagged","flags":["offensive_username"],"severity":"low","evidence":["Username \'pejabat_munafik_dajjal\' mengandung unsur ofensif/SARA"],"analysis":"Username ofensif menyerang pejabat dengan label SARA, tapi isi pesan bersih — flag ringan."}]}', modes: ["text", "media", "mixed"], }, { @@ -154,7 +154,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=13131 user=nazi_babi_itu: bener tuh nih ras emang harus dibasmi", output: - '{"results":[{"message_id":"13131","status":"flagged","flags":["offensive_username","hate_speech","sara"],"score":0.9,"severity":"high","confidence":0.95,"recommended_action":"delete","evidence":["bener tuh nih ras emang harus dibasmi"],"analysis":"Username SARA dan isi pesan memperkuat kebencian dengan ajakan kekerasan. Pelanggaran berat."}]}', + '{"results":[{"message_id":"13131","status":"flagged","flags":["offensive_username","hate_speech","sara"],"severity":"high","evidence":["bener tuh nih ras emang harus dibasmi"],"analysis":"Username SARA dan isi pesan memperkuat kebencian dengan ajakan kekerasan. Pelanggaran berat."}]}', modes: ["text", "media", "mixed"], }, { @@ -163,7 +163,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: '[target] id=14141 user=hater: ++++++K1[[ your $€/F" "~`| \\\\0ve $ 1F ¥°U |}iE ®©', output: - '{"results":[{"message_id":"14141","status":"flagged","flags":["harassment","hate_speech"],"score":0.95,"severity":"critical","confidence":0.95,"recommended_action":"delete","evidence":["++++++K1[[ your $€/F"],"analysis":"Obfuscation simbol menyembunyikan frasa ancaman \'Kill yourself\'. Ancaman berat yang disamarkan."}]}', + '{"results":[{"message_id":"14141","status":"flagged","flags":["harassment","hate_speech"],"severity":"critical","evidence":["++++++K1[[ your $€/F"],"analysis":"Obfuscation simbol menyembunyikan frasa ancaman \'Kill yourself\'. Ancaman berat yang disamarkan."}]}', modes: ["text", "media", "mixed"], }, { @@ -171,7 +171,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ title: "Vulgaritas Bahasa Asing / All-Caps", input: "[target] id=15151 user=troll: AKU RAJA TITTEN", output: - '{"results":[{"message_id":"15151","status":"flagged","flags":["vulgar_language"],"score":0.85,"severity":"medium","confidence":0.9,"recommended_action":"delete","evidence":["AKU RAJA TITTEN"],"analysis":"Kata vulgar bahasa asing (\'titten\') dengan huruf kapital — melanggar meski format seperti candaan."}]}', + '{"results":[{"message_id":"15151","status":"flagged","flags":["vulgar_language"],"severity":"medium","evidence":["AKU RAJA TITTEN"],"analysis":"Kata vulgar bahasa asing (\'titten\') dengan huruf kapital — melanggar meski format seperti candaan."}]}', modes: ["text", "media", "mixed"], }, { @@ -180,7 +180,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: '[target] id=20201 user=parodist: Kitabonia 11:17 — "Dan bersabdalah Sang Admin: barang siapa yang melakukan spam, niscaya akan kena mute tujuh hari tujuh malam"', output: - '{"results":[{"message_id":"20201","status":"flagged","flags":["sara"],"score":0.92,"severity":"critical","confidence":0.95,"recommended_action":"delete","evidence":["Kitabonia 11:17"],"analysis":"Ayat palsu dengan format kitab suci memparodikan wahyu — penistaan agama, bukan humor."}]}', + '{"results":[{"message_id":"20201","status":"flagged","flags":["sara"],"severity":"critical","evidence":["Kitabonia 11:17"],"analysis":"Ayat palsu dengan format kitab suci memparodikan wahyu — penistaan agama, bukan humor."}]}', modes: ["text", "media", "mixed"], }, { @@ -189,7 +189,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=22223 user=edgy: Shirkmaxxing grindset, nanti halalmaxxing juga", output: - '{"results":[{"message_id":"22223","status":"flagged","flags":["sara"],"score":0.88,"severity":"high","confidence":0.95,"recommended_action":"delete","evidence":["Shirkmaxxing grindset"],"analysis":"Istilah suci agama (shirk, halal) sebagai bahan candaan meme — penistaan konsep teologis."}]}', + '{"results":[{"message_id":"22223","status":"flagged","flags":["sara"],"severity":"high","evidence":["Shirkmaxxing grindset"],"analysis":"Istilah suci agama (shirk, halal) sebagai bahan candaan meme — penistaan konsep teologis."}]}', modes: ["text", "media", "mixed"], }, { @@ -197,7 +197,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ title: "Ekspresi keagamaan normal (AMAN, BUKAN SARA)", input: "[target] id=27278 user=muslim_user: Astaghfirullah, sabar ya bro", output: - '{"results":[{"message_id":"27278","status":"clean","flags":[],"score":0.0,"severity":"none","confidence":0.95,"recommended_action":"none","evidence":[],"analysis":"Istighfar untuk menenangkan teman — ekspresi keagamaan wajar Indonesia, bukan penistaan."}]}', + '{"results":[{"message_id":"27278","status":"clean","flags":[],"severity":"none","evidence":[],"analysis":"Istighfar untuk menenangkan teman — ekspresi keagamaan wajar Indonesia, bukan penistaan."}]}', modes: ["text", "media", "mixed"], }, @@ -208,7 +208,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=22222 user=rina: Aku suka nasgor loh [Media analysis for message 22222] [gambar di atas adalah attachment foto.jpg dari pesan id=22222]: Gambar menampilkan tangkapan layar aplikasi chat dengan teks percakapan biasa. Tidak ada konten melanggar terlihat. Aman.", output: - '{"results":[{"message_id":"22222","status":"clean","flags":[],"score":0.0,"severity":"none","confidence":0.95,"recommended_action":"none","evidence":[],"analysis":"Percakapan sehari-hari tentang makanan; gambar screenshot chat biasa tanpa pelanggaran."}]}', + '{"results":[{"message_id":"22222","status":"clean","flags":[],"severity":"none","evidence":[],"analysis":"Percakapan sehari-hari tentang makanan; gambar screenshot chat biasa tanpa pelanggaran."}]}', modes: ["media", "mixed"], }, { @@ -217,7 +217,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: '[target] id=33333 user=spammer: MAIN DI SINI GACOR PARAH https://judionline.xyz [Media analysis for message 33333] [gambar di atas adalah attachment slot.jpg dari pesan id=33333]: Gambar menampilkan antarmuka situs judi online dengan mesin slot, chip, dan tombol deposit. Terlihat logo "JudiOnline" dan odds taruhan.', output: - '{"results":[{"message_id":"33333","status":"flagged","flags":["gambling"],"score":0.92,"severity":"high","confidence":0.92,"recommended_action":"delete","evidence":["MAIN DI SINI GACOR PARAH","https://judionline.xyz"],"analysis":"Promosi situs judi dengan link, teks promosi, dan gambar antarmuka judi yang jelas."}]}', + '{"results":[{"message_id":"33333","status":"flagged","flags":["gambling"],"severity":"high","evidence":["MAIN DI SINI GACOR PARAH","https://judionline.xyz"],"analysis":"Promosi situs judi dengan link, teks promosi, dan gambar antarmuka judi yang jelas."}]}', modes: ["media", "mixed"], }, { @@ -226,7 +226,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=44444 user=dev: [Media analysis for message 44444] [gambar di atas adalah attachment screenshot.png dari pesan id=44444]: Screenshot terminal Linux dengan background hitam dan teks hijau. Terlihat output command 'ls -la' dan 'git status'. Tidak ada teks atau elemen mencurigakan.", output: - '{"results":[{"message_id":"44444","status":"clean","flags":[],"score":0.0,"severity":"none","confidence":0.95,"recommended_action":"none","evidence":[],"analysis":"Screenshot terminal Linux (ls -la, git status) — aktivitas coding biasa, tidak ada pelanggaran."}]}', + '{"results":[{"message_id":"44444","status":"clean","flags":[],"severity":"none","evidence":[],"analysis":"Screenshot terminal Linux (ls -la, git status) — aktivitas coding biasa, tidak ada pelanggaran."}]}', modes: ["media", "mixed"], }, { @@ -235,7 +235,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: '[target] id=55555 user=promotor: [Media analysis for message 55555] [gambar di atas adalah attachment promo.jpg dari pesan id=55555]: Screenshot website dengan background merah dan emas. Terlihat teks "DEPOSIT NOW", "BONUS 100%", "SLOT GACOR", chip poker, dan roda roulette. Ada tombol "DAFTAR" dan "LOGIN".', output: - '{"results":[{"message_id":"55555","status":"flagged","flags":["gambling"],"score":0.94,"severity":"high","confidence":0.94,"recommended_action":"delete","evidence":["Gambar antarmuka situs judi dengan chip, roulette, tombol deposit"],"analysis":"Gambar promosi judi jelas: chip, roulette, teks deposit dan bonus. Melanggar gambling."}]}', + '{"results":[{"message_id":"55555","status":"flagged","flags":["gambling"],"severity":"high","evidence":["Gambar antarmuka situs judi dengan chip, roulette, tombol deposit"],"analysis":"Gambar promosi judi jelas: chip, roulette, teks deposit dan bonus. Melanggar gambling."}]}', modes: ["media", "mixed"], }, { @@ -244,7 +244,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=21212 user=troll: ayo bikin agama, aku tuhannya, yg mau jadi malaikat DM aku", output: - '{"results":[{"message_id":"21212","status":"flagged","flags":["sara"],"score":0.95,"severity":"critical","confidence":0.95,"recommended_action":"delete","evidence":["ayo bikin agama, aku tuhannya"],"analysis":"Mengajak membuat agama palsu dan mengaku Tuhan — penistaan agama serius, bukan candaan."}]}', + '{"results":[{"message_id":"21212","status":"flagged","flags":["sara"],"severity":"critical","evidence":["ayo bikin agama, aku tuhannya"],"analysis":"Mengajak membuat agama palsu dan mengaku Tuhan — penistaan agama serius, bukan candaan."}]}', modes: ["media", "mixed"], }, { @@ -253,7 +253,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=23234 user=edgelord: Hashem is watching you jerk off lol", output: - '{"results":[{"message_id":"23234","status":"flagged","flags":["sara"],"score":0.94,"severity":"critical","confidence":0.95,"recommended_action":"delete","evidence":["Hashem is watching you jerk off lol"],"analysis":"Nama suci (Hashem) dalam konteks vulgar merendahkan — blasphemy serius."}]}', + '{"results":[{"message_id":"23234","status":"flagged","flags":["sara"],"severity":"critical","evidence":["Hashem is watching you jerk off lol"],"analysis":"Nama suci (Hashem) dalam konteks vulgar merendahkan — blasphemy serius."}]}', modes: ["media", "mixed"], }, { @@ -262,7 +262,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=24245 user=provokator: nabi palsu ba'al, sembah aja patung", output: - '{"results":[{"message_id":"24245","status":"flagged","flags":["sara","hate_speech"],"score":0.9,"severity":"high","confidence":0.95,"recommended_action":"delete","evidence":["nabi palsu ba\'al"],"analysis":"Sindiran konsep nabi dengan referensi Ba\'al + ajakan menyembah patung — penistaan monoteis."}]}', + '{"results":[{"message_id":"24245","status":"flagged","flags":["sara","hate_speech"],"severity":"high","evidence":["nabi palsu ba\'al"],"analysis":"Sindiran konsep nabi dengan referensi Ba\'al + ajakan menyembah patung — penistaan monoteis."}]}', modes: ["media", "mixed"], }, { @@ -271,7 +271,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=25256 user=sindiran: Bodoh admin-admin kita itu. Mereka tidak minta petunjuk dari Tuhan", output: - '{"results":[{"message_id":"25256","status":"flagged","flags":["sara","hate_speech"],"score":0.82,"severity":"high","confidence":0.9,"recommended_action":"delete","evidence":["tidak minta petunjuk dari Tuhan"],"analysis":"Framework agama (\'petunjuk dari Tuhan\') dipakai untuk mengejek — parodi merendahkan."}]}', + '{"results":[{"message_id":"25256","status":"flagged","flags":["sara","hate_speech"],"severity":"high","evidence":["tidak minta petunjuk dari Tuhan"],"analysis":"Framework agama (\'petunjuk dari Tuhan\') dipakai untuk mengejek — parodi merendahkan."}]}', modes: ["media", "mixed"], }, { @@ -280,7 +280,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=26267 user=provokator: Islam/Kristen itu agama sesat semua, cuma agama gue yg bener", output: - '{"results":[{"message_id":"26267","status":"flagged","flags":["sara","hate_speech","conflict_instigation"],"score":0.95,"severity":"critical","confidence":0.95,"recommended_action":"delete","evidence":["Islam/Kristen itu agama sesat semua"],"analysis":"Menyerang agama lain sebagai \'sesat\' dengan truth claim provokatif — provokasi antar-agama serius."}]}', + '{"results":[{"message_id":"26267","status":"flagged","flags":["sara","hate_speech","conflict_instigation"],"severity":"critical","evidence":["Islam/Kristen itu agama sesat semua"],"analysis":"Menyerang agama lain sebagai \'sesat\' dengan truth claim provokatif — provokasi antar-agama serius."}]}', modes: ["media", "mixed"], }, { @@ -289,7 +289,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=28289 user=thinker: Menurutku konsep trinitas dalam Kristen menarik dibandingkan tauhid dalam Islam. Apa pendapat kalian?", output: - '{"results":[{"message_id":"28289","status":"clean","flags":[],"score":0.0,"severity":"none","confidence":0.9,"recommended_action":"none","evidence":[],"analysis":"Perbandingan teologis dengan bahasa sopan dan tone diskusi — bukan provokasi. Aman."}]}', + '{"results":[{"message_id":"28289","status":"clean","flags":[],"severity":"none","evidence":[],"analysis":"Perbandingan teologis dengan bahasa sopan dan tone diskusi — bukan provokasi. Aman."}]}', modes: ["media", "mixed"], }, @@ -300,7 +300,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=29292 user=promotor: Join sini bro https://discord.gg/xyzk123 diskusi coding seru", output: - '{"results":[{"message_id":"29292","status":"warn","flags":["spam"],"score":0.55,"severity":"low","confidence":0.7,"recommended_action":"warn","evidence":["https://discord.gg/xyzk123"],"analysis":"Promosi server lain via invite di channel publik tanpa izin — potensi spam."}]}', + '{"results":[{"message_id":"29292","status":"warn","flags":["spam"],"severity":"low","evidence":["https://discord.gg/xyzk123"],"analysis":"Promosi server lain via invite di channel publik tanpa izin — potensi spam."}]}', modes: ["text", "media", "mixed"], }, @@ -311,7 +311,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=30303 user=rainbow: jujur aja gua lesbian, terima apa adanya", output: - '{"results":[{"message_id":"30303","status":"flagged","flags":["sexual_deviation"],"score":0.9,"severity":"critical","confidence":0.95,"recommended_action":"delete","evidence":["jujur aja gua lesbian"],"analysis":"Pengakuan orientasi lesbian — zero tolerance LGBT di server ini. Dihapus."}]}', + '{"results":[{"message_id":"30303","status":"flagged","flags":["sexual_deviation"],"severity":"critical","evidence":["jujur aja gua lesbian"],"analysis":"Pengakuan orientasi lesbian — zero tolerance LGBT di server ini. Dihapus."}]}', modes: ["text", "media", "mixed"], }, @@ -322,7 +322,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ input: "[target] id=31313 user=hot_takes: gw sih dukung palestina, israel biadab banget", output: - '{"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."}]}', + '{"results":[{"message_id":"31313","status":"flagged","flags":["conflict_instigation","sara"],"severity":"critical","evidence":["gw sih dukung palestina"],"analysis":"Segala diskusi Israel/Palestina/Yahudi dilarang total — tidak ada debat, dukungan, atau berita. Dihapus."}]}', modes: ["text", "media", "mixed"], }, @@ -333,7 +333,7 @@ export const ALL_EXAMPLES: ExampleDef[] = [ 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."}]}', + '{"results":[{"message_id":"32323","status":"clean","flags":[],"severity":"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"], }, // ── Invite link / promosi server ──