Rilevamento spam AI ha avuto un successo straordinario e ha aiutato molte delle nostre community ad avere successo.
In questo post, vorrei condividere i dettagli del nostro esperimento “in corso”, nel caso fosse utile ad altre community.
Intendo mantenere questo post aggiornato man mano che l’esperimento progredisce e condividere alcune informazioni sulla classe di problemi che può rilevare.
Tuttavia, tieni presente che si tratta di un sistema in evoluzione, non ancora di un prodotto finito.
Perché la moderazione AI?
Un approccio chiave che adottiamo con l’integrazione AI su Discourse è che dovrebbe aggiungere valore ai moderatori umani, piuttosto che sostituirli. La promessa della moderazione AI è che può segnalare ai moderatori che “qualcosa non va” e fare raccomandazioni sulle azioni da intraprendere. L’agenzia dovrebbe essere lasciata interamente ai moderatori umani.
Perché la chat come modalità per questo esperimento
Quando ho avviato il mio esperimento, ho scelto di utilizzare la chat come modalità per le notifiche. Ciò consente un canale dedicato per l’esperimento che non interferisce con la moderazione generale sul forum.
Dato che la creazione e il perfezionamento dei prompt sono ancora in fase di lavorazione, infastidire il resto del team di moderazione su meta non è sembrata una buona idea.
Quando si presentano alle persone progetti AI altamente incompiuti, si può facilmente perdere tutta la fiducia e il futuro supporto.
E il test batch?
Un limite del nostro attuale sistema di automazione è che al momento non è possibile eseguire test batch delle modifiche. Ciò significa che quando si apportano modifiche ai prompt AI, c’è un lungo ritardo prima di capire quanto siano utili.
Ciò è particolarmente problematico se durante il giorno si riscontrano solo pochi problemi sul forum. Il tempo di reazione è troppo lento e possono essere necessari mesi per perfezionare un prompt.
Sono molto consapevole di questo limite e spero di eliminare questa sezione dal post nelle prossime settimane, poiché abbiamo un sistema per farlo.
Come è configurato?
Il mio attuale esperimento si basa su 3 funzionalità:
- Automazione - Risponditore AI Persona
- Discourse AI - AI Persona
- Discourse AI - Strumenti personalizzati
Il nostro automazione del risponditore
La cosa più notevole del risponditore è che è silenzioso, il che significa che non sussurrerà né pubblicherà sull’argomento che smista.
La nostra moderazione Persona
La cosa più notevole qui è lo strumento forzato, il che significa che ogni post verrà giudicato utilizzando lo strumento personalizzato “judge post”.
Il nostro attuale prompt di sistema è questo: (verrà aggiornato man mano)
prompt di sistema
Sei un moderatore AI per meta.discourse.org, il forum di discussione ufficiale di Discourse. Il tuo ruolo è contribuire a mantenere un “luogo pulito e ben illuminato per il discorso pubblico civilizzato” in linea con le nostre linee guida della community.
FILOSOFIA DI MODERAZIONE:
- Considera questo forum come una risorsa comunitaria condivisa, come un parco pubblico
- Utilizza le linee guida per aiutare il giudizio umano, non come regole rigide
- Concentrati sul miglioramento delle discussioni piuttosto che sulla semplice applicazione delle regole
- Equilibrio tra facilitazione e moderazione
FRAMEWORK DI VALUTAZIONE DEI CONTENUTI:
- MIGLIORARE LA DISCUSSIONE
- Valuta se i post aggiungono valore alla conversazione
- Riconosci i post che mostrano rispetto per gli argomenti e i partecipanti
- Supporta l’esplorazione delle discussioni esistenti prima di iniziarne di nuove
- STANDARD DI DISACCORDO
- Distingui tra criticare idee (accettabile) e criticare persone (inaccettabile)
- Segnala istanze di: insulti, attacchi ad hominem, risposte basate sul tono, contraddizioni affrettate
- Valuta se le controargomentazioni sono ragionate e migliorano la conversazione
- QUALITÀ DELLA PARTECIPAZIONE
- Dai priorità alle discussioni che rendono il forum un luogo interessante
- Considera i segnali della community (like, flag, risposte) nella valutazione
- Supporta contenuti che lasciano la community “migliore di come l’abbiamo trovata”
- IDENTIFICAZIONE DEI PROBLEMI
- Concentrati sulla segnalazione di comportamenti scorretti piuttosto che sull’interazione con essi
- Riconosci quando i flag dovrebbero innescare un’azione (automaticamente o da parte dei moderatori umani)
- Ricorda che sia i moderatori che gli utenti condividono la responsabilità del forum
- APPLICAZIONE DELLA CIVILTÀ
- Identifica discorsi potenzialmente offensivi, abusivi o di incitamento all’odio
- Segnala contenuti osceni o sessualmente espliciti
- Fai attenzione a molestie, impersonificazione o divulgazione di informazioni private
- Impedisci spam o vandalismi sul forum
- MANUTENZIONE DELL’ORGANIZZAZIONE
- Nota argomenti pubblicati nelle categorie sbagliate
- Identifica cross-posting tra più argomenti
- Segnala risposte senza contenuto e deviazioni dall’argomento
- Scoraggia le firme nei post
- PROPRIETÀ DEI CONTENUTI
- Segnala la pubblicazione non autorizzata di contenuti digitali altrui
- Identifica potenziali violazioni della proprietà intellettuale
Quando valuti i contenuti, considera il contesto, la cronologia dell’utente e le norme del forum. Il tuo obiettivo è guidare piuttosto che punire, educare piuttosto che applicare, ma mantenere standard coerenti che preservino la qualità della discussione.
Giudica TUTTI i post, se un post non richiede moderazione usa la priorità di ignorare.
Il nostro strumento personalizzato “judge post”
lo script che lo alimenta
function invoke(params) {
let post,topic;
if (params.priority !== "ignore") {
// post_id per il test
const post_id = context.post_id || 1735240;
post = discourse.getPost(post_id);
topic = post.topic;
let statusEmoji = "";
if (params.priority === "urgent") {
statusEmoji = ":police_car_light:"; // Cerchio rosso per urgente
} else if (params.priority === "medium") {
statusEmoji = ":warning:"; // Cerchio arancione per medio
} else if (params.priority === "low") {
statusEmoji = ":writing_hand:"; // Cerchio verde per basso
}
const message = `${statusEmoji} [${topic.title} - ${post.username}](${post.post_url}): ${params.message}`;
discourse.createChatMessage({ channel_name: "AI Moderation", username: "AI-moderation-bot", message: message});
}
chain.setCustomRaw("Post was classified");
return "done";
}
function details() {
return "Judge Post";
}
Lo script utilizza diverse tecniche avanzate:
chain.setCustomRawquesto dice alla persona di interrompere l’esecuzione della catena LLM e rende la chiamata allo strumento l’ultima chiamata, risparmiando tokendiscourse.createChatMessageuna nuova API che può essere utilizzata dagli strumenti per creare messaggi di chat.discourse.getPostche viene utilizzato per ottenere informazioni sul post.
Dato questo, sono in grado di testare lo strumento utilizzando il pulsante di test e confermare che funziona bene:
Quale modello stai usando?
Al momento, stiamo utilizzando Sonnet 3.7, che è un modello all’avanguardia. Tuttavia, prevediamo di passare a Gemini Flash una volta apportati alcuni miglioramenti a Discourse Automation, in particolare la capacità di dirgli di scansionare solo contenuti pubblici ed evitare categorie sicure.
Sono felice di rispondere alle domande qui e continuerò ad aggiornare man mano che l’esperimento procede e implementiamo altre funzionalità di Discourse Automation.






