Questa guida spiega come configurare la classificazione di sentiment e emozioni in Discourse AI e utilizzare i report per esplorare i post della tua community.
Livello utente richiesto: Amministratore per la configurazione; amministratore o moderatore per visualizzare i report.
La classificazione di sentiment ed emozioni ti aiuta a esplorare i pattern nelle discussioni della tua community:
- Sentiment classifica i post come positivi, neutri o negativi.
- Emozione assegna punteggi su 28 etichette, tra cui gratitudine, curiosità, rabbia e tristezza.
Si tratta di funzionalità separate. Puoi abilitarne una, l’altra o entrambe, e scegliere un backend di classificazione diverso per ciascuna. I report contano i post classificati, non le persone univoche o i tipi di personalità. Utilizzarli per trovare discussioni degne di nota, non come sostituto della comprensione del loro contesto.
Prima di iniziare
È necessario che Discourse AI sia abilitato tramite discourse_ai_enabled e che sia configurato un backend di classificazione.
Ospitato da Discourse? Il tuo sito potrebbe già avere endpoint di classificazione dedicati provisionati. Verifica la configurazione esistente prima di modificarla. Contatta team@discourse.org se hai bisogno di aiuto riguardo alla disponibilità, alla configurazione dell’endpoint o ai limiti del backfill.
Self-hosted? Configura un endpoint dedicato compatibile, un agente AI con un modello linguistico o un modello decisionale. Abilitare la funzione da sola non fornisce un servizio di inferenza.
Rivedi l’informativa sulla privacy, le regole di conservazione e i costi del tuo provider prima di abilitare l’elaborazione automatica. La classificazione invia il testo del post al backend selezionato. Gli screenshot seguenti utilizzano post inventati su un sito di test e un modello decisionale; non raccomandano quel provider per contenuti community privati.
Configura sentiment ed emozioni
- Apri Admin → Plugins → AI → Features.
- Apri “Sentiment and emotion”.
- Sotto “Sentiment”, seleziona “Enabled” se desideri la classificazione positiva, neutra e negativa. Questo controlla
ai_sentiment_enabled. - Scegli il suo “Backend” e configura l’endpoint, l’agente o il modello corrispondente come descritto di seguito.
- Sotto “Emotion”, seleziona “Enabled” se desideri la classificazione delle emozioni. Questo controlla
ai_sentiment_emotion_enabled. - Scegli il suo backend e configuralo indipendentemente.
- Imposta i limiti di elaborazione in background descritti nella sezione successiva.
- Fai clic su “Submit” e verifica che le tue selezioni siano state salvate.
Questo esempio utilizza un modello decisionale per entrambe le funzionalità. “Posts per hour” è impostato deliberatamente su 0 per mettere in pausa la scansione automatica durante i test. Utilizza un valore positivo per elaborare automaticamente i nuovi post e quelli storici.
Utilizza endpoint di classificazione dedicati
Scegli “Dedicated classification endpoint” per ciascuna funzionalità che desideri eseguire con un modello dedicato. Segui “Configure dedicated classification endpoints” fino all’impostazione ai_sentiment_model_configs.
I modelli dedicati di riferimento sono:
| Funzionalità | Modello |
|---|---|
| Sentiment | cardiffnlp/twitter-roberta-base-sentiment-latest |
| Emotion | SamLowe/roberta-base-go_emotions |
Ogni voce di configurazione identifica il suo classification_type (sentiment o emotion), model_name, endpoint e api_key. Fornisci una voce separata per ogni classificatore dedicato che utilizzi. Mantieni private le credenziali; non includerle in post di supporto o screenshot.
Vedi Self-hosting sentiment and emotion for Discourse AI per il deployment del server di inferenza. Abilita e seleziona ciascuna funzionalità separatamente utilizzando i controlli sopra indicati.
Il backend dedicato si aspetta un’API di classificazione compatibile. Copiare un endpoint Anthropic, OpenAI chat o Azure Language in questa impostazione non lo rende compatibile. Un test di connessione riuscito per un modello linguistico altrove in Discourse non testa un endpoint di sentiment dedicato.
Utilizza un agente AI o un modello decisionale
Per “LLM agent”, seleziona un agente classificatore appropriato con un modello linguistico configurato. Discourse include agenti classificatori di sentiment e emozioni. Un agente conversazionale generico non è un sostituto per un agente configurato per restituire i punteggi delle etichette previsti.
Per “Decision model”, prima configura e testa un modello decisionale compatibile, quindi selezionalo per ogni funzionalità abilitata. Un modello decisionale non richiede un modello linguistico conversazionale separato per questa classificazione.
Le richieste per agenti e modelli decisionali possono comportare addebiti da parte del provider o consumare crediti. Rivedi le regole di gestione dei dati del modello selezionato prima di assegnarlo a una funzione elaborata automaticamente.
Controlla l’elaborazione e la copertura storica
Un processo pianificato controlla i post con classificazioni mancanti ogni cinque minuti. I nuovi post e quelli storici condividono questa scansione; i risultati non sono necessariamente disponibili immediatamente dopo la pubblicazione. Non c’è un numero minimo di post o giorni prima che i dati possano apparire: un singolo post classificato con successo può contribuire.
| Controllo | Impostazione del sito | Predefinito | Effetto |
|---|---|---|---|
| Post per ora | ai_sentiment_backfill_maximum_posts_per_hour |
240 |
Numero approssimativo di post elaborati all’ora. 0 arresta la scansione pianificata, inclusi i nuovi post. |
| Limite età post, in giorni | ai_sentiment_backfill_post_max_age_days |
60 |
Scansiona i post creati entro questa finestra di età. 0 significa oggi, non cronologia illimitata. |
Aumenta il limite di età per includere post più vecchi. Il processo pianificato elabora i risultati mancanti nel tempo; selezionare un intervallo di date del report più antico non classifica di per sé quella cronologia.
La velocità è approssimativa, non un limite esatto di richieste o di spesa. Abilitare entrambi i classificatori può generare due richieste per post. Le richieste fallite o i rifiuto possono essere ritentati. I post modificati sono controllati separatamente e non sono controllati dalla velocità o dai limiti di età della scansione pianificata.
I messaggi privati, i post cancellati, gli argomenti cancellati e i tipi di post non regolari sono esclusi dalla scansione di backfill pianificata. L’esclusione dei PM nel scanner e nei report non è una garanzia per tutti i percorsi di classificazione: il processo sui post modificati non applica lo stesso filtro PM. Considera questo prima di configurare un provider esterno.
Esplora il sentiment per categoria o tag
- Apri Admin → Reports → Sentiment analysis, oppure visita
/admin/reports/sentiment_analysissul tuo sito. - Seleziona le date di inizio e fine.
- Scegli “Category” o “Tag” per raggruppare i risultati.
- Utilizza il filtro per categoria o tag corrispondente per restringere i risultati. Il filtro per categoria offre anche un’opzione per includere sottocategorie.
- Leggi il totale di ogni gruppo e la sua suddivisione in positivo, negativo e neutro.
- Fai clic sulla riga di un gruppo per ispezionare il suo grafico e i post sottostanti.
L’esempio contiene nove post classificati: tre positivi, tre negativi e tre neutri. I post neutri sono inclusi in questo report.
Nella vista dettagliata:
- Seleziona “All”, “Positive”, “Neutral” o “Negative” per filtrare i post caricati.
- Apri l’argomento di un post per leggere la discussione circostante.
- Utilizza l’icona del link accanto al grafico per copiare l’URL per quella vista del report. I destinatari hanno comunque bisogno di accesso staff.
- Fai clic su “Back” per tornare ai risultati raggruppati.
Le date nel report si riferiscono a quando i post sono stati creati, non a quando la classificazione è stata eseguita. Un post può contribuire a più gruppi di tag se il suo argomento ha più tag, quindi sommare i totali dei tag può contare lo stesso post più di una volta.
Leggi la tendenza generale del sentiment
Apri il report “Overall sentiment” da Admin → Reports, oppure visita /admin/reports/overall_sentiment.
Il punteggio è:
Numero di post positivi − numero di post negativi
Un punteggio positivo o negativo deve essere maggiore di 0.6 perché il post venga contato in quel gruppo. Se nessuno supera la soglia, il report raggruppato tratta il post come neutro. La soglia è fissa; non c’è un’impostazione del sito per cambiarla.
Il sentiment complessivo è un conteggio netto di post, non una media di probabilità o percentuale di felicità. Tre post positivi e tre post negativi producono un punteggio complessivo di 0, indipendentemente da quanti post neutri ci siano. Ispeziona la suddivisione raggruppata e le discussioni sottostanti prima di interpretare una tendenza piatta come assenza di forti opinioni.
Esplora le emozioni
Ogni emozione ha un report sotto Admin → Reports. Ad esempio, visita /admin/reports/emotion_anger per “Anger” o /admin/reports/emotion_curiosity per “Curiosity”. Scegli un intervallo di date e un raggruppamento giornaliero, settimanale o mensile per esplorare la tendenza.
Un report delle emozioni conta i post il cui punteggio per quell’etichetta è maggiore di 0.1. Anche questa soglia è fissa. Più di un’emozione può qualificarsi per lo stesso post, quindi i totali delle emozioni non si escludono a vicenda.
Puoi anche filtrare gli argomenti per un’emozione. Visita /filter?q=order:emotion_anger per trovare argomenti corrispondenti, ordinati per il numero di post qualificati classificati come rabbia piuttosto che per un punteggio medio di emozione. Utilizza order:emotion_anger-asc per invertire l’ordine. Senza un filtro activity-after:, questo ordinamento conta i post qualificati dell’ultimo anno. Si applicano ancora le normali permessi di accesso alla lista degli argomenti.
Etichette di emozione disponibili
Ammirazione, divertimento, rabbia, fastidio, approvazione, premura, confusione, curiosità, desiderio, delusione, disapprovazione, disgusto, imbarazzo, eccitazione, paura, gratitudine, lutto, gioia, amore, nervosismo, neutro, ottimismo, orgoglio, realizzazione, sollievo, rimorso, tristezza e sorpresa.
Comprendi i limiti
- La classificazione dipende dal modello. Sarcastico, citazioni, linguaggio specialistico e discussioni multilingue possono essere fraintese. La copertura linguistica e la precisione dipendono dal modello scelto. I punteggi di backend diversi non sono necessariamente calibrati allo stesso modo.
- I report coprono solo i risultati archiviati. Una funzione abilitata senza un backend funzionante, elaborazione in pausa o copertura storica insufficiente possono produrre report vuoti o incompleti.
- Le classificazioni esistenti vengono riutilizzate. Modificare un post classificato non sostituisce automaticamente i suoi risultati. Cambiare l’agente selezionato o il modello decisionale all’interno dello stesso backend non riclassifica i risultati esistenti.
- Cambiare backend cambia la fonte dei risultati del report. I vecchi risultati non vengono convertiti al backend selezionato. I report possono apparire vuoti mentre le classificazioni mancanti vengono elaborate.
- I report escludono i messaggi privati. Questa esclusione nei report è separata dal limite di elaborazione dei dati descritto sopra.
Risoluzione dei problemi per risultati mancanti o inaspettati
| Problema | Cosa controllare |
|---|---|
| Nessun risultato dopo l’abilitazione | Conferma che la funzionalità pertinente sia abilitata, il suo backend sia configurato, “Posts per hour” sia positivo e i processi in background siano in esecuzione. Consenti tempo per la scansione di cinque minuti e la coda di elaborazione. |
| Il sentiment funziona ma l’emozione è vuota | Abilita e configura “Emotion” separatamente. Un endpoint dedicato solo per il sentiment non fornisce classificazioni delle emozioni. |
| Le date più vecchie non hanno risultati | Aumenta il limite di età dei post, consenti tempo di elaborazione e controlla che l’intervallo del report includa le date di creazione dei post. |
| L’endpoint dedicato restituisce un errore | Controlla la sua URL, le credenziali, il modello e il formato della risposta. L’adattatore si aspetta un array piatto di etichette e punteggi, con etichette di sentiment come positive, neutral e negative, non risposte chat arbitrarie o etichette stile LABEL_0. |
| L’endpoint di rete privata non è raggiungibile | Controlla la connettività e, dove richiesto, aggiungi solo il nome host o l’IP dell’endpoint di inferenza fidato a allowed_internal_hosts. Non disabilitare ampiamente le protezioni contro la falsificazione delle richieste lato server. |
| I risultati non cambiano dopo una modifica o la selezione di un modello | I risultati esistenti vengono riutilizzati. Non supporre che modificare il contenuto o salvare un altro modello programmi una riclassificazione completa. |
| Un filtro mostra meno post rispetto al suo conteggio | Il conteggio descrive l’intero gruppo, mentre le schede del sentiment filtrano i post caricati. Controlla se ci sono più risultati da caricare e apri gli argomenti originali quando investigi discrepanze. |
Gli amministratori possono rivedere i record delle richieste degli agenti e dei modelli decisionali in Admin → Plugins → AI → Logs. Controlla /logs per errori di classificazione in background, inclusi fallimenti degli endpoint dedicati. Tratta i contenuti dei log come sensibili: possono contenere testo dei post e risposte del modello. Rimuovi credenziali e contenuti privati prima di condividere i diagnostici.



