Skip to content

#563 [Feat] AI 철학자 토론 반박 입력 차단 (위협·개인정보) - #564

Merged
si-zero merged 1 commit into
devfrom
feat/#563
Oct 22, 2026
Merged

si-zero merged 1 commit into
devfrom
feat/#563

Conversation

@si-zero

@si-zero si-zero commented Oct 22, 2026

Copy link
Copy Markdown
Member

#️⃣ 연관된 이슈

📝 작업 내용

✨ Feat

내용 파일
반박 저장 전 입력 검사: 차단되면 저장하지 않고 라운드도 쓰지 않음(PRD §8, §11). 검사는 세션 잠금 밖에서 수행 ClassDebateInputGuard.java, ClassDebateService.java
개인정보 규칙 검사: 휴대전화·유선전화(구분자 필수)·이메일·주민등록번호(생년월일 형식)·카드번호. 걸리면 400 CLASS_400_DEBATE_PERSONAL_INFO, AI 호출 없음 PersonalInfoDetector.java
OpenAI Moderation 클라이언트(omni-moderation-latest, 무과금이라 ai_jobs 미기록). 걸린 범주 이름만 반환 ClassModerationClient.java, application.yml
차단 범주는 위협(harassment/threatening, hate/threatening), 미성년자 성적 표현, 자해 방법, 폭력적 불법행위만. 걸리면 400 CLASS_400_DEBATE_BLOCKED ClassDebateInputGuard.java
에러 코드 2개 추가, Swagger·클래스 API 명세서 반영 ErrorCode.java, ClassDebateController.java, docs/api-specs/class-api.md

🐛 Fix

내용 파일
클래스 API 명세서의 주제 제안 요청 제한 표기 정정 (초안별 → 이용권별 분당 2회) docs/api-specs/class-api.md

📌 공유 사항

  1. 민감 주제라는 이유로 정상 토론을 막지 않도록(PRD §9) violence, hate, harassment 같은 넓은 범주는 막지 않습니다. 범죄·처벌·폭력을 다루는 논증은 그대로 제출됩니다.
  2. Moderation API 에 장애가 나면 토론을 멈추지 않고 통과시키고 경고 로그만 남깁니다. 반박은 AI 프롬프트에서 이미 비신뢰 데이터로 다룹니다.
  3. 반박 원문은 로그에 남기지 않고, 차단 시 걸린 범주 이름만 남깁니다.
  4. 길이 규칙을 벗어난 반박은 Moderation 을 부르지 않고 기존처럼 400 CLASS_400_DEBATE_REPLY 가 납니다. 개인정보 검사는 길이와 상관없이 먼저 합니다.
  5. 테스트: 개인정보 판별 단위 테스트 15건(연도·통계 숫자 오탐 없음 포함), 토론 통합 테스트 2건 추가, 전체 592건 통과.

✅ 체크리스트

  • Assignees에 본인을 선택했나요?
  • 컨벤션에 맞는 Type을 선택했나요?
  • Development에 이슈를 연동했나요?
  • Merge 하려는 브랜치가 올바르게 설정되어 있나요?
  • 컨벤션을 지키고 있나요?
  • 로컬에서 실행했을 때 에러가 발생하지 않나요?

@si-zero si-zero added the ✨ Feat (기능 추가) 새로운 기능을 추가할 때 사용합니다. label Oct 22, 2026
@si-zero si-zero self-assigned this Oct 22, 2026
@si-zero si-zero linked an issue Oct 22, 2026 that may be closed by this pull request
4 tasks
@si-zero
si-zero merged commit e821c20 into dev Oct 22, 2026
1 check passed
@si-zero
si-zero deleted the feat/#563 branch October 22, 2026 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feat (기능 추가) 새로운 기능을 추가할 때 사용합니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨ Feat: AI 철학자 토론 반박 입력 차단 (위협·개인정보)

1 participant