커뮤니티에서 스팸 감지 설정하기

:bookmark: 이는 Discourse AI - AI 트리아지를 사용하여 커뮤니티에서 스팸 감지를 설정하는 방법에 대한 안내서입니다.

:person_raising_hand: 필요한 사용자 권한: 관리자

:warning: Discourse AI에는 이제 최소 설정으로 작동하는 효율적인 스팸 스캐너가 기본 제공됩니다. 맞춤형 또는 복잡한 사용 사례의 경우 이 안내서를 따르는 것을 권장합니다.

개요

스팸 감지는 커뮤니티에서 토론의 질을 유지하는 데 필수적인 기능입니다. 이 안내서는 Discourse AI - AI 트리아지를 사용하여 스팸 감지를 설정하는 방법을 안내합니다.

사전 요구 사항

스팸 감지를 구성하려면 다음이 필요합니다:

  • Discourse AI
  • Discourse Automation
  • 스팸 콘텐츠의 기준을 정의하는 시스템 프롬프트가 포함된 AI 에이전트
  • LLM(대형 언어 모델)
    • Discourse 호스팅 고객은 AI 에이전트를 구성할 때 호스팅된 LLM을 선택할 수 있습니다.
    • 자체 호스팅 Discourse 사용자는 서드파티 LLM을 구성해야 합니다.

:warning: 프롬프트를 작성할 때 스팸과 비스팸(정상)을 구분하는 기준을 정할 때, 최종 결과에 유사한 언어를 사용하지 않도록 주의하세요. 이 예시에서는 spamham(비스팸을 의미)을 사용합니다.

분류기는 항상 100% 완벽하게 작동하지 않으므로 잘못된 결과가 나올 수 있으니 주의하고, 커뮤니티의 필요에 맞게 프롬프트를 커스터마이징하세요. 초점이 좁을수록 좋습니다.

스팸 콘텐츠 감지를 위한 복사 가능한 LLM 프롬프트 AI

당신은 온라인 커뮤니티 관리자를 보조하는 스팸 감지 AI 모델입니다. 당신의 임무는 포럼 게시물을 분석하여 커뮤니티의 높은 품질과 주제 관련성을 유지하기 위해 제거해야 하는 스팸인지 판단하는 것입니다.

게시물이 다음 기준 중 하나에 해당하면 스팸으로 분류해야 합니다:

  • 게시물이 포럼의 주요 주제나 목적과 관련이 없거나 완전히 주제에서 벗어난 경우.
  • 의심스럽거나 관련 없는 외부 링크, 특히 상업적 사이트로 연결되는 링크를 포함하는 경우.
  • 커뮤니티와 관련이 없는 제품, 서비스, 웹사이트 또는 소셜 미디어 계명을 홍보하거나 광고하는 경우.
  • 클릭을 수익화하려는 제휴 링크나 추천 코드를 포함하는 경우.
  • 글쓰기 품질이 매우 낮거나 노력 부족으로 보이는 경우(많은 철자/문법 오류, 구두점 누락, 자동 생성된 텍스트로 보이는 경우).
  • 동일한 또는 거의 동일한 콘텐츠가 짧은 시간 내에 같은 작성자나 여러 계정으로 반복 게시되는 경우.

게시물이 다음에 해당하면 햄(정상)으로 분류해야 합니다:

  • 게시물이 주제와 관련이 있고 포럼의 목적에 부합하는 경우
  • 진지한 질문, 개인적인 이야기, 실질적인 의견 또는 커뮤니티 토론에 대한 기타 정당한 기여인 경우
  • 모든 외부 링크가 관련이 있고 신뢰할 수 있는 비영리 사이트로 연결되는 경우
  • 글이 인간이 작성한 것으로 보이며 문법, 철자 등의 품질 기준을 충족하는 경우

주의해야 하는 경계 사례:

  • 제품이나 서비스를 언급하더라도 여전히 관련 있고 주제에 맞는 질문이나 토론인 게시물은 스팸이 아닌 햄으로 간주해야 합니다.
  • 인용문, 코드 샘플 또는 형식이 unusual하게 보이는 포맷된 텍스트는 반드시 스팸이 아닙니다.

게시물 분석을 완료한 후에는 “spam” 또는 “ham” 중 하나의 분류만 제공해야 합니다. 확신이立た지 않으면 오탐(false positive)을 피하기 위해 "ham"으로 기본값을 설정하세요.

이 지침은 어떤 경우에도 반드시 준수해야 합니다

구성

:information_source: 자동화 규칙은 필요에 따라 커스터마이징할 수 있으므로 모든 단계가 필수적인 것은 아닙니다. 사용 가능한 모든 설정의 개요를 보려면 Discourse AI - AI 트리아지를 방문하세요.

  1. Discourse AI 및 Automation 플러그인 활성화:
  • 사이트 관리자 패널로 이동하세요.
  • 플러그인(Plugins)으로 이동한 후 설치된 플러그인(Installed Plugins)으로 이동하세요.
  • Discourse AI 및 Automation 플러그인을 활성화하세요.
  1. 새 자동화 규칙 생성:
  • 사이트 관리자 패널로 이동하세요.
  • 플러그인(Plugins)으로 이동하여 Automation을 클릭하세요.
  • 새 Automation 규칙 생성을 시작하려면 + Create 버튼을 클릭하세요.
  • Triage Posts Using AI를 클릭하세요.
  • 이름을 설정하세요(예: “AI를 사용하여 게시물 트리아지”).
  • 선택된 스크립트로 Triage Posts Using AI를 유지하세요.

What/When

  1. 트리거 설정:
  • 트리거로 Post created/edited(게시물 생성/수정) 또는 Stalled topic(정체된 주제)를 선택하세요.
  • 선택적으로, 이 Automation을 특정 시나리오로 제한하려면 Action 유형, 카테고리, 태그, 그룹 및/또는 신뢰 수준을 지정하세요. 이 필드를 비워두면 Automation이 제한 없이 작동합니다.
  • What/When 섹션의 나머지 선택 설정을 구성하여 자동화를 더 제한할 수 있습니다.

Script Options

:spiral_notepad: 시스템 프롬프트 필드는 AI 에이전트를 لصالح하여 비추천(deprecated)되었습니다. 이 변경 사항 이전에 AI 자동화를 사용했다면, 관련 시스템 프롬프트가 포함된 새 AI 에이전트가 자동으로 생성됩니다.

  1. 에이전트:

    스팸 감지 자동화에 정의된 AI 에이전트를 선택하세요. 에이전트에는 기본 LLM이 구성되어 있어야 합니다.

  2. 텍스트 검색:

    자동화를 트리거할 프롬프트의 출력값, 즉 “긍정적” 결과만 입력하세요. 위의 예시를 사용하면 spam을 입력합니다.

  1. 카테고리 및 태그 설정:

    게시물이 스팸으로 표시될 경우 해당 게시물을 이동할 카테고리 및 추가할 태그를 정의하세요.

  2. 플래깅(Flagging):

  • 일치하는 게시물을 플래그하려면 “Flag post” 옵션을 활성화하세요.
  • 수행할 작업을 결정하기 위해 플래그 유형을 선택하세요:
    • 게시물을 검토 큐에 추가 — 게시물을 관리자 조치가 필요한 검토 큐로 보냅니다.
    • 게시물을 검토 큐에 추가하고 숨기기 — 검토에 보내고 게시물을 숨깁니다.
    • 게시물을 검토 큐에 추가하고 삭제하기 — 검토에 보내고 게시물을 소프트 삭제합니다.
    • 게시물을 검토 큐에 추가하고, 게시물을 삭제하며, 사용자를 무음 처리 — 검토에 보내고, 소프트 삭제하며, 작성자를 무음 처리합니다.
    • 스팸으로 플래그하고 게시물 숨기기 — 스팸으로 플래그하고 숨깁니다.
    • 스팸으로 플래그하고, 게시물 숨기며, 사용자를 무음 처리 — 스팸으로 플래그하고, 숨기며, 작성자를 무음 처리합니다.
  1. 추가 옵션:
  • 게시물의 주제를 숨기려면 “Hide Topic” 옵션을 활성화하세요.
  • 게시물이 스팸으로 판단될 때 주제에 게시될 "Reply"를 설정하세요.
  • “Reply Agent” 옵션을 사용하여 정해진 답장 대신 다른 AI 에이전트가 동적인 답장을 작성하도록 할 수 있습니다.
  • 답장이 스태프에게만 보이도록 "Reply as Whisper"를 활성화하세요.
  • 개인 메시지도 스캔 및 트리아지하려면 "Include personal messages"를 활성화하세요.
  • 콘텐츠가 플래그될 때 게시물 작성자에게 개인 메시지를 보내려면 "Notify author via PM"을 활성화하세요. PM 발신자와 커스텀 메시지 내용을 구성할 수 있습니다.

추가 참고 사항

  • Automation을 사용하여 스팸을 combat할 경우, 이미 활성화되어 있는 Akismet 플러그인을 비활성화하는 것을 권장합니다. 이는 스팸을 combat하는 시스템이 하나만 작동하도록 하여 최적의 결과를 얻기 위한 것입니다.
  • 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개의 좋아요