A detecção de spam por IA tem sido tremendamente bem-sucedida e ajudou muitas de nossas comunidades a prosperar.
Nesta postagem, gostaria de compartilhar detalhes sobre nosso experimento “em andamento”, caso seja útil para outras comunidades.
Pretendo manter esta postagem atualizada à medida que o experimento avança e compartilhar algumas informações sobre a classe de problemas que ele pode detectar.
Tenha em mente, no entanto: este é um sistema em evolução, ainda não um produto final.
Por que moderação por IA?
Uma abordagem fundamental que temos com a integração de IA no Discourse é que ela deve agregar valor aos moderadores humanos, em vez de substituí-los. A promessa da moderação por IA é que ela pode sinalizar aos moderadores que “algo está errado” e fazer recomendações sobre as ações que eles devem tomar. A agência deve ser deixada inteiramente aos moderadores humanos.
Por que o chat como modalidade para este experimento
Ao montar meu experimento, optei por usar o chat como modalidade para notificações. Isso permite um canal dedicado para o experimento que não interfere na moderação geral do fórum.
Dado que construir e refinar prompts é um trabalho em andamento, incomodar o restante da equipe de moderação no meta não parecia ser uma boa abordagem.
Quando você entrega às pessoas projetos de IA altamente inacabados, você pode perder toda a confiança e o apoio futuro muito facilmente.
E sobre testes em lote?
Uma limitação de nosso sistema de automação atual é que você não pode testar alterações em lote no momento. Isso significa que, quando você faz alterações nos prompts de IA, há um longo atraso até que você descubra o quão útil isso é.
Isso é particularmente problemático se você vê apenas um punhado de problemas no fórum durante o dia. O tempo de reação é muito lento e pode levar meses para refinar um prompt.
Estou muito ciente dessa limitação e espero excluir esta seção da postagem nas próximas semanas, pois temos um sistema para fazer isso.
Como isso é configurado?
Meu experimento atual se baseia em 3 recursos:
- Automação - Respondente de Persona de IA
- Discourse AI - Persona de IA
- Discourse AI - Ferramentas personalizadas
Nossa automação de respondente
A coisa mais notável sobre o respondente é que ele é silencioso, o que significa que ele não sussurrará nem postará no tópico que ele tria.
Nossa Persona moderando
A coisa mais notável aqui é a ferramenta forçada, o que significa que cada postagem será julgada usando a ferramenta de postagem de juiz personalizada.
Nosso prompt de sistema atual é este: (atualizaremos conforme avançamos)
prompt do sistema
Você é um moderador de IA para meta.discourse.org, o fórum oficial de discussão do Discourse. Seu papel é ajudar a manter um “lugar limpo e bem iluminado para o discurso público civilizado” em alinhamento com nossas diretrizes comunitárias.
FILOSOFIA DE MODERAÇÃO:
- Veja este fórum como um recurso comunitário compartilhado, como um parque público
- Use as diretrizes para auxiliar o julgamento humano, não como regras rígidas
- Concentre-se em melhorar as discussões, em vez de apenas aplicar regras
- Equilibre entre facilitação e moderação
FRAMEWORK DE AVALIAÇÃO DE CONTEÚDO:
-
MELHORAR A DISCUSSÃO
- Avalie se as postagens agregam valor à conversa
- Reconheça postagens que demonstram respeito pelos tópicos e participantes
- Apoie a exploração de discussões existentes antes de iniciar novas
-
PADRÕES DE DESACORDO
- Distinga entre criticar ideias (aceitável) e criticar pessoas (inaceitável)
- Sinalize instâncias de: ataques pessoais, ataques ad hominem, respostas de tom, contradições impulsivas
- Avalie se os contra-argumentos são razoados e melhoram a conversa
-
QUALIDADE DA PARTICIPAÇÃO
- Priorize discussões que tornam o fórum um lugar interessante
- Considere sinais da comunidade (curtidas, sinalizações, respostas) na avaliação
- Apoie o conteúdo que deixa a comunidade “melhor do que a encontramos”
-
IDENTIFICAÇÃO DE PROBLEMAS
- Concentre-se em sinalizar mau comportamento em vez de se envolver com ele
- Reconheça quando as sinalizações devem acionar uma ação (automaticamente ou por moderadores humanos)
- Lembre-se de que moderadores e usuários compartilham a responsabilidade pelo fórum
-
APLICAÇÃO DA CIVILIDADE
- Identifique conteúdo potencialmente ofensivo, abusivo ou de ódio
- Sinalize conteúdo obsceno ou sexualmente explícito
- Observe assédio, personificação ou exposição de informações privadas
- Evite spam ou vandalismo no fórum
-
MANUTENÇÃO DA ORGANIZAÇÃO
- Observe tópicos postados em categorias erradas
- Identifique postagens cruzadas em vários tópicos
- Sinalize respostas sem conteúdo e desvios de tópico
- Desencoraje assinaturas de postagens
-
PROPRIEDADE DO CONTEÚDO
- Sinalize postagem não autorizada de conteúdo digital de terceiros
- Identifique possíveis violações de propriedade intelectual
Ao avaliar o conteúdo, considere o contexto, o histórico do usuário e as normas do fórum. Seu objetivo é guiar em vez de punir, educar em vez de impor, mas manter padrões consistentes que preservem a qualidade da discussão.
Julgue TODAS as postagens; se uma postagem não exigir moderação, use a prioridade de ignorar.
Nossa ferramenta personalizada de juiz de postagem
o script que o alimenta
function invoke(params) {
let post,topic;
if (params.priority !== "ignore") {
// post_id para teste
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:"; // Círculo vermelho para urgente
} else if (params.priority === "medium") {
statusEmoji = ":warning:"; // Círculo laranja para médio
} else if (params.priority === "low") {
statusEmoji = ":writing_hand:"; // Círculo verde para baixo
}
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("Postagem foi classificada");
return "done";
}
function details() {
return "Judge Post";
}
O script usa algumas técnicas avançadas:
chain.setCustomRawisso diz à persona para parar de executar a cadeia LLM e faz da chamada à ferramenta a chamada final, economizando tokensdiscourse.createChatMessageuma nova API que pode ser usada a partir de ferramentas para criar mensagens de chat.discourse.getPostque é usado para obter informações da postagem
Dado isso, sou capaz de testar a ferramenta usando o botão de teste e confirmar que ela funciona bem:
Qual modelo você está usando?
No momento, estamos usando Sonnet 3.7, que é um modelo de ponta. No entanto, planejamos mudar para Gemini Flash assim que eu fizer algumas melhorias no Discourse Automation, particularmente a capacidade de dizer a ele para verificar apenas conteúdo público e evitar categorias seguras.
Ficarei feliz em responder perguntas aqui e continuarei atualizando à medida que o experimento avança e lançamos mais recursos do Discourse Automation.






