Discourse AI - Rilevamento spam

:bookmark: Questa guida spiega come configurare e utilizzare la funzione di rilevamento dello spam di Discourse AI, inclusi il processo di configurazione, i criteri di scansione, la logica di classificazione, le personalizzazioni e i contrasti con il triage AI.

:person_raising_hand: Livello utente richiesto: Amministratore

:megaphone: Questa funzione è ora attiva per impostazione predefinita per i clienti Starter e Pro, nonché per i nostri clienti legacy Basic, Open Source, Creator e Business.

Discourse AI fornisce una funzione efficiente di rilevamento dello spam che identifica e segnala i post di spam con una configurazione minima. Sebbene progettato per la semplicità, integra il sistema di triage AI più versatile, che supporta flussi di lavoro più ampi e casi d’uso più grandi.

Riepilogo

In questa guida imparerai:

  • Come funziona il rilevamento dello spam AI e quali contenuti vengono scansionati
  • La logica di classificazione e il contesto utilizzati dall’AI
  • Passaggi per configurare il rilevamento dello spam tramite /admin/plugins/discourse-ai/ai-spam
  • Linee guida per la selezione del Large Language Model (LLM)
  • Differenze chiave tra il rilevamento dello spam e il triage AI
  • Come gestire i post segnalati e quelli non rilevati

Come funziona il rilevamento dello spam AI

Quali contenuti vengono scansionati?

Il rilevamento dello spam AI valuta i post in base ai seguenti criteri:

  1. Livello di fiducia dell’utente:

    • Scansiona i post degli utenti con livello di fiducia 1 o inferiore.
    • Esclude i post di livelli di fiducia superiori.
  2. Tipo di post:

    • Post pubblici (esclusi i messaggi privati).
    • Sia i post di risposta che i primi post dell’argomento sono inclusi, in base a soglie aggiuntive.
  3. Modifiche ai post:

    • Scansiona i post con modifiche significative (ad esempio, modifiche superiori a 10 caratteri).
    • Applica un ritardo di 10 minuti tra le scansioni dello stesso post.
  4. Frequenza dei post:

    • Dà priorità ai post di nuovi utenti con meno di 4 post totali in argomenti pubblici.
    • Esclude i post di utenti che superano questa soglia.

Il processo di classificazione

I post che soddisfano i criteri vengono inviati a un modello AI (LLM) per l’analisi. Il modello valuta se il post è “SPAM” o “NON SPAM” in base a:

  • Contesto: Include il contenuto del post, il titolo dell’argomento, i dati dell’account utente (ad esempio, età dell’account e livello di fiducia) e le linee guida del sito.
  • Istruzioni personalizzate: Regole definite dall’amministratore per criteri di scansione rafforzati o adattati.
  • Rilevamento automatizzato:
    • Segnala contenuti irrilevanti o promozionali (ad esempio, pubblicità o materiali commerciali).
    • Identifica comportamenti automatizzati o simili a bot.
    • Valuta la pertinenza del contenuto alla discussione.

Prompt e contesto predefiniti

L’AI utilizza un prompt di sistema predefinito per guidare il rilevamento dello spam. Questo prompt delinea le regole di classificazione dello spam. Ad esempio:

Sei un sistema di rilevamento dello spam. Analizza il seguente contenuto e contesto.
Note:
- Le risposte devono rimanere pertinenti al thread di discussione.
- Segnala come SPAM se il contenuto è irrilevante, promozionale o automatizzato.
- Considera i post di nuovi utenti con link come potenziale SPAM a meno che non siano esplicitamente pertinenti all'argomento.
Rispondi solo con "SPAM" o "NON SPAM".

Lo scanner compila anche un pacchetto di contesto, che include:

  • Metadati da argomenti e categorie.
  • Pertinenza delle risposte al thread.
  • Dati dell’autore (ad esempio, data di creazione dell’account, numero totale di post, livello di fiducia).
  • Testo del post troncato a 5000 caratteri per l’elaborazione.

Configura il rilevamento dello spam AI

Guida alla configurazione

  1. Accedi alle impostazioni:
    Naviga su /admin/plugins/discourse-ai/ai-spam.

  2. Seleziona un LLM:

:information_source: Se il tuo sito è ospitato da Discourse

Puoi selezionare il nostro LLM Small ospitato da CDCK dall’elenco LLM.

  1. Attiva il rilevamento dello spam:
    Abilita il rilevamento dello spam attivando la funzione.

:information_source: Nota: è obbligatorio un LLM connesso.

  1. Aggiungi istruzioni personalizzate:
    • Definisci regole specifiche per il tuo forum (ad esempio, monitoraggio più rigoroso dei link esterni).
    • Salva eventuali modifiche per applicarle.

Differenze dal triage AI

Mentre il rilevamento dello spam è progettato specificamente per identificare lo spam, il triage AI supporta attività di gestione dei post più ampie.

Funzione Rilevamento Spam AI Triage AI
Complessità Configurazione semplificata e mirata Altamente personalizzabile e flessibile
Caso d’uso primario Rilevamento dello spam con overhead minimo Flussi di lavoro avanzati per categorizzazione, etichettatura, risposte, rilevamento dello spam, rilevamento nsfw
Azioni Segnala spam, silenzia utenti Etichetta, categorizza, nasconde post, aggiunge risposte, segnala post, silenzia utenti
Raccomandazione Configurazione semplice ed efficace per la maggior parte delle situazioni Utilizzare per flussi di lavoro ricchi e altamente personalizzabili

Per maggiori dettagli, consulta Discourse AI - Triage AI.


Raccomandazioni per la selezione dell’LLM

Le prestazioni del rilevamento dello spam dipendono dall’LLM scelto.

La maggior parte degli LLM a basso costo funziona in modo efficace, come:

  • GPT-4o-mini
  • Claude 3.5 Haiku
  • Gemini 2.0 Flash

Sperimenta con diversi modelli per trovare la soluzione migliore. Configura i tuoi modelli tramite /admin/plugins/discourse-ai/ai-llms.


Testare il comportamento dello scanner di spam

Puoi testare le regole di rilevamento dello spam direttamente dalla pagina di configurazione.

  • Incolla un URL o ID del post nel campo di test.
  • Rivedi il risultato della classificazione (ad esempio, “SPAM” o “NON SPAM”) e analizza i log per comprenderne il ragionamento.
  • Le modifiche non salvate vengono applicate durante il test, consentendo la sperimentazione senza rischi.

Gestione dei post segnalati e non rilevati

Gestione dei post segnalati

I post segnalati appaiono nella coda di moderazione. Gli amministratori possono:

  • Approvare post legittimi classificati erroneamente come spam.
  • Rifiutare argomenti di spam per mantenere accurato il sistema.

:warning: Importante: Rifiuta i flag di spam per i post classificati erroneamente. Gli utenti rimangono silenziati fino alla risoluzione del flag.

Gestione dello spam non rilevato

Lo spam non rilevato si riferisce ai post che bypassano il rilevamento ma vengono segnalati dalla community. I moderatori possono gestirli secondo necessità.


Migliori pratiche

  • Monitora regolarmente lo spam segnalato e non rilevato per affinare l’accuratezza del sistema. Le metriche cliccabili semplificano questo processo.
  • Utilizza casi di test per valutare le istruzioni personalizzate rispetto ai casi limite.
  • Rivedi e regola le impostazioni dell’LLM quando necessario.

Risorse aggiuntive


:mega: La configurazione efficace del rilevamento dello spam AI riduce gli sforzi di moderazione manuale, garantendo una community pulita e priva di spam.

16 Mi Piace

Abbiamo fatto parecchi test con questo e non sembriamo ottenere risultati affidabili. Per contesto, stiamo usando il modello gpt-4o.

Per testare la sua accuratezza, ho fornito le seguenti semplici istruzioni:

Sei un sistema di rilevamento spam. Analizza il seguente contenuto e contesto.
Note qui sotto. Se *UNO QUALSIASI* degli elementi qui sotto è vero, allora segnalalo come spam:
- Il nome utente è molto specificamente "testjon", allora è *SEMPRE* spam.
- Rispondi solo con "SPAM - È Jon!" o "NON SPAM".

Testare su un post, da parte del nome utente testjon, risulta in NON SPAM. Sembra che non stia prestando affatto attenzione alle istruzioni. Suggerimenti?

Qualcun altro ha avuto esperienze positive o negative con il rilevamento spam dell’IA?

Non so come siano le cose in questa situazione, ma in generale l’affermazione citata è molto incline a rompersi. Non capisce cosa significhi ANY e procede felicemente finché non lo ottiene. E da lì ha trovato infine NOT SPAM.

1 Mi Piace

Quindi stai dicendo di rimuovere il grassetto per ANY? O stai dicendo l’intera affermazione di “se ci sono elementi di seguito”?

Devi scriverlo in modo più logico ed esatto. Non puoi lasciare che un’IA scelga in alcun modo. Ricorda che non sa contare e sicuramente non legge prima tutto e poi torna indietro per cercare di lavorare logicamente. Cerca di spiegare in modo semplice come daresti istruzioni a un bambino pigro di 3 anni con ADHD. Gli esempi non sono sbagliati, ma aumenteranno l’uso dei token.

1 Mi Piace

Queste sono informazioni fantastiche. Ad esempio, come potresti scrivere questo scenario esatto in modo diverso?

1 Mi Piace

Qualcosa del tipo…

Sei un sistema di rilevamento dello spam. Il tuo compito è analizzare silenziosamente i contenuti per mantenere alta la qualità di questo forum. Devi seguire delle regole per definire quando un post è spam. Quando trovi uno spam, la tua risposta è indicata nelle regole. Utilizzi solo risposte indicate.

## Regole per lo spam

Non lo faccio per te 😏 Ma hai bisogno di alcune spiegazioni ed esempi. Come esempio veloce e grezzo:
* se un post contiene link esterni collegati a gioco d'azzardo, sesso, criptovalute, ecc. simili (il termine "simili" è rischioso in questo contesto, tra l'altro), allora un post è classificato come spam. Esempio: www.compra-cripto.affare

Questo devi ottimizzarlo caso per caso, perché otterrai falsi positivi e falsi negativi

Quindi devi fornire anche delle linee guida per i contenuti. Ma durante il test:

* se il nome utente è "testjon", salta l'analisi del contenuto e classificalo direttamente come spam. La tua risposta è "SPAM - è Jon"

A proposito, puoi vedere l'utente?

## Regole per altri contenuti

Quando un post supera l'analisi dello spam e sei sicuro che sia un contenuto legittimo, la tua unica risposta è "NON SPAM".

Qualcosa del genere. Devi testare, ovviamente. E ogni volta che ottieni una risposta errata, cerca di trovare il punto confuso. Ma non dare all’IA l’opportunità di scegliere cosa può fare, perché prenderà la direzione più facile o più piacevole. Ha bisogno di rispondere ed essere felice.

Ho appena abilitato questo e sono entusiasta di vedere come andrà!

C’è un’impostazione o una considerazione per il livello di fiducia degli utenti?

Ad esempio: non ho bisogno che l’IA intervenga per TL2 e superiori, si sono guadagnati il loro posto e non dovrebbero essere presi in considerazione per la scansione. Se dovessero diventare “canaglia”, dovremo avere una parolina con loro :sweat_smile:

2 post sono stati divisi in un nuovo argomento: Plugin AI Discourse mancante

Dato che questo sta sostituendo Akismet, mi chiedo quale sia la migliore alternativa per il rilevamento/prevenzione dello spam se non si vogliono i costi LLM che derivano dall’IA?

2 Mi Piace

In realtà, Gemini 2.0 Flash è disponibile gratuitamente, a patto ovviamente di non inviargli un milione di richieste al giorno. Al momento funziona perfettamente per il mio forum a costo zero, ed è decisamente più preciso e “intelligente” di Akismet.

Tuttavia, se il piano di rilevamento spam AI dovesse fallire, ho ancora il plugin Akismet installato sul mio sito e pronto all’uso se dovessi averne bisogno di nuovo, e penso che tu possa ancora installarlo. (Dato che però sta venendo deprecato, non mi aspetto che rimanga per sempre). Ricorda anche che i livelli di fiducia sono una parte fondamentale di Discourse che ti aiutano a gestire lo spam sul tuo sito. :+1:

5 Mi Piace

Oh, è fantastico, è possibile impostare un limite sui token per garantire che il limite (costo zero) sia presente dal LLM?

2 Mi Piace

Per quanto ne so, penso che se superi il limite, l’API per l’LLM smetterà semplicemente di rispondere. Il mio account Google Cloud Console non ha un account di fatturazione collegato e posso ancora utilizzare l’API gratuitamente nel livello gratuito, quindi dovresti stare tranquillo. :+1:

5 Mi Piace

Un post è stato diviso in un nuovo argomento: Migliorare il rilevamento dello spam AI per modifiche e unioni

Dove ottengo la “API Key del servizio che ospita il modello”?

Se sei sul nostro hosting, puoi usare LLM Small.

Se non lo sei, devi configurare un LLM e ottenere una chiave da OpenAI/Google/Anthropic/X/qualunque…

2 Mi Piace

Oh, una chiave API da loro, non da Discourse.

2 Mi Piace

L’attivazione del rilevamento dello spam tramite intelligenza artificiale con Gemini 2.0 Flash non sembra aver aiutato a bloccare questo materiale. Non ho mai avuto uno spam così evidente che superasse il filtro prima. Forse è progettato specificamente per i siti Discourse?

| Errore QuickBooks Payroll dopo un aggiornamento +1-800-223-1608 Risoluzione passo dopo passo nuovo | Americhe - Canada | | 1 | 2 | 1h |
|----|----|----|----|----|----|
| Comprensione dell’errore di aggiornamento della tabella delle imposte QuickBooks Payroll +1-800-223-1608 nuovo | Americhe - Canada | | 1 | 2 | 1h |
| Comprensione dell’errore QuickBooks Payroll PS107 +1-800-223-1608 nuovo | Americhe - Canada | | 1 | 2 | 2h |
| Elenco completo dei numeri di contatto del supporto clienti QuickBooks® USA: la tua guida esperta nuovo | Americhe - Canada | | 1 | 2 | 5h |
| Guida di riferimento 2025 per QuickBooks® Payroll e numeri di supporto per errori nuovo | Asia | | 1 | 2 | 5h |
| {Guida esperta} Informazioni di contatto per il supporto QuickBooks® Payroll – Guida USA 2025 nuovo | Americhe - Canada | | 1 | 4 | 5h |
| {Chiama al +1-855-510-6777} Come posso parlare con il supporto per la prenotazione di pacchetti vacanza Expedia? nuovo | Louisiana | | 1 | 6 | 5h |
| Elenco completo del supporto™️ Caraibi – La guida ufficiale dettagliata nuovo | Asia | | 1 | 2 | 6h |
| [Chiama^Agente^Diretto] Quale numero collega al supporto pacchetti vacanza Expedia? {Componi +1-855-510-6777} nuovo | Americhe - Canada |

La tua API key non è valida, quindi non sta eseguendo alcun test.

Se esegui un test su https://www.foodtalkcentral.com/admin/plugins/discourse-ai/ai-spam e incolli quell’URL, otterrai un errore 500. Se ti addentri nei log in
/var/discourse/shared/web-only/log/rails/production.log e cerchi " 500 ", vedrai

Completed 200 OK in 399ms (Views: 123.1ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 22.9ms)
DiscourseAi::Completions::Endpoints::Gemini: status: 400 - body: {
  "error": {
    "code": 400,
    "message": "API key not valid. Please pass a valid API key.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "API_KEY_INVALID",
        "domain": "googleapis.com",
        "metadata": {
          "service": "generativelanguage.googleapis.com"
        }
      },
      {
        "@type": "type.googleapis.com/google.rpc.LocalizedMessage",
        "locale": "en-US",
        "message": "API key not valid. Please pass a valid API key."
      }
    ]
  }
}
1 Mi Piace

Oh, grazie. Ho selezionato accidentalmente Gemini 2.0 Flash invece di Gemini 2.0 Flash Lite. Ora funziona correttamente.

1 Mi Piace