Discourse AI - AI 트리아지

AI 트리아지는 게시물의 분류 과정을 자동화하여 포럼 게시물의 관리와 모더레이션을 강화하도록 설계되었습니다.

이 기능을 사용하려면 discourse-automationdiscourse-ai 플러그인 모두를 설치해야 합니다.

사용 사례

  1. 자동 게시물 카테고리 분류: AI 트리아지는 게시물의 내용에 따라 주제를 자동으로 분류할 수 있습니다. 이는 수동 분류에 시간이 많이 소요되는 대규모 포럼에서 특히 유용합니다. 규칙을 특정 주제 하위 집합(첫 번째 주제만 또는 특정 카테고리에 게시된 주제)에 적용할 수 있습니다.

  2. 게시물 태그 지정: AI 트리아지는 게시물에 지정된 태그를 할당할 수 있습니다. 이 기능은 게시물의 조직화를 돕고 주제 검색 및 검색 효율성을 높입니다.

  3. 자동 응답: AI 트리아지는 사전 정의된 응답을 사용하여 게시물에 대한 답변을 생성할 수 있습니다. 이는 자주 묻는 질문이나 일반적인 문의에 대응하거나 스팸을 스팸 카테고리로 이동하는 등 다양한 용도로 유용합니다.

  4. 주제 숨김: AI 트리아지는 특정 기준에 따라 주제를 숨길 수 있습니다. 이는 스팸이나 부적절한 콘텐츠를 관리하는 데 사용할 수 있습니다.

  5. NSFW/독성/스팸 감지

작동 방식

AI 트리아지는 AI 모델을 사용하여 게시물 내용을 분석합니다. 이 분석을 기반으로 모델이 특정 텍스트를 반환하면 지정된 작업을 수행합니다. 이러한 작업에는 게시물을 지정된 카테고리로 이동, 태그 추가, 사전 정의된 응답으로 답변, 주제 숨김 등이 포함됩니다.





설정

:spiral_notepad: 시스템 프롬프트 필드는 에이전트(Agents)를 선호하도록 변경되어 더 이상 사용되지 않습니다. 이 변경 사항 이전에 AI 자동화를 사용하셨다면, 관련 시스템 프롬프트가 포함된 새로운 에이전트가 자동으로 생성됩니다.

AI 트리아지를 설정하려면 다음 매개변수를 지정해야 합니다:

  • 에이전트(Agent): 트리아지에 사용할 에이전트입니다. 아래 작업을 트리거할 수 있는 단일 단어 응답하도록 설정했는지 확인하십시오.
  • 텍스트 검색: LLM 응답에 다음 텍스트가 나타나면 아래 작업을 적용합니다.
  • 최대 게시물 토큰 수: LLM 트리아지를 사용하여 스캔할 최대 토큰 수입니다.
  • 중단 시퀀스(Stop Sequences): 모델이 이 값 중 하나에 도달하면 토큰 생성을 중단하도록 지시합니다.
  • 최대 출력 토큰 수: 지정된 경우, 모델이 생성할 수 있는 최대 토큰 수의 상한선을 설정합니다.
  • 개인 메시지 포함: 개인 메시지도 스캔하고 트리아지합니다.
  • 카테고리: 지정된 텍스트가 발견되면 게시물이 이동될 카테고리입니다.
  • 태그: 지정된 텍스트가 발견되면 게시물에 추가될 태그입니다.
  • 주제 숨김: 이 옵션이 활성화되어 있으면 지정된 텍스트가 발견될 때 주제가 숨겨집니다.
  • 게시물 플래그: 활성화되면 해당 주제가 모더레이터, 스태프, 관리자가 조치를 취할 수 있도록 검토 대기열에 플래그가 지정됩니다.
  • 플래그 유형: 적용할 플래그 유형입니다. 옵션은 다음과 같습니다:
    • 게시물을 검토 대기열에 추가 — 검토 대기열에만 전송
    • 게시물을 검토 대기열에 추가하고 숨기기 — 검토 대기열에 전송하고 게시물 숨김
    • 게시물을 검토 대기열에 추가하고 삭제 — 검토 대기열에 전송하고 게시물 소프트 삭제
    • 게시물을 검토 대기열에 추가, 게시물 삭제 및 사용자 무음 처리 — 검토 대기열에 전송, 게시물 소프트 삭제, 사용자 무음 처리
    • 스팸으로 플래그 지정 및 게시물 숨기기 — 스팸으로 플래그 지정 및 숨김
    • 스팸으로 플래그 지정, 게시물 숨기기 및 사용자 무음 처리 — 스팸으로 플래그 지정, 숨김, 사용자 무음 처리
  • 응답 사용자: 사전 정의된 응답에서 언급될 사용자입니다.
  • 응답: 지정된 텍스트가 발견될 때 게시될 사전 정의된 응답입니다.
  • 응답 에이전트(Reply Agent): 응답에 사용할 AI 에이전트입니다. 기본 LLM을 가져야 하며, 사전 정의된 응답보다 우선순위가 높습니다. Discourse AI - AI 트리아지 에이전트 사용과 달리 조건부로 응답합니다.
  • 위스퍼로 응답(Reply as Whisper): AI의 응답이 위스퍼로 표시될지 여부입니다.
  • 저자에게 PM으로 알림: 게시물이 대기열에 등록되고 삭제될 때 게시물 저자에게 개인 메시지를 보냅니다.
  • PM 발신자: PM을 보낼 사용자 (기본값: 시스템).
  • PM 내용: 저자에게 보낼 선택적 사용자 정의 메시지입니다.

주의사항

  • LLM 호출은 비용이 들 수 있습니다. 분류기를 적용할 때 비용을 모니터링하고 항상 작은 하위 집합에서만 실행하도록 주의하십시오.
  • 우리가 테스트하고 (고객을 위해 프로덕션에서 실행한) 특정 사용 사례는 사용자의 첫 번째 주제 분류입니다.
  • AI 봇을 사용하여 에이전트의 시스템 프롬프트 작성을 돕는 것을 권장합니다.
37개의 좋아요

이 기능이 실제로 작동하는 모습을 지켜본 행운의 당사자 중 한 명으로서, 이는 대형 사이트에서 반드시 이해하고 도입을 고려해야 할 기능입니다.

LLM 기반 AI를 활용하기 때문에 항상 올바른 결론에 도달하는 것은 아니지만, 며칠 동안 모더레이터의 일부 업무를 대신 수행하는 모습을 지켜본 결과, 상당한 부분이 정확히 처리되어 확실한 이점이 되었습니다.

이 기능에 대한 초기 토론은 OpenAI 사이트의 Lounge 카테고리에 있습니다. 해당 카테고리는 누구나 접근할 수 있지만, TL3 요건을 충족해야 하며, OpenAI가 대형 사이트인 점을 고려하면 TL3 등급을 얻기까지 상당한 노력이 필요합니다.

접근 권한이 있는 분들을 위해 링크를 공유합니다.

https://community.openai.com/t/lost-users-first-empirical-data/403082/95


기본적으로 이 로직은 특정 문제에 대해 모더레이터들을 돕기 위해 작동합니다. 새 사용자 게시글 중 약 5%가 포럼을 ChatGPT에 질문을 남기는 곳으로 오해하고 게시하는 것으로 확인됩니다. 분명히 길을 잃었거나, 검색 결과가 잘못된 링크를 제공하고 있는 경우입니다. AI는 이러한 게시글을 식별하고, 미리 작성된 텍스트로 답변을 남기며, 필요에 따라 카테고리 및 태그를 변경합니다. 예를 들어:


언급된 사례의 경우, "Discourse AI Post Classifier - Automation rule"이 수행하는 작업은 다음과 같습니다.

자동 게시글 분류
분류기는 필요에 따라 카테고리를 ChatGPT로 변경합니다. 대부분의 새 사용자는 카테고리를 선택하지 않으며, 현재 OpenAI 사이트는 새 게시글의 기본 카테고리를 API로 설정하고 있는데, 이 경우 이는 잘못된 설정입니다.

게시글 태그 지정
이 경우 분류기는 태그를 lost-user로 변경합니다. 이 태그 이름은 수동으로 태그를 변경하던 포럼의 TL3 사용자가 생성한 것입니다.

자동 응답
분류기는 미리 작성된 게시글로 답변을 남깁니다.

토픽 숨김 처리
이 사이트의 개발자 사용자에게 가치가 없는 내용이었기 때문에, 해당 토픽은 unlisted 상태로 설정됩니다.

답변 작성자
답변의 작성자로 System이 사용됩니다.

참고: 이 기능의 설정(Configuration) 정보를 제공하고자 하지만, 접근 권한이 없습니다. 아마도 @Sam님이 세부 정보를 추가해 주실 수 있을 것입니다. AFAIK(제 지식이 닿는 한) 설정에는 기밀 정보가 없으므로 공개해도 무방할 것입니다. 특정 사이트를 위한 설정이므로 공개 저장소에서 찾기 어렵다고 예상합니다. 이 기술을 이해하신다면 올바른 값, 혹은 그와 유사한 값을 추측하는 것은 어렵지 않습니다. System Prompt 작성에는 상당한 노력이 들었으며, 아마도 @sam님이 개발 단계에서 배운 교훈 중 일부를 공유해 주실 수 있을 것입니다. 프롬프트 작성에 대한 지식은 개발 단계에서 큰 가치를 제공했습니다.

System Prompt

참고: 이는 OpenAI Lounge에 게시된 버전입니다(ref). 최종 버전은 다를 가능성이 높지만, 하나의 예시만으로도 추측을 많이 줄일 수 있습니다.

You are bot that is triaging all first interactions a user has on the OpenAI developer forum.

Please only ever respond with “ok” or “bad”

Posts are on topic and ok if:

They relate to OpenAI APIs / Community / Plugin development / Documentation / Prompting
They are about developing or improving methods for prompting large language models
They relate to AI in a general way
They involve complex discussions or logical problems related to AI
Posts are bad if:

A user appears to be having a random conversation with ChatGPT
A user is off topic discussing an unrelated field
A user is prompting a large language model to generate text without a clear purpose
You have extreme difficulty understanding what they are about
Relates to an OpenAI topic BUT is clearly a conversation with a bot
A user is attempting to train or test the AI model through their post
A user is giving instructions or asking for responses in a non-discussion format
A user is posting content that is not conducive to meaningful discussion or learning
A user is posting hypothetical or speculative content without clear relation to OpenAI’s scope
A user is posting the entire post in a language that is not English
Please classify the following content surrounded by [[[]]]:

[[[
%%POST%%
]]]

참고

이 기능을 사용하는 사이트의 모더레이터이면서 unlisted 게시글 목록을 보고 싶다면, 검색 기능을 사용할 수 없다는 점을 기억하세요. 대신 카테고리로 이동한 후 태그를 선택하여 해당 목록으로 이동할 수 있습니다. 또는 URL을 직접 구성할 수도 있습니다. 예를 들어 https://community.openai.com/tags/c/chatgpt/19/lost-user


네, 영어 이외의 언어에서도 작동합니다.

그러나 이미지에는 작동하지 않습니다 :wink:, 이미지를 텍스트로 변환한 후 검사를 실행하지 않기 때문입니다. 예를 들어:

최근의 오탐(false positive) 사례, 혹은 적어도 그렇게 생각하는 사례입니다.


오탐/정답/양성/음성의 자세한 내용은 - Classification: True vs. False and Positive vs. Negative

17개의 좋아요

가능한 기능.

최소 한 번이라도 게시물을 검토하는 модератор(모더레이터)의 경우, 해당 주제를 볼 때 텍스트를 모더레이터의 언어로 변환해 주는 기능이 필요합니다. 이는 단순히 플래그(신고)가 있는 경우에만 해당되는 것이 아니라, 게시물을 보는 모든 상황에 적용되어야 합니다.


Discourse AI 게시물 분류기의 작업을 검토할 때, AI가 올바른 조치를 취했는지 확인하기 위해 게시물 텍스트를 제 언어(영어)로 변환할 필요가 있습니다. 현재는 텍스트를 Google 번역에 붙여넣는 것이 더 쉽습니다.

4개의 좋아요

참고할 가치가 있는 내용이며, 이 사이드 퀘스트와도 관련이 있습니다.

@keegan님이 팝업 메뉴에 AI 도우미를 통합하는 작업을 진행 중입니다. 따라서 앞으로 모르는 언어로 된 텍스트가 여러 줄 있는 경우, 텍스트를 강조 표시한 후 번역 버튼을 누르기만 하면 됩니다.

현재 작성기에서는 이 기능을 지원하고 있지만, 머지(merge)가 완료되면 Discourse 게시물의 어떤 텍스트든 강조 표시하여 LLM 기반의 빠른 번역을 받을 수 있게 됩니다.

6개의 좋아요

이것은 … 제게 게임의 판을 바꿉니다. 감사 카드를 어디로 보내야 할까요?

5개의 좋아요

오늘날 포럼에 이미 존재하는 태그를 참조하여 이 기능을 수행하는 예시는 무엇인가요? 예를 들어, 게시물이 LLM(대형 언어 모델)에 의해 분석되고 가장 가능성이 높거나 관련성이 높은 태그가 게시물에 추가되는 방식입니다.

3개의 좋아요

이 질문 정말 마음에 드네요. 좀 더 자세히 설명해 주실 수 있을까요? 이 기능이 어떻게 작동하는 걸 원하시나요?

  • 이미 태그가 있는 토픽에도 "자동 태그"를 적용할까요?
  • 모든 첫 번째 게시물에 적용할까요, 아니면 특정 그룹(예: tl0 / tl1)의 첫 번째 게시물에만 적용할까요?
  • 일부 토픽에 대해 수동으로 실행하는 방식을 선호하시나요?

여기서 몇 가지 조정이 필요할 것 같습니다… 현재 분류기는 이진(binary) 방식이지만, 목표가 명확하다면 변경은 비교적 쉽습니다.

3개의 좋아요
  • 해당 카테고리의 모든 새 주제에 적용
  • 신뢰도 수준에 따라 옵션을 다르게 설정할 수도 있습니다. 모든 경우(그리고 이 경우, 모든 커뮤니티)에서 그렇듯이 상황에 따라 다릅니다. 제 커뮤니티의 경우, tl4를 제외한 모든 사용자에게 켜져 있도록 유지할 가능성이 높습니다(또는 해당 구성 옵션이 없다면 모든 사용자에게 적용)
  • 지정된 카테고리의 모든 새 주제에 실행되도록 하는 것을 선호합니다

물론, 여기의 목표는 주제를 직접 태그할 필요가 전혀 없도록 하고, AI가 새로 생성된 초기 주제와 현재 가지고 있는 기존 태그를 분석하여 태그를 완전히 자동으로 처리하게 하는 것입니다.

Discourse에서 태그에 설명을 추가할 수 있는 기능이 있고, AI가 그 설명을 추가적인 컨텍스트로 활용하여 올바른 태그를 붙일 수 있다면 더 개선될 수 있을 것입니다 :slight_smile:

6개의 좋아요

우선, 저는 이 기능을 전적으로 지지하며 이를 개선하는 데 동의합니다. 아래 내용은 현재 이 기능이 어떻게 작동하는지에 대한 몇 가지 사실입니다(2023년 10월 16일 기준). 저는 OpenAI의 카테고리 모더레이터로서 매일 모든 새 게시글을 검토합니다. 단, 모든 답변은 검토하지 않으며, AI의 오탐(잘못된 양의 판정)과 미탐(잘못된 음의 판정)을 모두 확인하고 있습니다.

이 기능을(Discourse AI Post Classifier - Automation rule) 사용하는 사람으로서, 다음 사항들을 유의하시기 바랍니다.

  • 정확도가 100%가 아닙니다.
  • AI가 오탐을 한 경우, 이를 되돌리려면 수동 조치가 필요합니다. 변경 사항에 따라 카테고리 모더레이터 이상의 권한이 필요할 수 있으며, 특히 목록에 표시되지 않은 주제를 나열하는 경우 그러합니다.
  • 일부 주제를 놓칠 수 있으며, 이는 미탐에 해당합니다.
  • AI의 자동화된 답변을 받는 많은 사용자가 AI의 답변이 오탐인 경우 이를 어떻게 신고(flag)해야 하는지 알지 못하므로, 이러한 경우를 수동으로 식별하고 수정해야 합니다. 따라서 이러한 문제를 포착하는 데 실제 사용자의 도움이 필요합니다.
  • 필요한 대로 작동하도록 프롬프트를 작성하는 방법을 이해해야 합니다.
  • 원하는 만족도에 도달하려면 미세 조정(fine tuning) 및/또는 에이전트가 필요할 수 있으며, 이는 비용이 많이 들 수 있습니다.
  • 프롬프트 변경 및/또는 가능한 미세 조정/에이전트 활용을 이해하기 위해 오탐과 미탐을 추적할 수 있는 방법이 없습니다.

오탐(False positive) - AI가 변경 사항을 수행해서는 안 되었는데 수행한 경우로, 이는 잘못된 것입니다.
미탐(False negative) - AI가 변경 사항을 수행해야 했는데 수행하지 않은 경우로, 이는 잘못된 것입니다.
정답(True positive) - AI가 변경 사항을 수행한 경우로, 이는 올바른 것입니다.
정답(True negative) - AI가 변경 사항을 수행하지 않은 경우로, 이는 올바른 것입니다.

4개의 좋아요

여기서 좋은 시작은 크리에이티브 모드에서 프롬프트를 시험해 보는 것입니다:

다음과 같은 내용입니다…

당신은 디스커스(Discourse) 자동 태그러(auto tagger)입니다. 주제에 대한 태그 목록을 제안합니다.

태그는 다음과 같습니다:

tag1: 설명
tag2: 설명

다음 주제에 대해 최대 3개의 태그를 제안하십시오:

TOPIC

이것을 몇몇 주제에 적용해 보고, 얼마나 잘 작동하는지 확인해 보세요.

8개의 좋아요

훌륭하게 작동합니다! 감사합니다

3개의 좋아요

최근 업데이트 (2023/11/01)

봇의 사용자 ID는 이제 OpenAI 포럼에서 gpt-4-triage입니다.

이렇게 한 이유는 사용자가 필요할 때 봇을 조용히 할 수 있도록 하기 위해서입니다.

image

봇이 응답하는 예시.

2개의 좋아요

참고로, 이 항목은 설정할 수 있으며 원하시는 사용자 계정에서 자동 응답이 전송되도록 구성할 수 있습니다.

5개의 좋아요

이렇게 한 번 시도해 본 후 후속 피드백을 남깁니다.

아직 초기 단계인 것 같고, 앞으로 어떻게 발전할지 기대가 됩니다. 다만 @jordan-violet 님의 의견이 제가 달성하고자 하는 목표와 100% 일치합니다. @sam 님이 제안한 테스트 프롬프트도 실제로 시도해 봤고, 이론적으로는 올바른 태그를 적용할 만큼 충분히 똑똑해 보였습니다. 하지만 현재 스크립트는 적용 가능한 태그를 7개로 제한하고 있는 것으로 보이며, 우리는 그보다 훨씬 더 많은 태그를 사용하고 있습니다.

요약하자면, 새 주제에 기존 태그를 의미론적으로 적용해 주면 좋겠습니다. 포럼 관리 측면에서(여기 메타 포럼에서도 발견했지만!), 커뮤니티와 그 콘텐츠를 더 잘 정렬하기 위해 태그를 일관되게 적용하는 것은 여전히 힘든 싸움이며, 규모가 커지면 완전한 혼란이 옵니다. 태그에 의존하는 우리들에게는 75%만 정확하더라도 큰 도움이 될 것입니다.

이 기능이 어떻게 발전해 나갈지 계속 지켜보겠습니다!

2개의 좋아요

정말 좋습니다! 이 문제를 디버깅하는 데 도움이 될 만한 제안이 있을까요? 방금 자동화 설정을 했는데, 예상대로 트리거되지 않았습니다. 관련 로그도 찾을 수 없네요.

1개의 좋아요

음, 여기서 결국 무슨 일이 있었나요? 전용 주제를 하나 열어 주시겠어요?

기억이 맞다면, 처음에는 이 옵션을 설정하지 않았습니다. 설정한 후부터 작동하기 시작했습니다.

3개의 좋아요

간단한 질문입니다. 해당 자동화 기능에 대해 감사 로그를 표시할 계획이 있나요? (기존에 이미 구현되어 있는 웹훅 패턴과 유사하게 말이죠?)

자동화가 활성화된 후에 느끼는 “도대체 뭐가 된 거지?”라는 불안감을 덜어주는 데 도움이 될 것 같습니다. :sweat_smile:

AI 로그에는 이미 모든 LLM 상호작용이 저장되어 있습니다. 데이터 탐색기 쿼리를 통해 오늘 바로 이를 활용할 수 있습니다.

2개의 좋아요

이것은 사실이지만, llm_triage 유형의 로그 항목을 해당 항목/주제나 그 결과로 취해진(또는 취해지지 않은) 조치와 연결하는 것은 꽤 까다롭습니다.

이러한 조치에 대한 개요를 제공하면 좋겠습니다 :slight_smile:

5개의 좋아요