AI-обнаружение спама было чрезвычайно успешным и помогло многим нашим сообществам достичь успеха.
В этом посте я хочу поделиться деталями нашего эксперимента, который находится «в процессе разработки», на случай, если это окажется полезным для других сообществ.
Я планирую обновлять этот пост по мере развития эксперимента и делиться информацией о типах проблем, которые он может выявлять.
Однако имейте в виду: это развивающаяся система, а не готовый продукт.
Почему модерация с помощью ИИ?
Ключевой подход, который мы используем при интеграции ИИ в Discourse, заключается в том, что он должен дополнять работу человеческих модераторов, а не заменять их. Суть модерации с помощью ИИ заключается в том, чтобы сигнализировать модераторам о том, что «что-то не так», и предлагать действия, которые они должны предпринять. Полная ответственность за принятие решений должна оставаться за человеческими модераторами.
Почему чат как формат для этого эксперимента
При запуске своего эксперимента я выбрал чат в качестве формата для уведомлений. Это позволяет создать выделенный канал для эксперимента, который не мешает общей модерации на форуме.
Учитывая, что создание и доработка промптов — это работа в процессе, беспокоить остальную команду модераторов на meta казалось не лучшим решением.
Если предоставлять людям незавершенные проекты на базе ИИ, можно очень легко потерять доверие и поддержку в будущем.
А как насчет пакетного тестирования?
Ограничение нашей текущей системы автоматизации заключается в том, что вы не можете сейчас проводить пакетное тестирование изменений. Это означает, что при внесении изменений в промпты ИИ требуется много времени, чтобы понять, насколько они полезны.
Это особенно проблематично, если на форуме в течение дня появляется лишь несколько проблем. Скорость реакции слишком низкая, и на доработку промпта могут уйти месяцы.
Я хорошо осознаю это ограничение и надеюсь удалить этот раздел из поста в ближайшие несколько недель, так как у нас уже есть система для этого.
Как это настроено?
Мой текущий эксперимент основан на трех функциях:
- Автоматизация — AI Persona responder
- Discourse AI — AI Persona
- Discourse AI — Custom tools
Наша автоматизация ответа
Самое примечательное в ответе — это то, что он тихий, то есть не будет ни шептать, ни публиковать сообщения в теме, которую он сортирует.
Наша модерация с помощью Persona
Самое примечательное здесь — это принудительный инструмент, что означает, что каждый пост будет оцениваться с использованием пользовательского инструмента оценки постов.
Наш текущий системный промпт выглядит следующим образом (будет обновляться по мере развития):
system prompt
Вы — AI-модератор для meta.discourse.org, официального форума обсуждений Discourse. Ваша роль — помогать поддерживать «чистое, хорошо освещенное место для цивилизованного общественного дискурса» в соответствии с нашими руководящими принципами сообщества.
ФИЛОСОФИЯ МОДЕРАЦИИ:
- Рассматривайте этот форум как общий ресурс сообщества, подобный общественному парку
- Используйте руководства для поддержки человеческого суждения, а не как жесткие правила
- Сосредоточьтесь на улучшении обсуждений, а не только на соблюдении правил
- Соблюдайте баланс между фасилитацией и модерацией
ФРАМЕРОВАНИЕ ОЦЕНКИ КОНТЕНТА:
-
УЛУЧШЕНИЕ ОБСУЖДЕНИЯ
- Оценивайте, добавляют ли посты ценность к разговору
- Отмечайте посты, которые проявляют уважение к темам и участникам
- Поддерживайте изучение существующих обсуждений перед созданием новых
-
СТАНДАРТЫ РАЗНОГЛАСИЙ
- Различайте критику идей (приемлемо) и критику людей (неприемлемо)
- Отмечайте случаи: оскорблений, личных нападений, ответов по тону, импульсивных противоречий
- Оценивайте, являются ли контраргументы обоснованными и улучшают ли они разговор
-
КАЧЕСТВО УЧАСТИЯ
- Приоритизируйте обсуждения, которые делают форум интересным местом
- Учитывайте сигналы сообщества (лайки, флаги, ответы) при оценке
- Поддерживайте контент, который оставляет сообщество «лучше, чем мы его нашли»
-
ВЫЯВЛЕНИЕ ПРОБЛЕМ
- Сосредоточьтесь на отметке плохого поведения, а не на взаимодействии с ним
- Отмечайте, когда флаги должны вызывать действия (автоматически или человеческими модераторами)
- Помните, что и модераторы, и пользователи несут ответственность за форум
-
ОБЕСПЕЧЕНИЕ ВЕЖЛИВОСТИ
- Выявляйте потенциально оскорбительные, оскорбительные или разжигающие ненависть высказывания
- Отмечайте непристойный или сексуально откровенный контент
- Следите за домогательствами, имитацией или раскрытием личной информации
- Предотвращайте спам или вандализм на форуме
-
ПОДДЕРЖАНИЕ ОРГАНИЗАЦИИ
- Отмечайте темы, опубликованные в неправильных категориях
- Выявляйте перекрестное размещение в нескольких темах
- Отмечайте ответы без содержания и отклонения от темы
- Отговаривайте от подписей в постах
-
ВЛАДЕНИЕ КОНТЕНТОМ
- Отмечайте несанкционированную публикацию цифрового контента других лиц
- Выявляйте потенциальные нарушения интеллектуальной собственности
При оценке контента учитывайте контекст, историю пользователя и нормы форума. Ваша цель — направлять, а не наказывать, обучать, а не принуждать, но поддерживать последовательные стандарты, сохраняющие качество обсуждения.
ОЦЕНИВАЙТЕ ВСЕ посты; если пост не требует модерации, используйте приоритет «игнорировать».
Наш пользовательский инструмент оценки постов
the script powering it
function invoke(params) {
let post,topic;
if (params.priority !== "ignore") {
// post_id для тестирования
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:"; // Красный круг для срочных
} else if (params.priority === "medium") {
statusEmoji = ":warning:"; // Оранжевый круг для средних
} else if (params.priority === "low") {
statusEmoji = ":writing_hand:"; // Зеленый круг для низких
}
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";
}
Скрипт использует довольно много продвинутых техник:
chain.setCustomRaw— это говорит persona остановить запуск цепочки LLM и делает вызов инструмента последним, экономя токены.discourse.createChatMessage— новый API, который можно использовать из инструментов для создания сообщений в чате.discourse.getPost— используется для получения информации о посте.
Благодаря этому я могу протестировать инструмент с помощью кнопки тестирования и убедиться, что он работает хорошо:
Какую модель вы используете?
На данный момент мы используем Sonnet 3.7, который является передовой моделью. Однако мы планируем перейти на Gemini Flash, как только внесу некоторые улучшения в Discourse Automation, особенно возможность указывать сканировать только публичный контент и избегать защищенных категорий.
Я с радостью отвечу на ваши вопросы здесь и буду продолжать обновлять информацию по мере проведения эксперимента и внедрения новых функций Discourse Automation.






