feat(ai-moderation): add conflict instigation, offensive username, and discrimination moderation flags and prompt rules
This commit is contained in:
@@ -84,17 +84,19 @@ export async function llmChat(
|
|||||||
retries = DEFAULT_RETRIES,
|
retries = DEFAULT_RETRIES,
|
||||||
} = opts;
|
} = opts;
|
||||||
|
|
||||||
const params: OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming = {
|
const params: OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming =
|
||||||
model,
|
{
|
||||||
messages,
|
model,
|
||||||
temperature,
|
messages,
|
||||||
top_p,
|
temperature,
|
||||||
max_tokens,
|
top_p,
|
||||||
stream: false,
|
max_tokens,
|
||||||
};
|
stream: false,
|
||||||
|
};
|
||||||
|
|
||||||
if (jsonResponse) {
|
if (jsonResponse) {
|
||||||
(params as unknown as Record<string, unknown>).response_format = jsonResponse;
|
(params as unknown as Record<string, unknown>).response_format =
|
||||||
|
jsonResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
return retryWithBackoff(
|
return retryWithBackoff(
|
||||||
@@ -198,10 +200,15 @@ const VALID_PRIMARY_AI_FLAGS = new Set([
|
|||||||
"financial_scam",
|
"financial_scam",
|
||||||
"religious_insult",
|
"religious_insult",
|
||||||
"self_promo",
|
"self_promo",
|
||||||
|
"conflict_instigation",
|
||||||
|
"offensive_username",
|
||||||
]);
|
]);
|
||||||
|
|
||||||
function normalizeFlag(value: string): string | null {
|
function normalizeFlag(value: string): string | null {
|
||||||
const lower = value.trim().toLowerCase().replace(/[\s-]+/g, "_");
|
const lower = value
|
||||||
|
.trim()
|
||||||
|
.toLowerCase()
|
||||||
|
.replace(/[\s-]+/g, "_");
|
||||||
if (!lower) return null;
|
if (!lower) return null;
|
||||||
if (VALID_PRIMARY_AI_FLAGS.has(lower)) return lower;
|
if (VALID_PRIMARY_AI_FLAGS.has(lower)) return lower;
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -28,6 +28,29 @@ Bahasa utama komunitas ini adalah BAHASA INDONESIA. Bahasa Inggris adalah bahasa
|
|||||||
- Discord custom emoji seperti <:hadeh:123> atau [emoji:hadeh] adalah ekspresi, bukan pelanggaran teks.
|
- Discord custom emoji seperti <:hadeh:123> atau [emoji:hadeh] adalah ekspresi, bukan pelanggaran teks.
|
||||||
- Gunakan normalized_text dan normalization_notes dari local lexical check. Jika notes hanya berisi slang/emoji aman, jangan flag. Jika notes menyatakan "Indonesian badword detected", gunakan sebagai konteks untuk menilai harassment/vulgar_language.
|
- Gunakan normalized_text dan normalization_notes dari local lexical check. Jika notes hanya berisi slang/emoji aman, jangan flag. Jika notes menyatakan "Indonesian badword detected", gunakan sebagai konteks untuk menilai harassment/vulgar_language.
|
||||||
|
|
||||||
|
## Aturan Server & Nilai Komunitas
|
||||||
|
Pedoman ini mencerminkan nilai-nilai yang dijunjung server. Terapkan dengan bijak.
|
||||||
|
|
||||||
|
### Hormati Sesama — Tolak Segala Diskriminasi
|
||||||
|
- Setiap anggota berhak diperlakukan dengan hormat tanpa memandang latar belakang, usia, gender, atau pandangan.
|
||||||
|
- **Seksisme dilarang keras.** Komentar yang merendahkan, menstereotip, atau menghina berdasarkan gender (mis. "dasar perempuan", "logika cewek", "laki-laki pada ...", "emang cewek tuh ...", "benci perempuan", dll) → flag sebagai "hate_speech" jika general, atau "harassment" jika terarah ke individu.
|
||||||
|
- **Ageisme** (penghinaan berdasarkan usia, mis. "dasar bocil", "tau aja lo tua") → "hate_speech" atau "harassment" jika terarah.
|
||||||
|
- **Diskriminasi penampilan fisik** (mis. "gendut", "iteman", "cungkring") → "harassment" jika terarah ke individu.
|
||||||
|
- Pelecehan, rasisme, seksisme, dan segala bentuk diskriminasi lainnya tidak ditoleransi.
|
||||||
|
- Perbedaan pendapat itu wajar. Serangan personal, penghinaan, dan merendahkan orang lain tidak.
|
||||||
|
|
||||||
|
### Hindari Konflik dan Jaga Kedamaian
|
||||||
|
- Dilarang memancing keributan, drama, atau pertengkaran di channel umum.
|
||||||
|
- Ajakan/mengumpat untuk menyelesaikan masalah personal di channel publik → "conflict_instigation".
|
||||||
|
- Mempermalukan, mengadu domba, atau provokasi berkelanjutan terhadap anggota lain → "harassment" atau "conflict_instigation".
|
||||||
|
- Kritik membangun itu beda dengan provokasi. Lihat tone dan konteks.
|
||||||
|
- Jika pesan bernada netral atau sedang melerai/mediasi → jangan flag. Ini bukan conflict_instigation.
|
||||||
|
|
||||||
|
### Profil yang Sopan
|
||||||
|
- Username/display name yang mengandung unsur ofensif, vulgar, SARA, promosi judi/narkoba/NSFW, atau referensi LGBT/furry melanggar aturan.
|
||||||
|
- Jika username terbukti ofensif: tambahkan flag "offensive_username" pada hasil analisis pesan tersebut.
|
||||||
|
- **PENTING:** Username kadang merupakan pilihan lama yang belum diganti. Pertimbangkan konteks — jika isi pesan bersih dan tidak terkait username, beri score rendah pada flag ini. Jika isi pesan mendukung/memperkuat username ofensif, beri score lebih tinggi.
|
||||||
|
|
||||||
## Kategori Pelanggaran & Kriteria Flag
|
## Kategori Pelanggaran & Kriteria Flag
|
||||||
Prioritas tertinggi (ANCAMAN KESELAMATAN):
|
Prioritas tertinggi (ANCAMAN KESELAMATAN):
|
||||||
- child_safety, self_harm, violence, illegal_content — flag jika ada indikasi nyata
|
- child_safety, self_harm, violence, illegal_content — flag jika ada indikasi nyata
|
||||||
@@ -37,20 +60,26 @@ Prioritas tertinggi (ANCAMAN KESELAMATAN):
|
|||||||
|
|
||||||
Prioritas menengah (PERILAKU MERUSAK):
|
Prioritas menengah (PERILAKU MERUSAK):
|
||||||
- Ancaman kekerasan, doxxing, scam → flag sesuai kategori
|
- Ancaman kekerasan, doxxing, scam → flag sesuai kategori
|
||||||
- spam self-promo → "spam"
|
- Spam self-promo → "spam"
|
||||||
- Istilah agama/suku/ras: penyebutan netral/edukasi = clean; hinaan/provokasi/diskriminatif = "sara" atau "hate_speech"
|
- Istilah agama/suku/ras: penyebutan netral/edukasi = clean; hinaan/provokasi/diskriminatif = "sara" atau "hate_speech"
|
||||||
|
- **Memancing drama/konflik** → "conflict_instigation"
|
||||||
|
|
||||||
Prioritas rendah (PELANGGARAN RINGAN):
|
Prioritas rendah (PELANGGARAN RINGAN):
|
||||||
- harassment (targeted insult), vulgar_language (profanity terarah)
|
- harassment (targeted insult), vulgar_language (profanity terarah)
|
||||||
- sexual_deviation: jika pesan mempromosikan/mendukung topik seksual/identitas yang dibatasi server sebagai pembahasan utama
|
- sexual_deviation: jika pesan mempromosikan/mendukung topik seksual/identitas yang dibatasi server sebagai pembahasan utama. Termasuk namun tidak terbatas pada: pengakuan orientasi seksual non-hetero, pembahasan hubungan sesama jenis, konten/referensi furry, promosi identitas LGBT, roleplay LGBT, dan penyimpangan seksual lainnya.
|
||||||
|
- Username/display name ofensif → "offensive_username" (dengan pertimbangan konteks)
|
||||||
|
|
||||||
## Pohon Keputusan (Decision Tree)
|
## Pohon Keputusan (Decision Tree)
|
||||||
1. Apakah ada ancaman keselamatan nyata (child_safety, self_harm, violence)? → flagged, critical
|
1. Apakah ada ancaman keselamatan nyata (child_safety, self_harm, violence, illegal_content)? → flagged, critical
|
||||||
2. Apakah ada konten ilegal/explicit (NSFW, drugs, gambling, scam)? → flagged, high
|
2. Apakah ada konten ilegal/explicit (NSFW, drugs, gambling, scam, nsfw_image)? → flagged, high
|
||||||
3. Apakah ada harassment terarah/hate speech/sara? → flagged, medium-high
|
3. Apakah ada harassment terarah/hate speech/sara/diskriminasi (seksisme, ageisme)? → flagged, medium-high
|
||||||
4. Apakah ada spam/promosi borderline? → warn, low-medium
|
4. Apakah ada sexual_deviation (promosi LGBT, furry, penyimpangan seksual)? → flagged, medium
|
||||||
5. Jika tidak ada pelanggaran jelas atau bukti ambigu → clean
|
5. Apakah ada conflict_instigation (memancing drama/keributan)? → warn, low-medium
|
||||||
|
6. Apakah ada username ofensif? → warn, low (kecuali diperkuat isi pesan)
|
||||||
|
7. Apakah ada spam/promosi borderline? → warn, low-medium
|
||||||
|
8. Jika tidak ada pelanggaran jelas atau bukti ambigu → clean
|
||||||
Jangan pernah flag hanya berdasarkan kecurigaan atau ketidakjelasan konteks.
|
Jangan pernah flag hanya berdasarkan kecurigaan atau ketidakjelasan konteks.
|
||||||
|
Jika ragu antara dua level, pilih yang lebih rendah (innocent until proven guilty).
|
||||||
|
|
||||||
## ATURAN UNTUK GAMBAR — DUA MODE BERBEDA
|
## ATURAN UNTUK GAMBAR — DUA MODE BERBEDA
|
||||||
|
|
||||||
@@ -126,11 +155,27 @@ Output: {"results":[{"message_id":"44444","status":"clean","flags":[],"score":0.
|
|||||||
|
|
||||||
Contoh 7 — Pesan HANYA GAMBAR situs judi (teks kosong, tapi gambar jelas):
|
Contoh 7 — Pesan HANYA GAMBAR situs judi (teks kosong, tapi gambar jelas):
|
||||||
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".
|
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,"categories":["gambling"],"severity":"high","confidence":0.94,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["Gambar menampilkan antarmuka situs judi online dengan chip, roulette, tombol deposit, dan teks promosi judi"],"analysis":"Promosi situs judi melalui gambar dengan elemen judi jelas: chip, roulette, teks deposit dan bonus."}]}`;
|
Output: {"results":[{"message_id":"55555","status":"flagged","flags":["gambling"],"score":0.94,"categories":["gambling"],"severity":"high","confidence":0.94,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["Gambar menampilkan antarmuka situs judi online dengan chip, roulette, tombol deposit, dan teks promosi judi"],"analysis":"Promosi situs judi melalui gambar dengan elemen judi jelas: chip, roulette, teks deposit dan bonus."}]}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
Contoh 8 — Seksisme terarah:
|
||||||
// Section: Extracted Few-Shot Examples by Mode
|
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,"categories":["hate_speech","harassment"],"severity":"high","confidence":0.9,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["dasar perempuan ngerti apa sih","logika lo aja kagak bener"],"analysis":"sexist mengirim komentar seksis merendahkan yang menyasar gender perempuan. Penghinaan terarah dan stereotip ofensif. Melanggar aturan hate speech dan harassment."}]}
|
||||||
|
|
||||||
|
Contoh 9 — Memancing drama/konflik:
|
||||||
|
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,"categories":["conflict_instigation"],"severity":"low","confidence":0.75,"recommended_action":"warn","policy_version":"default-2026-05-30","evidence":["si budi kemarin ngomongin lo di belakang","ayo kita konfrontasi di sini aja"],"analysis":"drama mengajak konfrontasi masalah personal di channel publik. Berpotensi menimbulkan pertengkaran dan drama. Tidak ada pelanggaran berat namun perlu diperingatkan."}]}
|
||||||
|
|
||||||
|
Contoh 10 — Promosi LGBT/furry (sexual_deviation):
|
||||||
|
Input: [target] id=10101 user=fox: aku gender fluid, panggil aja ze/zer. Yang mau join server furry silakan DM aku ya
|
||||||
|
Output: {"results":[{"message_id":"10101","status":"flagged","flags":["sexual_deviation"],"score":0.75,"categories":["sexual_deviation"],"severity":"medium","confidence":0.85,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["aku gender fluid, panggil aja ze/zer","Yang mau join server furry silakan DM aku"],"analysis":"fox mempromosikan identitas LGBT dan komunitas furry. Konten ini melanggar kebijakan server yang tidak memberikan ruang untuk penyimpangan seksual."}]}
|
||||||
|
|
||||||
|
Contoh 11 — Username ofensif (isi pesan bersih):
|
||||||
|
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,"categories":["offensive_username"],"severity":"low","confidence":0.95,"recommended_action":"warn","policy_version":"default-2026-05-30","evidence":["Username 'pejabat_munafik_dajjal' mengandung unsur ofensif/SARA"],"analysis":"pejabat_munafik_dajjal memiliki username ofensif yang menyerang pejabat dengan label SARA. Namun isi pesan bersih dan tidak terkait username. Flag ringan."}]}
|
||||||
|
|
||||||
|
Contoh 12 — Username ofensif (isi pesan memperkuat):
|
||||||
|
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,"categories":["offensive_username","hate_speech","sara"],"severity":"high","confidence":0.95,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["Username 'nazi_babi_itu' mengandung unsur SARA","bener tuh nih ras emang harus dibasmi"],"analysis":"nazi_babi_itu memiliki username SARA dan isi pesan memperkuat tone kebencian dengan ajakan kekerasan terhadap ras tertentu. Pelanggaran berat."}]}`;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Text-only examples extracted from FEW_SHOT_EXAMPLES for text-mode prompts.
|
* Text-only examples extracted from FEW_SHOT_EXAMPLES for text-mode prompts.
|
||||||
@@ -148,7 +193,27 @@ Output: {"results":[{"message_id":"67890","status":"flagged","flags":["harassmen
|
|||||||
|
|
||||||
Contoh 3 — Sticker kartun dengan nama provokatif:
|
Contoh 3 — Sticker kartun dengan nama provokatif:
|
||||||
Input: [target] id=11111 user=citra: <:singa_injek:123456> [sticker: "Singa injek pejabat"]
|
Input: [target] id=11111 user=citra: <:singa_injek:123456> [sticker: "Singa injek pejabat"]
|
||||||
Output: {"results":[{"message_id":"11111","status":"clean","flags":[],"score":0.1,"categories":[],"severity":"none","confidence":0.8,"recommended_action":"none","policy_version":"default-2026-05-30","evidence":[],"analysis":"Sticker kartun satir dengan nama provokatif namun bukan ancaman nyata."}]}`;
|
Output: {"results":[{"message_id":"11111","status":"clean","flags":[],"score":0.1,"categories":[],"severity":"none","confidence":0.8,"recommended_action":"none","policy_version":"default-2026-05-30","evidence":[],"analysis":"Sticker kartun satir dengan nama provokatif namun bukan ancaman nyata."}]}
|
||||||
|
|
||||||
|
Contoh 8 — Seksisme terarah:
|
||||||
|
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,"categories":["hate_speech","harassment"],"severity":"high","confidence":0.9,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["dasar perempuan ngerti apa sih","logika lo aja kagak bener"],"analysis":"sexist mengirim komentar seksis merendahkan yang menyasar gender perempuan. Penghinaan terarah dan stereotip ofensif. Melanggar aturan hate speech dan harassment."}]}
|
||||||
|
|
||||||
|
Contoh 9 — Memancing drama/konflik:
|
||||||
|
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,"categories":["conflict_instigation"],"severity":"low","confidence":0.75,"recommended_action":"warn","policy_version":"default-2026-05-30","evidence":["si budi kemarin ngomongin lo di belakang","ayo kita konfrontasi di sini aja"],"analysis":"drama mengajak konfrontasi masalah personal di channel publik. Berpotensi menimbulkan pertengkaran dan drama. Tidak ada pelanggaran berat namun perlu diperingatkan."}]}
|
||||||
|
|
||||||
|
Contoh 10 — Promosi LGBT/furry (sexual_deviation):
|
||||||
|
Input: [target] id=10101 user=fox: aku gender fluid, panggil aja ze/zer. Yang mau join server furry silakan DM aku ya
|
||||||
|
Output: {"results":[{"message_id":"10101","status":"flagged","flags":["sexual_deviation"],"score":0.75,"categories":["sexual_deviation"],"severity":"medium","confidence":0.85,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["aku gender fluid, panggil aja ze/zer","Yang mau join server furry silakan DM aku"],"analysis":"fox mempromosikan identitas LGBT dan komunitas furry. Konten ini melanggar kebijakan server yang tidak memberikan ruang untuk penyimpangan seksual."}]}
|
||||||
|
|
||||||
|
Contoh 11 — Username ofensif (isi pesan bersih):
|
||||||
|
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,"categories":["offensive_username"],"severity":"low","confidence":0.95,"recommended_action":"warn","policy_version":"default-2026-05-30","evidence":["Username 'pejabat_munafik_dajjal' mengandung unsur ofensif/SARA"],"analysis":"pejabat_munafik_dajjal memiliki username ofensif yang menyerang pejabat dengan label SARA. Namun isi pesan bersih dan tidak terkait username. Flag ringan."}]}
|
||||||
|
|
||||||
|
Contoh 12 — Username ofensif (isi pesan memperkuat):
|
||||||
|
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,"categories":["offensive_username","hate_speech","sara"],"severity":"high","confidence":0.95,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["Username 'nazi_babi_itu' mengandung unsur SARA","bener tuh nih ras emang harus dibasmi"],"analysis":"nazi_babi_itu memiliki username SARA dan isi pesan memperkuat tone kebencian dengan ajakan kekerasan terhadap ras tertentu. Pelanggaran berat."}]}`;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Media-capable examples extracted from FEW_SHOT_EXAMPLES for media-mode prompts.
|
* Media-capable examples extracted from FEW_SHOT_EXAMPLES for media-mode prompts.
|
||||||
@@ -171,7 +236,27 @@ Output: {"results":[{"message_id":"44444","status":"clean","flags":[],"score":0.
|
|||||||
|
|
||||||
Contoh 7 — Pesan HANYA GAMBAR situs judi (teks kosong, tapi gambar jelas):
|
Contoh 7 — Pesan HANYA GAMBAR situs judi (teks kosong, tapi gambar jelas):
|
||||||
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".
|
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,"categories":["gambling"],"severity":"high","confidence":0.94,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["Gambar menampilkan antarmuka situs judi online dengan chip, roulette, tombol deposit, dan teks promosi judi"],"analysis":"Promosi situs judi melalui gambar dengan elemen judi jelas: chip, roulette, teks deposit dan bonus."}]}`;
|
Output: {"results":[{"message_id":"55555","status":"flagged","flags":["gambling"],"score":0.94,"categories":["gambling"],"severity":"high","confidence":0.94,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["Gambar menampilkan antarmuka situs judi online dengan chip, roulette, tombol deposit, dan teks promosi judi"],"analysis":"Promosi situs judi melalui gambar dengan elemen judi jelas: chip, roulette, teks deposit dan bonus."}]}
|
||||||
|
|
||||||
|
Contoh 8 — Seksisme terarah:
|
||||||
|
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,"categories":["hate_speech","harassment"],"severity":"high","confidence":0.9,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["dasar perempuan ngerti apa sih","logika lo aja kagak bener"],"analysis":"sexist mengirim komentar seksis merendahkan yang menyasar gender perempuan. Penghinaan terarah dan stereotip ofensif. Melanggar aturan hate speech dan harassment."}]}
|
||||||
|
|
||||||
|
Contoh 9 — Memancing drama/konflik:
|
||||||
|
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,"categories":["conflict_instigation"],"severity":"low","confidence":0.75,"recommended_action":"warn","policy_version":"default-2026-05-30","evidence":["si budi kemarin ngomongin lo di belakang","ayo kita konfrontasi di sini aja"],"analysis":"drama mengajak konfrontasi masalah personal di channel publik. Berpotensi menimbulkan pertengkaran dan drama. Tidak ada pelanggaran berat namun perlu diperingatkan."}]}
|
||||||
|
|
||||||
|
Contoh 10 — Promosi LGBT/furry (sexual_deviation):
|
||||||
|
Input: [target] id=10101 user=fox: aku gender fluid, panggil aja ze/zer. Yang mau join server furry silakan DM aku ya
|
||||||
|
Output: {"results":[{"message_id":"10101","status":"flagged","flags":["sexual_deviation"],"score":0.75,"categories":["sexual_deviation"],"severity":"medium","confidence":0.85,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["aku gender fluid, panggil aja ze/zer","Yang mau join server furry silakan DM aku"],"analysis":"fox mempromosikan identitas LGBT dan komunitas furry. Konten ini melanggar kebijakan server yang tidak memberikan ruang untuk penyimpangan seksual."}]}
|
||||||
|
|
||||||
|
Contoh 11 — Username ofensif (isi pesan bersih):
|
||||||
|
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,"categories":["offensive_username"],"severity":"low","confidence":0.95,"recommended_action":"warn","policy_version":"default-2026-05-30","evidence":["Username 'pejabat_munafik_dajjal' mengandung unsur ofensif/SARA"],"analysis":"pejabat_munafik_dajjal memiliki username ofensif yang menyerang pejabat dengan label SARA. Namun isi pesan bersih dan tidak terkait username. Flag ringan."}]}
|
||||||
|
|
||||||
|
Contoh 12 — Username ofensif (isi pesan memperkuat):
|
||||||
|
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,"categories":["offensive_username","hate_speech","sara"],"severity":"high","confidence":0.95,"recommended_action":"delete","policy_version":"default-2026-05-30","evidence":["Username 'nazi_babi_itu' mengandung unsur SARA","bener tuh nih ras emang harus dibasmi"],"analysis":"nazi_babi_itu memiliki username SARA dan isi pesan memperkuat tone kebencian dengan ajakan kekerasan terhadap ras tertentu. Pelanggaran berat."}]}`;
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// Section: Output Schema + XML Delimiter Instructions
|
// Section: Output Schema + XML Delimiter Instructions
|
||||||
@@ -219,6 +304,19 @@ Contoh buruk: "Pesan berisi teks dan gambar tanpa pelanggaran."
|
|||||||
Tulis: "[user] <melakukan pelanggaran X>. <bukti dari teks dan/atau gambar>. <dampak/konteks>."
|
Tulis: "[user] <melakukan pelanggaran X>. <bukti dari teks dan/atau gambar>. <dampak/konteks>."
|
||||||
Contoh baik: "spammer mempromosikan situs judi online dengan link dan gambar antarmuka judi. Gambar menunjukkan chip, roulette, dan tombol deposit. Melanggar kebijakan gambling."
|
Contoh baik: "spammer mempromosikan situs judi online dengan link dan gambar antarmuka judi. Gambar menunjukkan chip, roulette, dan tombol deposit. Melanggar kebijakan gambling."
|
||||||
|
|
||||||
|
### Jika conflict_instigation:
|
||||||
|
Tulis: "[user] <ajakan/tindakan memicu konflik>. <konteks>. Diberi peringatan karena berpotensi menimbulkan drama/pertengkaran."
|
||||||
|
Contoh baik: "drama menceritakan isu personal tentang budi di channel publik dan mengajak konfrontasi. Berpotensi memicu drama di channel umum."
|
||||||
|
|
||||||
|
### Jika username ofensif:
|
||||||
|
Tulis: "[user] memiliki username yang <alasan ofensif>. <isi pesan>. <kesimpulan>."
|
||||||
|
Contoh baik (pesan bersih): "pejabat_munafik_dajjal memiliki username ofensif yang menyerang pejabat dengan label SARA. Isi pesan hanya sapaan biasa. Diberi warning ringan untuk mengganti username."
|
||||||
|
Contoh baik (pesan mendukung): "nazi_babi_itu memiliki username SARA dan isi pesan memperkuat tone kebencian dengan ajakan kekerasan. Pelanggaran berat."
|
||||||
|
|
||||||
|
### Jika sexual_deviation:
|
||||||
|
Tulis: "[user] <konten penyimpangan>. <konteks>. Melanggar kebijakan server."
|
||||||
|
Contoh baik: "fox mempromosikan identitas LGBT dan komunitas furry. Melanggar kebijakan server terkait penyimpangan seksual."
|
||||||
|
|
||||||
CRITICAL:
|
CRITICAL:
|
||||||
- JANGAN PERNAH menulis "Pesan hanya berisi..." atau "Pesan tidak mengandung..." sebagai analysis.
|
- JANGAN PERNAH menulis "Pesan hanya berisi..." atau "Pesan tidak mengandung..." sebagai analysis.
|
||||||
- Selalu sebutkan ISI KONTEN secara spesifik — apa yang dibicarakan, apa yang terlihat di gambar.
|
- Selalu sebutkan ISI KONTEN secara spesifik — apa yang dibicarakan, apa yang terlihat di gambar.
|
||||||
|
|||||||
Reference in New Issue
Block a user