“Automation” 플러그인의 “Triage posts using AI” 스크립트에서 “Needs Approval” 상태의 검토 항목이 모더터에게 표시되지 않음

우선순위/심각도:

중간

플랫폼:

Discourse b66fca70d0e3d12ef930398289fac5269cd240c7

설명:

공식 Automation” 플러그인에는 “AI를 사용하여 게시물 분류(Triage posts using AI)” 스크립트가 있습니다. 이 스크립트에는 게시물을 플래그 처리할 수 있는 옵션이 있습니다.

자동화로 생성되는 플래그의 유형(및 관련 동작)은 스크립트의 “Flag type” 설정을 통해 구성할 수 있습니다:

  • “Add post to review queue”: 플래그에 “Needs Approval” 이유가 부여되도록 합니다.
  • “Flag as spam”: 플래그에 “Spam” 이유가 부여되도록 합니다.

별도의 Discourse AI 스팸 감지 기능이 이미 고품질 스팸 감지를 제공하므로, “Triage posts using AI” 스크립트는 스팸과 무관한 작업에 자주 사용됩니다. 이 경우 “Add post to review queue” 옵션이 가장 적절합니다.

:bug: 자동화의 “Flag type” 설정이 “Add post to review queue” 옵션 중 하나로 설정되어 있을 때, 해당 자동화가 생성한 플래그로 인해 생성된 검토 항목이 모더레이터에게 표시되지 않습니다. 이는 모더레이션 작업임에도 불구하고 이러한 플래그를 검토해야 하는 부담이 포럼 관리자(admin)에게만 지워집니다.

재현 단계:

  1. 관리자 계정으로 포럼에 로그인합니다.
  2. Discourse AI > Personas 관리자 페이지(/admin/plugins/discourse-ai/ai-personas)를 엽니다.
  3. + New persona” 버튼을 클릭합니다.
    페르소나 설정 페이지가 열립니다.
  4. 페르소나 설정 페이지의 "Name"과 “Description” 필드에 임의의 내용을 추가합니다.
  5. 테스트 게시물에서 자동화를 트리거하도록 적합한 프롬프트를 “System prompt” 필드에 정의합니다. 예를 들어:
    You will be given a piece of text, and your task is to determine whether it contains the string `foobarbazquxpippoplutopaperino`.
    
    If the post contains that string respond `true`. If the post does not contain that string, respond `false`.
    
    Your response must consist of the text `true`, or the text `false`, and nothing else.
    
  6. Default language model” 메뉴에서 모델을 선택합니다(예: “CDCK Hosted Small LLM”).
  7. 페이지 하단의 “Submit” 버튼을 클릭합니다.
  8. 내장된 “Automation” 플러그인이 아직 비활성화되어 있다면 활성화합니다.
  9. 플러그인의 “Automations” 페이지(/admin/plugins/automation/automation)로 이동합니다.
  10. + Add automation” 버튼을 클릭합니다.
    Select a script” 페이지가 열립니다.
  11. 자동화 설정 페이지의 “Name” 필드에 임의의 이름을 추가합니다.
  12. Triage posts using AI” 스크립트를 선택합니다.
    자동화 설정 페이지가 열립니다.
  13. When/What… > Trigger 메뉴에서 "Post created/edited"를 선택합니다.
  14. Script options > Persona 메뉴에서 이전 단계에서 생성한 페르소나를 선택합니다.
  15. Script options > Search for text 필드에 true를 입력합니다.
  16. Script options > Flag post 체크박스를 선택합니다.
  17. Script options > Flag type 메뉴에서 Add post to review queue를 선택합니다.
  18. 테스트를 용이하게 하기 위해 자동화의 다른 설정을 임의로 조정합니다.
  19. 자동화 설정 페이지 하단의 “Update automation” 버튼을 클릭합니다.
    Automations” 페이지로 돌아갑니다.
  20. 새로 생성된 자동화의 “Enable automation” 스위치를 “on” 위치로 설정합니다.
  21. 자동화를 트리거할 게시물 또는 DM을 작성합니다.
    위에서 제공된 예시 시스템 프롬프트의 경우, 게시물에 foobarbazquxpippoplutopaperino라는 텍스트를 포함시켜 수행할 수 있습니다.
  22. 게시물 또는 메시지를 게시합니다.
  23. 관리자 계정으로 검토 대기열(/review)로 이동합니다.
    :slightly_smiling_face: 자동화가 테스트 게시물에 대해 “Needs Approval” 플래그를 생성했습니다.
  24. 모더레이터 권한이 있는 비관리자(non-admin) 계정으로 포럼에 로그인합니다.
  25. 검토 대기열(/review)로 이동합니다.

:bug: 자동화의 “Needs Approval” 플래그로 생성된 검토 항목이 모더레이터 계정에 표시되지 않습니다. 해당 계정으로 검토 항목의 URL로 직접 이동해도 404 페이지만 표시됩니다.

추가 컨텍스트:

Script options > Flag type 메뉴에서 Flag as spam and hide post를 선택하면 이 오류가 발생하지 않습니다.

이것은 우회책(workaround)을 제공하지만, 스크립트가 스팸 감지가 아닌 다른 이유로 게시물을 분류하는 사용 사례에서는 모더레이션 직원에게 나쁜 경험을 초래합니다. 스팸으로 의심되는 경우에만 플래그에 “Spam” 이유가 부여되어야 한다고 기대합니다.


Approve unless allowed groups” 기능으로 생성된 “Needs Approval” 플래그는 모더레이터에게 표시됩니다. 이는 “Triage posts using AI” 스크립트에서 생성된 플래그의 가시성 부족이 의도된 설계(설명할 수 없는)가 아닌 버그로 인해 발생한 것으로 생각하게 합니다.

이러한 검토 항목을 모더레이터에게 숨길 정당한 이유가 있다고 생각하지 않지만, 만약 그런 이유가 있다면 이 동작은 최소한 선택적으로 만들어져야 합니다.


forum.arduino.cc 포럼에서 이 오류를 재현할 수 있습니다.

2개의 좋아요

리포트 감사합니다 @per1234 :+1: 정말로 실수인 것 같습니다

1개의 좋아요

@per1234 님, 수정 사항을 병합했습니다. 긴급도를 알려주시면 다음 배포 시 적용하겠습니다.

수정과 빠른 응답에 진심으로 감사드립니다, @zogstrip 님과 @sam 님!

let us know how urgently you need to fix

급한 사항은 아닙니다.

저희 포럼의 유지보수와 운영 업무를 돕기 위해 “Automation” 플러그인을 활용할 수 있는지 확인해 보았지만, 필수적인 기능보다는 잠재적 개선 사항에 가깝습니다. 이 버그가 운영팀에 프로젝트를 제시하는 데 장애물이 되긴 했지만, 수정된 버전의 Discourse로 포럼이 업데이트되는 시점을 기대하고 있습니다. 다만, 저는 관리자로서 플래그를 확인할 수 있으므로 개인적으로 시스템을 이미 사용 중입니다.

지연이 오히려 좋은 일이 될 수도 있습니다. 운영진들이 그 가치를 판단하기 전에 신뢰성을 더 높일 수 있을지도 모르니까요.

1개의 좋아요

이 주제는 6일 후 자동으로 닫혔습니다. 새로운 답변을 더 이상 남길 수 없습니다.