이 가이드에서는 Discourse AI에서 감정 및 정서 분류를 설정하고, 생성된 보고서를 통해 커뮤니티 게시물을 탐색하는 방법을 설명합니다.
필수 사용자 레벨: 설정을 위한 관리자(Administrator); 보고서 열람을 위한 관리자 또는 중재자(Moderator).
감정 및 정서 분류를 통해 커뮤니티 논의의 패턴을 파악할 수 있습니다.
- 감정(Sentiment): 게시물을 긍정, 중립, 부정으로 분류합니다.
- 정서(Emotion): 감사, 호기심, 분노, 슬픔 등 28가지 레이블에 대해 점수를 할당합니다.
이 두 기능은 서로 독립적입니다. 둘 중 하나 또는 둘 다 활성화할 수 있으며, 각 기능마다 서로 다른 분류 백엔드를 선택할 수 있습니다. 보고서는 분류된 게시물의 수를 집계하며, 고유한 사용자나 성격 유형을 집계하지 않습니다. 읽어볼 가치가 있는 토론을 찾는 데 활용하세요. 맥락 이해를 대체하는 수단으로는 사용하지 마세요.
시작하기 전에
discourse_ai_enabled를 통해 Discourse AI가 활성화되어 있어야 하며, 분류 백엔드가 설정되어 있어야 합니다.
Discourse에서 호스팅 중이신가요? 사이트에는 이미 전용 분류 엔드포인트가 프로비저닝되어 있을 수 있습니다. 구성을 변경하기 전에 기존 구성을 확인하세요. 가용성, 엔드포인트 구성 또는 백필 제한과 관련하여 도움이 필요하면 team@discourse.org로 문의하세요.
자체 호스팅 중이신가요? 호환되는 전용 엔드포인트, 언어 모델을 사용하는 AI 에이전트 또는 의사 결정 모델을 설정하세요. 기능만 활성화한다고 해서 추론 서비스가 제공되지 않습니다.
자동 처리를 활성화하기 전에 서비스 제공업체의 개인정보 보호 정책, 데이터 보관 규정 및 비용을 검토하세요. 분류 시 게시물 텍스트가 선택된 백엔드로 전송됩니다. 아래 스크린샷은 테스트 사이트의 가상의 게시물과 의사 결정 모델을 사용한 것으로, 개인 커뮤니티 콘텐츠에 해당 제공업체를 추천하는 것이 아닙니다.
감정 및 정서 설정
- **관리자 → 플러그인 → AI → 기능(Admin → Plugins → AI → Features)**으로 이동합니다.
- “감정 및 정서(Sentiment and emotion)”를 엽니다.
- 긍정, 중립, 부정 분류가 필요하면 “감정(Sentiment)” 섹션에서 “활성화(Enabled)”를 선택하세요. 이는
ai_sentiment_enabled을 제어합니다. - “백엔드(Backend)”를 선택하고 아래 설명에 따라 해당 엔드포인트, 에이전트 또는 모델을 설정하세요.
- 정서 분류가 필요하면 “정서(Emotion)” 섹션에서 “활성화(Enabled)”를 선택하세요. 이는
ai_sentiment_emotion_enabled을 제어합니다. - 해당 백엔드를 선택하고 독립적으로 설정하세요.
- 다음 섹션에서 설명하는 백그라운드 처리 제한을 설정하세요.
- “제출(Submit)”을 클릭하고 선택 사항이 저장되었는지 확인하세요.
이 예시에서는 두 기능 모두 의사 결정 모델을 사용합니다. “시간당 게시물 수(Posts per hour)”는 테스트 중에 자동 스캔을 일시 중지하기 위해 의도적으로 0으로 설정되었습니다. 새 게시물과 과거 게시물을 자동으로 처리하려면 양의 값을 사용하세요.
전용 분류 엔드포인트 사용
전용 모델로 실행할 각 기능에 대해 “전용 분류 엔드포인트(Dedicated classification endpoint)”를 선택하세요. “전용 분류 엔드포인트 설정” 지침에 따라 ai_sentiment_model_configs 설정을 구성하세요.
참고용 전용 모델은 다음과 같습니다.
| 기능 | 모델 |
|---|---|
| 감정 | cardiffnlp/twitter-roberta-base-sentiment-latest |
| 정서 | SamLowe/roberta-base-go_emotions |
각 구성 항목은 classification_type (sentiment 또는 emotion), model_name, endpoint 및 api_key를 지정합니다. 사용하는 각 전용 분류기별로 별도 항목을 제공하세요. 자격 증명(private credentials)은 비공개로 유지하며 지원 게시물이나 스크린샷에 포함하지 마세요.
추론 서버 배포에 관한 내용은 Discourse AI를 위한 감정 및 정서 자체 호스팅을 참조하세요. 위의 컨트롤을 사용하여 각 기능을 별도로 활성화하고 선택하세요.
전용 백엔드는 호환되는 분류 API를 기대합니다. Anthropic, OpenAI 챗 또는 Azure Language 엔드포인트를 이 설정에 복사해도 호환되지 않습니다. Discourse의 다른 곳에서 언어 모델의 연결 테스트가 성공했다고 해서 전용 감정 엔드포인트가 테스트되는 것은 아닙니다.
AI 에이전트 또는 의사 결정 모델 사용
“LLM 에이전트”의 경우, 설정된 언어 모델이 포함된 적절한 분류기 에이전트를 선택하세요. Discourse에는 감정 및 정서 분류기 에이전트가 포함되어 있습니다. 일반적인 대화형 에이전트는 예상된 레이블 점수를 반환하도록 구성된 에이전트를 대체할 수 없습니다.
“의사 결정 모델”의 경우, 먼저 호환되는 의사 결정 모델을 구성하고 테스트한 후 활성화된 각 기능에 대해 선택하세요. 이 분류를 위해 의사 결정 모델에는 별도의 대화형 언어 모델이 필요하지 않습니다.
에이전트 및 의사 결정 모델 요청은 제공업체 요금을 발생시키거나 크레딧을 소진할 수 있습니다. 자동 처리 기능에 할당하기 전에 선택된 모델의 데이터 처리 규정을 검토하세요.
처리 및 과거 데이터 커버리지 제어
스케줄링된 작업은 5분마다 분류가 누락된 게시물이 있는지 확인합니다. 새 게시물과 과거 게시물 모두 이 스캔을 공유하며, 결과물은 게시 후 즉시_available_되지 않을 수 있습니다. 데이터가 표시되기 전에 최소한의 게시물 수나 일수가 필요하지 않습니다. 성공적으로 분류된 게시물 1개만으로도 기여할 수 있습니다.
| 제어 | 사이트 설정 | 기본값 | 효과 |
|---|---|---|---|
| 시간당 게시물 수 | ai_sentiment_backfill_maximum_posts_per_hour |
240 |
시간당 처리되는 대략적인 게시물 수. 0은 새 게시물을 포함하여 스케줄링된 스캔을 중지합니다. |
| 게시물 경과 시간 제한(일) | ai_sentiment_backfill_post_max_age_days |
60 |
이 경과 시간 윈도우 내에서 생성된 게시물을 스캔합니다. 0은 제한 없음이 아닌 '오늘’을 의미합니다. |
나중에 게시물을 포함하려면 경과 시간 제한을 늘리세요. 스케줄링된 작업은 누락된 결과를 시간 경과에 따라 처리하지만, 보고서에서 더 오래된 날짜 범위를 선택하는 것 자체가 해당 과거 데이터를 분류하는 것은 아닙니다.
속도는 정확하며 요청 또는 지출 상한이 아닌 근사치입니다. 두 분류기 모두를 활성화하면 게시물당 두 번의 요청이 발생할 수 있습니다. 실패한 요청 또는 거부된 요청은 재시도될 수 있습니다. 편집된 게시물은 별도로 확인되며, 스케줄링된 스캔의 속도 또는 경과 시간 제한의 영향을 받지 않습니다.
개인 메시지, 삭제된 게시물, 삭제된 토픽 및 일반적이지 않은 게시물 유형은 스케줄링된 백필 스캔에서 제외됩니다. 스캐너와 보고서의 PM 제외 조치는 모든 분류 경로에 대한 보장이 아닙니다. 편집된 게시물 작업에는 동일한 PM 필터가 적용되지 않습니다. 외부 제공업체를 구성하기 전에 이 사항을 고려하세요.
카테고리 또는 태그별 감정 탐색
- **관리자 → 보고서 → 감정 분석(Admin → Reports → Sentiment analysis)**으로 이동하거나, 사이트의
/admin/reports/sentiment_analysis로访问하세요. - 시작 및 종료 날짜를 선택합니다.
- 결과를 그룹화하기 위해 “카테고리(Category)” 또는 “태그(Tag)”를 선택합니다.
- 해당 카테고리 또는 태그 필터를 사용하여 결과를 좁힙니다. 카테고리 필터링은 하위 카테고리를 포함하는 옵션도 제공합니다.
- 각 그룹의 총합과 긍정, 부정, 중립 세부 사항을 읽습니다.
- 그룹 행을 클릭하여 차트와 원본 게시물을 확인합니다.
이 예시에는 9개의 분류된 게시물이 포함되어 있습니다. 긍정 3개, 부정 3개, 중립 3개입니다. 이 보고서에는 중립 게시물도 포함됩니다.
세부 정보 보기에서는 다음과 같은 작업을 수행할 수 있습니다.
- “전체(All)”, “긍정(Positive)”, “중립(Neutral)” 또는 “부정(Negative)”을 선택하여 로드된 게시물을 필터링합니다.
- 게시물 토픽을 열어 주변 토론을 읽습니다.
- 차트 옆의 링크 아이콘을 사용하여 해당 보고서 보기의 URL을 복사합니다. 받는 사람도 직원(staff) 접근 권한이 필요합니다.
- “뒤로(Back)”를 클릭하여 그룹화된 결과로 돌아갑니다.
보고서 날짜는 분류가 실행된 시점이 아니라 게시물이 생성된 시점을 참조합니다. 토픽에 여러 태그가 있는 경우 게시물이 여러 태그 그룹에 기여할 수 있으므로, 태그 총합을 더하면 동일한 게시물이 두 번 이상 집계될 수 있습니다.
전체 감정 추세 읽기
관리자 → 보고서에서 “전체 감정(Overall sentiment)” 보고서를 열거나 /admin/reports/overall_sentiment로 이동하세요.
점수는 다음과 같습니다.
긍정 게시물 수 − 부정 게시물 수
게시물이 해당 그룹에 집계되려면 긍정 또는 부정 점수가 0.6보다 커야 합니다. 어느 쪽도 임계값을 초과하지 않으면 그룹화 된 보고서에서는 게시물을 중립으로 간주합니다. 이 임계값은 고정되어 있으며 변경할 수 있는 사이트 설정이 없습니다.
전체 감정은 평균 확률이나 행복도 백분율이 아닌 순수 게시물 수입니다. 긍정 게시물 3개와 부정 게시물 3개가 있으면 중립 게시물의 수와 관계없이 전체 점수는 0이 됩니다. 평평한 추세를 강한 의견의 부재로 해석하기 전에 그룹화 세부 정보와 원본 토론을 확인하세요.
정서 탐색
각 정서에는 관리자 → 보고서 아래에 보고서가 있습니다. 예를 들어 “분노(Anger)”에 대해 /admin/reports/emotion_anger를, “호기심(Curiosity)”에 대해 /admin/reports/emotion_curiosity를访问하세요. 추세를 탐색하기 위해 날짜 범위와 일별, 주별 또는 월별 그룹화를 선택하세요.
정서 보고서는 해당 레이블의 점수가 0.1보다 큰 게시물을 집계합니다. 이 임계값 또한 고정되어 있습니다. 하나의 게시물에 여러 정서가 해당될 수 있으므로, 정서 총합은 상호 배타적이지 않습니다.
정서를 기준으로 토픽을 필터링할 수도 있습니다. /filter?q=order:emotion_anger를访问하여 일치하는 토픽을 찾으세요. 이 토픽들은 평균 정서 점수가 아닌, 해당되는 분노 분류된 게시물의 수에 따라 순위가 매겨집니다. 순서를 반전시키려면 order:emotion_anger-asc를 사용하세요. activity-after: 필터가 없으면, 이 정렬은 지난 1년 동안의 해당되는 게시물을 집계합니다. 일반적인 토픽 목록 접근 권한이 여전히 적용됩니다.
사용 가능한 정서 레이블
감탄, 재미, 분노, 짜증, 승인, 배려, 혼란, 호기심, 욕망, 실망, 불승인, 혐오, 부끄러움, 흥분, 두려움, 감사, 슬픔, 기쁨, 사랑, 신경과민, 중립, 낙관, 자부심, 깨달음, 안도, 후회, 슬픔, 놀람.
제한 사항 이해
- 분류는 모델 의존적입니다. 냉소, 인용 자료, 전문 용어 및 다국어 토론은 오해될 수 있습니다. 언어 범위와 정확도는 선택한 모델에 따라 달라집니다. 서로 다른 백엔드의 점수는 반드시 동일한 기준으로 보정되는 것은 아닙니다.
- 보고서는 저장된 결과만 다룹니다. 백엔드가 작동하지 않거나, 처리가 일시 중지되었거나, 과거 데이터 커버리지가 부족하면 활성화된 기능에서도 비어 있거나 불완전한 보고서가 생성될 수 있습니다.
- 기존 분류는 재사용됩니다. 분류된 게시물을 편집해도 결과가 자동으로 대체되지 않습니다. 동일한 백엔드 내에서 선택된 에이전트나 의사 결정 모델을 변경해도 기존 결과가 재분류되지 않습니다.
- 백엔드를 변경하면 보고서의 결과 원본이 변경됩니다. 이전 결과는 선택된 백엔드로 변환되지 않습니다. 누락된 분류가 처리되는 동안 보고서가 비어 있을 수 있습니다.
- 보고서에서 개인 메시지는 제외됩니다. 이 보고서 제외 기능은 위에 설명된 데이터 처리 제한과 별개입니다.
누락되거나 예상치 못한 결과 문제 해결
| 문제 | 확인할 사항 |
|---|---|
| 활성화 후 결과가 없음 | 관련 기능이 활성화되었는지, 백엔드가 설정되었는지, “시간당 게시물 수”가 양수인지, 백그라운드 작업이 실행 중인지 확인하세요. 5분 스캔 및 처리 큐에 시간을 허용하세요. |
| 감정은 작동하지만 정서가 비어 있음 | “정서”를 별도로 활성화하고 설정하세요. 감정 전용의 전용 엔드포인트는 정서 분류를 제공하지 않습니다. |
| 오래된 날짜에 결과가 없음 | 게시물 경과 시간 제한을 늘리고, 처리 시간을 허용하며, 보고서 범위에 게시물 생성 날짜가 포함되는지 확인하세요. |
| 전용 엔드포인트에서 오류 반환 | URL, 자격 증명, 모델 및 응답 형식을 확인하세요. 어댑터는 평면형 레이블 및 점수 배열을 기대하며, positive, neutral, negative와 같은 감정 레이블을 사용합니다. 임의의 챗 응답이나 LABEL_0 형식의 레이블은 기대하지 않습니다. |
| 개인 네트워크 엔드포인트에 연결할 수 없음 | 연결성을 확인하고, 필요시 신뢰할 수 있는 추론 엔드포인트의 호스트 이름이나 IP를 allowed_internal_hosts에 추가하세요. 서버 측 요청 위조(SSRF) 보호 기능을 광범위하게 비활성화하지 마세요. |
| 편집 또는 모델 선택 후 결과가 변경되지 않음 | 기존 결과가 재사용됩니다. 콘텐츠를 편집하거나 다른 모델을 저장한다고 해서 전체 재분류가 스케줄링된다고 가정하지 마세요. |
| 필터에 집계 수보다 적은 게시물이 표시됨 | 집계는 전체 그룹을 설명하는 반면, 감정 탭은 로드된 게시물을 필터링합니다. 더 많은 결과를 로드하는지 확인하고 불일치를 조사할 때 원본 토픽을 열어보세요. |
관리자는 **관리자 → 플러그인 → AI → 로그(Admin → Plugins → AI → Logs)**에서 에이전트 및 의사 결정 모델 요청 기록을 검토할 수 있습니다. 전용 엔드포인트 장애를 포함하여 백그라운드 분류 오류에 대해 /logs를 확인하세요. 로그 내용에는 게시물 텍스트와 모델 응답이 포함될 수 있으므로 민감하게 다루세요. 진단 정보를 공유하기 전에 자격 증명과 개인 콘텐츠를 제거하세요.



