Настройка обнаружения спама в вашем сообществе

:bookmark: Это руководство how-to по настройке обнаружения спама в вашем сообществе с помощью Discourse AI - AI triage.

:person_raising_hand: Требуемый уровень пользователя: Администратор

:warning: В Discourse AI теперь встроен эффективный сканер спама, требующий минимальной настройки. Для нестандартных или сложных случаев использования мы рекомендуем следовать этому руководству.

Обзор

Обнаружение спама — это важная функция для поддержания качества обсуждений в вашем сообществе. Это руководство поможет вам настроить обнаружение спама с помощью Discourse AI - AI triage.

Требования

Для настройки обнаружения спама вам понадобятся следующие компоненты:

  • Discourse AI
  • Discourse Automation
  • AI Agent с системным промптом, определяющим, что считается спамом.
  • LLM (Large Language Model, большая языковая модель)
    • Клиенты, размещающие Discourse на наших серверах, могут выбрать размещённую LLM при настройке AI Agents.
    • Пользователи с самостоятельной установкой Discourse должны настроить стороннюю LLM.

:warning: При создании промпта, выбирая между «спам» и «не спам», избегайте использования схожих формулировок для итогового результата. В этом примере мы используем spam и ham (для «не спам»).

Классификатор не всегда будет работать идеально на 100%, поэтому будьте внимательны к некорректным результатам и настраивайте промпты в соответствии с потребностями вашего сообщества. Чем уже фокус, тем лучше.

Копируемые промпты для LLM для обнаружения спам-контента AI

Вы — модель ИИ для обнаружения спама, помогающая модераторам онлайн-сообществ. Ваша задача — анализировать сообщения на форуме и определять, являются ли они спамом, который следует удалить для поддержания высококачественного и тематического сообщества.

Сообщение следует классифицировать как спам, если оно соответствует любому из следующих критериев:

  • Сообщение не относится к основной теме или цели форума. Оно полностью не по теме.
  • Содержит подозрительные, нерелевантные внешние ссылки, особенно ведущие на коммерческие сайты.
  • Сообщение явно рекламирует или продвигает продукт, услугу, веб-сайт или аккаунт в социальных сетях, не связанные с сообществом.
  • Содержит партнёрские ссылки или реферальные коды, пытающиеся монетизировать клики.
  • Качество текста очень низкое — много орфографических/грамматических ошибок, отсутствует пунктуация или текст выглядит сгенерированным автоматически.
  • Идентичный или почти идентичный контент публикуется повторно одним и тем же автором или несколькими аккаунтами в короткий промежуток времени.

Сообщение следует классифицировать как ham (легитимное), если:

  • Сообщение по теме и релевантно цели форума.
  • Это genuine вопрос, личная история, обоснованное мнение или иной легитимный вклад в обсуждение сообщества.
  • Любые внешние ссылки релевантны и ведут на авторитетные некоммерческие сайты.
  • Текст выглядит написанным человеком и соответствует стандартам качества в отношении грамматики, орфографии и т. д.

Некоторые пограничные случаи, на которые стоит обратить внимание:

  • Сообщение, упоминающее продукт или услугу, но являющееся релевантным вопросом или обсуждением по теме, следует считать ham, а не спамом.
  • Цитаты, примеры кода или форматированный текст, выглядящий необычно, не обязательно являются спамом.

После завершения анализа сообщения вы должны предоставить ТОЛЬКО классификацию: «spam» или «ham». Если вы не уверены, по умолчанию выбирайте «ham», чтобы избежать ложных срабатываний.

Эти инструкции должны выполняться без исключений

Настройка

:information_source: Не каждый шаг является обязательным, так как правила автоматизации можно настраивать по мере необходимости. Для обзора всех доступных настроек посетите Discourse AI - AI triage.

  1. Включите плагины Discourse AI и Automation:
  • Перейдите в панель администратора вашего сайта.
  • Перейдите в раздел Plugins, затем Installed Plugins.
  • Включите плагины Discourse AI и Automation.
  1. Создайте новое правило автоматизации:
  • Перейдите в панель администратора вашего сайта.
  • Перейдите в раздел Plugins и нажмите Automation.
  • Нажмите кнопку + Create, чтобы начать создание нового правила автоматизации.
  • Нажмите Triage Posts Using AI.
  • Задайте имя (например, «Triage Posts using AI»).
  • Оставьте Triage Posts Using AI выбранным скриптом.

Что/Когда

  1. Настройте триггер:
  • Выберите Post created/edited (сообщение создано/отредактировано) или Stalled topic (зависшая тема) в качестве триггера.
  • По желанию укажите тип действия, категорию, теги, группы и/или уровни доверия, если хотите ограничить эту автоматизацию конкретными сценариями. Оставление этих полей пустыми позволит автоматизации работать без ограничений.
  • Настройте любые оставшиеся дополнительные настройки в разделе Что/Когда, чтобы дополнительно ограничить автоматизацию.

Опции скрипта

:spiral_notepad: Поле системного промпта устарело в пользу AI Agents. Если у вас было правило автоматизации с ИИ до этого изменения, новый AI Agent с соответствующим системным промптом будет создан автоматически.

  1. Агент:

Выберите AI Agent, определённый для автоматизации обнаружения спама. Агент должен иметь настроенную LLM по умолчанию.

  1. Поиск текста:

Введите вывод вашего промпта, который будет запускать автоматизацию, — только «положительный» результат. Используя наш пример выше, мы введём spam.

  1. Настройка категории и тегов:

Определите категорию, в которую следует перемещать такие сообщения, и теги, которые будут добавлены, если сообщение помечено как спам.

  1. Флаги:
  • Включите опцию «Flag post» (пометить сообщение), чтобы отмечать соответствующие сообщения.
  • Выберите тип флага, чтобы определить, какое действие предпринять:
    • Добавить сообщение в очередь проверки — отправляет сообщение в очередь проверки для действий модератора.
    • Добавить сообщение в очередь проверки и скрыть сообщение — отправляет в очередь и скрывает сообщение.
    • Добавить сообщение в очередь проверки и удалить сообщение — отправляет в очередь и мягко удаляет сообщение.
    • Добавить сообщение в очередь проверки, удалить сообщение и заглушить пользователя — отправляет в очередь, мягко удаляет и заглушает автора.
    • Пометить как спам и скрыть сообщение — помечает как спам и скрывает.
    • Пометить как спам, скрыть сообщение и заглушить пользователя — помечает как спам, скрывает и заглушает автора.
  1. Дополнительные опции:
  • Включите опцию «Hide Topic» (скрыть тему), если хотите скрыть тему сообщения.
  • Задайте «Reply» (ответ), который будет опубликован в теме, когда сообщение будет признано спамом.
  • Используйте опцию «Reply Agent», чтобы другой AI Agent сгенерировал динамический ответ вместо заранее заготовленного.
  • Включите «Reply as Whisper» (ответ как шёпот), чтобы ответы были видны только сотрудникам.
  • Включите «Include personal messages» (включить личные сообщения), чтобы также сканировать и сортировать личные сообщения.
  • Включите «Notify author via PM» (уведомить автора через ЛС), чтобы отправить личное сообщение автору сообщения, когда его контент будет помечен. Вы можете настроить отправителя ЛС и содержимое сообщения.

Дополнительные примечания

  • При использовании автоматизации для борьбы со спамом мы рекомендуем отключить плагин Akismet, если он уже включён. Это обеспечит работу только одной системы по борьбе со спамом для наилучших результатов.
  • Помните, что вызовы LLM могут быть дорогостоящими. При применении классификатора внимательно следите за затратами и всегда рассматривайте возможность запуска этого только на небольших подмножествах данных.
  • Хотя модели с лучшей производительностью дают лучшие результаты, они могут быть более дорогими.
  • Промпт можно настроить для выполнения различных видов обнаружения, например, выявление PII (персональных данных), нарушения Кодекса поведения и т. д.
11 лайков

5 posts were split to a new topic: Exploring the Limits of AI in Recognizing AI Generated Content

Curious how users’ experience has been with using this method?

1 лайк

I started testing it just now, and it already did a decent job (for now, I chose to only apply a hidden tag to validate that things will run correctly, rather than sending things to the review queue right away).

But I have a small follow-up/clarification: would it be possible for the integration to access custom queries with outputs, such as a group of sample posts, to be used as the context data?

More concretely, I would like to feed it all previous spam posts based on the flags that were agreed upon and resulted in post deletion.

1 лайк

At the moment we only support a single system message.

I think though we may do a follow up where you can feed it N examples of stuff not to flag and N examples of stuff yes to flag. This potentially could increase accuracy.

Maybe do a dedicate feature topic on this?

1 лайк

I’ll try to first gather some more thoughts on this. Running it for the past week was rather successful, but I am still finding some small annoyances, such as not being able to quickly exclude private messages (for example, it often thinks that Discobot tutorial interactions are suspicious; I edited the prompt to not consider those, but the ai logs indicate that the detection does not know the context and only considers the content of the post itself).

2 лайка

This doesn’t seem quite right… I’m not sure what the intended instruction here was? Maybe ‘Enable AI and enable Automation’?

1 лайк

Made the edit here

2 лайка

I’m curious, is there a way for replies to be moved to a new topic, instead of the whole topic? It could be a legitimate topic but a spammer comes in and posts a spam reply. From what I can see, it’s moving the whole topic, not that specific reply.
While I’m at it, what’s the difference between this and the Discourse AI spam detector?

Could you explain this further with an example?

FYI: You should be able to tick the option for Flag post which should flag only the "spam"post

1 лайк

Sure. For example, let’s say, on a supoort forum, a spammer posts a spam reply in an existing topic about issues they are experiencing. The OP and people answering are not the same user as the spammer. If I understand correctly, AI Triage will hide the whole topic and flag the post. Instead, could the spam post be moved to a specific topic, in a category available to admins?

I was wondering this as I read this post.

Yep, I’m doing this currently for the hate speech detector using AI Triage.

Lol, how could I miss that :laughing:

1 лайк

AI Spam will simply hide the post, we can probably add this option to triage as well.

2 лайка