Este guia explica como configurar a classificação de sentimento e emoção no Discourse AI e usar os relatórios para explorar as publicações da sua comunidade.
Nível de usuário necessário: Administrador para configurar; administrador ou moderador para visualizar relatórios.
A classificação de sentimento e emoção ajuda a explorar padrões nas discussões da sua comunidade:
- Sentimento classifica as publicações como positivas, neutras ou negativas.
- Emoção atribui pontuações em 28 categorias, incluindo gratidão, curiosidade, raiva e tristeza.
Esses são recursos separados. Você pode ativar um, ambos ou escolher um backend de classificação diferente para cada um. Os relatórios contam publicações classificadas, não pessoas únicas ou tipos de personalidade. Use-os para encontrar discussões que valem a leitura, não como substituto para entender o contexto delas.
Antes de começar
Você precisa ter o Discourse AI ativado através de discourse_ai_enabled e um backend de classificação configurado.
Hospedado pelo Discourse? Seu site pode já ter endpoints de classificação dedicados provisionados. Verifique a configuração existente antes de alterá-la. Entre em contato com team@discourse.org se precisar de ajuda com disponibilidade, configuração de endpoint ou limites de histórico.
Auto-hospedado? Configure um endpoint dedicado compatível, um agente de IA com um modelo de linguagem ou um modelo de decisão. Ativar o recurso sozinho não fornece um serviço de inferência.
Revise a política de privacidade do seu provedor, as regras de retenção e os custos antes de ativar o processamento automático. A classificação envia o texto da publicação para o backend selecionado. As capturas de tela abaixo usam publicações inventadas em um site de testes e um modelo de decisão; elas não recomendam esse provedor para conteúdo privado da comunidade.
Configurar sentimento e emoção
- Abra Admin → Plugins → AI → Recursos.
- Abra “Sentimento e emoção”.
- Em “Sentimento”, selecione “Ativado” se você quiser classificação positiva, neutra e negativa. Isso controla
ai_sentiment_enabled. - Escolha o “Backend” correspondente e configure o endpoint, agente ou modelo correspondente conforme descrito abaixo.
- Em “Emoção”, selecione “Ativado” se você quiser classificação de emoção. Isso controla
ai_sentiment_emotion_enabled. - Escolha o backend correspondente e configure-o independentemente.
- Defina os limites de processamento em segundo plano descritos na próxima seção.
- Clique em “Enviar” e verifique se suas seleções foram salvas.
Este exemplo usa um modelo de decisão para ambos os recursos. “Publicações por hora” está definido intencionalmente como 0 para pausar a varredura automática durante os testes. Use um valor positivo para processar publicações novas e históricas automaticamente.
Usar endpoints de classificação dedicados
Escolha “Endpoint de classificação dedicado” para cada recurso que você deseja executar com um modelo dedicado. Siga “Configurar endpoints de classificação dedicados” para a configuração ai_sentiment_model_configs.
Os modelos dedicados de referência são:
| Recurso | Modelo |
|---|---|
| Sentimento | cardiffnlp/twitter-roberta-base-sentiment-latest |
| Emoção | SamLowe/roberta-base-go_emotions |
Cada entrada de configuração identifica seu classification_type (sentiment ou emotion), model_name, endpoint e api_key. Forneça uma entrada separada para cada classificador dedicado que você usar. Mantenha as credenciais privadas; não as inclua em posts de suporte ou capturas de tela.
Veja Self-hosting sentiment and emotion for Discourse AI para a implantação do servidor de inferência. Ative e selecione cada recurso separadamente usando os controles acima.
O backend dedicado espera uma API de classificação compatível. Copiar um endpoint da Anthropic, OpenAI chat ou Azure Language nesta configuração não o torna compatível. Um teste de conexão bem-sucedido para um modelo de linguagem em outro lugar do Discourse não testa um endpoint dedicado de sentimento.
Usar um agente de IA ou modelo de decisão
Para “Agente LLM”, selecione um agente de classificador apropriado com um modelo de linguagem configurado. O Discourse inclui agentes classificadores de sentimento e emoção. Um agente conversacional geral não é substituto para um agente configurado para retornar as pontuações de rótulo esperadas.
Para “Modelo de decisão”, primeiro configure e teste um modelo de decisão compatível, em seguida, selecione-o para cada recurso ativado. Um modelo de decisão não requer um modelo de linguagem conversacional separado para esta classificação.
As solicitações do agente e do modelo de decisão podem incorrer em cobranças do provedor ou consumir créditos. Revise as regras de manuseio de dados do modelo selecionado antes de atribuí-lo a um recurso processado automaticamente.
Controlar o processamento e a cobertura histórica
Um trabalho agendado verifica se há publicações com classificações ausentes a cada cinco minutos. Publicações novas e históricas compartilham esta varredura; os resultados não estão necessariamente disponíveis imediatamente após a publicação. Não há um número mínimo de publicações ou dias antes que os dados possam aparecer: uma única publicação classificada com sucesso pode contribuir.
| Controle | Configuração do site | Padrão | Efeito |
|---|---|---|---|
| Publicações por hora | ai_sentiment_backfill_maximum_posts_per_hour |
240 |
Número aproximado de publicações processadas por hora. 0 para a varredura agendada, incluindo novas publicações. |
| Limite de idade da publicação, em dias | ai_sentiment_backfill_post_max_age_days |
60 |
Varre publicações criadas dentro desta janela de idade. 0 significa hoje, não histórico ilimitado. |
Aumente o limite de idade para incluir publicações mais antigas. O trabalho agendado processa os resultados ausentes ao longo do tempo; selecionar uma faixa de data de relatório mais antiga não classifica essa história por si só.
A taxa é aproximada, não um limite exato de solicitações ou gastos. Ativar ambos os classificadores pode fazer duas solicitações por publicação. Solicitações com falha ou recusas podem ser repetidas. Publicações editadas são verificadas separadamente e não são controladas pela taxa ou limites de idade da varredura agendada.
Mensagens privadas, publicações excluídas, tópicos excluídos e tipos de publicação não regulares são excluídos da varredura de histórico agendada. A exclusão de MP no scanner e nos relatórios não é uma garantia para todos os caminhos de classificação: o trabalho de publicações editadas não aplica o mesmo filtro de MP. Leve isso em conta antes de configurar um provedor externo.
Explorar sentimento por categoria ou tag
- Abra Admin → Relatórios → Análise de sentimento, ou visite
/admin/reports/sentiment_analysisno seu site. - Selecione as datas de início e fim.
- Escolha “Categoria” ou “Tag” para agrupar os resultados.
- Use o filtro de categoria ou tag correspondente para refinar os resultados. O filtro de categoria também fornece uma opção para incluir subcategorias.
- Leia o total de cada grupo e sua divisão positiva, negativa e neutra.
- Clique na linha de um grupo para inspecionar seu gráfico e as publicações subjacentes.
O exemplo contém nove publicações classificadas: três positivas, três negativas e três neutras. Publicações neutras estão incluídas neste relatório.
Na visão de detalhes:
- Selecione “Todas”, “Positivas”, “Neutras” ou “Negativas” para filtrar as publicações carregadas.
- Abra o tópico de uma publicação para ler a discussão ao redor.
- Use o ícone de link ao lado do gráfico para copiar a URL para aquela visão de relatório. Os destinatários ainda precisam de acesso da equipe.
- Clique em “Voltar” para retornar aos resultados agrupados.
As datas dos relatórios referem-se a quando as publicações foram criadas, não quando a classificação foi executada. Uma publicação pode contribuir para múltiplos grupos de tags se seu tópico tiver múltiplas tags, então adicionar totais de tags pode contar a mesma publicação mais de uma vez.
Ler a tendência geral de sentimento
Abra o relatório “Sentimento geral” de Admin → Relatórios, ou visite /admin/reports/overall_sentiment.
A pontuação é:
Número de publicações positivas − número de publicações negativas
Uma pontuação positiva ou negativa deve ser maior que 0,6 para que a publicação conte naquele grupo. Se nenhum dos dois exceder o limite, o relatório agrupado trata a publicação como neutra. O limite é fixo; não há configuração do site para alterá-lo.
O sentimento geral é uma contagem líquida de publicações, não uma probabilidade média ou porcentagem de felicidade. Três publicações positivas e três negativas produzem uma pontuação geral de 0, independentemente de quantas publicações neutras existam. Inspecione a divisão agrupada e as discussões subjacentes antes de interpretar uma tendência plana como uma ausência de opiniões fortes.
Explorar emoções
Cada emoção tem um relatório sob Admin → Relatórios. Por exemplo, visite /admin/reports/emotion_anger para “Raiva” ou /admin/reports/emotion_curiosity para “Curiosidade”. Escolha uma faixa de datas e agrupamento diário, semanal ou mensal para explorar a tendência.
Um relatório de emoção conta publicações cuja pontuação para aquele rótulo é maior que 0,1. Este limite também é fixo. Mais de uma emoção pode se qualificar para a mesma publicação, então os totais de emoção não são mutuamente exclusivos.
Você também pode filtrar tópicos por uma emoção. Visite /filter?q=order:emotion_anger para encontrar tópicos correspondentes, classificados pelo número de publicações qualificadas de raiva classificada, em vez de pela pontuação média de emoção. Use order:emotion_anger-asc para inverter a ordem. Sem um filtro activity-after:, essa ordem conta publicações qualificadas do último ano. As permissões normais de acesso à lista de tópicos ainda se aplicam.
Rótulos de emoção disponíveis
Admiração, diversão, raiva, irritação, aprovação, cuidado, confusão, curiosidade, desejo, decepção, desaprovação, nojo, vergonha, excitação, medo, gratidão, luto, alegria, amor, nervosismo, neutro, otimismo, orgulho, compreensão, alívio, remorso, tristeza e surpresa.
Entender as limitações
- A classificação depende do modelo. Sarcasmo, material citado, linguagem especializada e discussões multilíngues podem ser mal interpretados. A cobertura e a precisão linguística dependem do modelo escolhido. Pontuações de backends diferentes não estão necessariamente calibradas igualmente.
- Os relatórios só cobrem resultados armazenados. Um recurso ativado sem um backend funcional, processamento pausado ou cobertura histórica insuficiente pode produzir relatórios vazios ou incompletos.
- As classificações existentes são reutilizadas. Editar uma publicação classificada não substitui automaticamente seus resultados. Alterar o agente ou modelo de decisão selecionado dentro do mesmo backend também não reclassifica os resultados existentes.
- Alterar o backend altera a fonte de resultados do relatório. Resultados antigos não são convertidos para o backend selecionado. Relatórios podem parecer vazios enquanto as classificações ausentes são processadas.
- Os relatórios excluem mensagens privadas. Esta exclusão de relatório é separada da limitação de processamento de dados descrita acima.
Solucionar problemas de resultados ausentes ou inesperados
| Problema | O que verificar |
|---|---|
| Sem resultados após ativar | Confirme se o recurso relevante está ativado, seu backend está configurado, “Publicações por hora” é positivo e os trabalhos em segundo plano estão sendo executados. Permita tempo para a varredura de cinco minutos e a fila de processamento. |
| Sentimento funciona, mas emoção está vazio | Ative e configure “Emoção” separadamente. Um endpoint dedicado apenas de sentimento não fornece classificações de emoção. |
| Datas antigas não têm resultados | Aumente o limite de idade da publicação, permita tempo de processamento e verifique se a faixa do relatório inclui as datas de criação das publicações. |
| Endpoint dedicado retorna erro | Verifique sua URL, credenciais, modelo e formato de resposta. O adaptador espera um array plano de rótulos e pontuações, com rótulos de sentimento como positive, neutral e negative, não respostas de chat arbitrárias ou rótulos do estilo LABEL_0. |
| Endpoint de rede privada não pode ser alcançado | Verifique a conectividade e, onde necessário, adicione apenas o nome do host ou IP do endpoint de inferência confiável em allowed_internal_hosts. Não desative amplamente as proteções contra falsificação de solicitações do lado do servidor. |
| Resultados não mudam após edição ou seleção de modelo | Resultados existentes são reutilizados. Não presuma que editar conteúdo ou salvar outro modelo agenda uma reclassificação completa. |
| Um filtro mostra menos publicações que sua contagem | A contagem descreve o grupo inteiro, enquanto as abas de sentimento filtram as publicações carregadas. Verifique se há mais resultados para carregar e abra os tópicos originais ao investigar discrepâncias. |
Administradores podem revisar registros de solicitações de agente e modelo de decisão em Admin → Plugins → AI → Logs. Verifique /logs para erros de classificação em segundo plano, incluindo falhas de endpoint dedicado. Trate o conteúdo dos logs como sensível: eles podem conter texto da publicação e respostas do modelo. Remova credenciais e conteúdo privado antes de compartilhar diagnósticos.



