Skip to content

#602 [Feat] AI 철학자 반박 프롬프트 고도화 (철학자 프로필·수준별 기준·말풍선) - #605

Open
si-zero wants to merge 6 commits into
devfrom
feat/#602
Open

si-zero wants to merge 6 commits into
devfrom
feat/#602

Conversation

@si-zero

@si-zero si-zero commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

#️⃣ 연관된 이슈

📝 작업 내용

기획의 「AI 철학자 프롬프트 설정」 문서를 커스텀 배틀 AI 철학자 반박에 반영했습니다.

✨ Feat

내용 파일
토론용 철학자 프로필 10명 (핵심 관점·말투와 논증·피할 표현·육각형 점수 → 반영 등급) DebatePhilosopherProfile.java
토론 프롬프트 debate-v4: 수준별 표현 기준(중학생·고등학생·성인), 문체(초급 해요체·중급/고급 합니다체), 의견 성향 초점, 대화체, 질문으로 끝맺기, 말풍선 경계 ClassDebatePrompts.java
AI 주장을 말풍선 2~3개로 나누기 (모델 줄바꿈 사용, 어기면 서버가 문장 기준으로 다시 묶음) DebateBubbles.java, ClassDebateContentValidator.java
토론 응답 메시지에 bubbles 추가 ClassDebateResponse.java, ClassDebateSessionService.java
주제 제안 topic-v3: 철학자 선정은 핵심 관점·의견 근거 우선, 성향 등급은 보조 기준 ClassTopicPrompts.java, TopicPhilosopherProfiles.java
토론 모델 분리 openai.debate.model (기본 gpt-5.4-mini, OPENAI_DEBATE_MODEL 로 변경 가능). 리포트·주제 제안은 gpt-4o-mini 유지 ClassReportAiClient.java, ClassDebateService.java, application.yml
OpenAI 호출 파라미터 max_tokens → max_completion_tokens (gpt-5 계열은 max_tokens 를 받지 않음. gpt-4o·4.1 계열도 지원 확인) ClassReportAiClient.java
AI 주장 길이: 서버 검증은 120~500자로 완화, 프롬프트는 "최소 200자 이상"을 시스템 규칙과 입력 [분량] 줄에 함께 넣어 강화. 보정 호출 안내는 200자 기준 ClassDebateContentValidator.java, ClassDebatePrompts.java
API 명세·ERD 메모 갱신 class-api.md, class.puml

📌 공유 사항

  1. 모델 선정: gpt-5.4-mini (응답 속도 + 팀 결정). 6개 모델 비교 결과는 「철학자 반박, 모델별 결과물」 문서에 정리했습니다.
모델 실패한 토론 3인칭 서술 평균 응답 30명 클래스 반박 비용
gpt-4o-mini 0 6 2.9초 약 57원
gpt-4.1-mini 1 2 3.3초 약 144원
gpt-4.1 0 0 2.1초 약 766원
gpt-5.4-mini (검증 200~500자) 7 0 1.6초 약 390원
gpt-5.4-mini (검증 120~500자) 0 0 1.9초 약 280원
gpt-5.4-mini (검증 120~500자 + 최소 200자 안내 강화, 적용) 0 0 1.9초 약 300원
gpt-5.6-luna 0 0 5.0초 약 102원
gpt-6-luna 0 0 8.3초 약 60원

같은 조건 실측: 배틀 2개 × 수준 3개 × 철학자 2명 × 3라운드 = 모델당 36라운드. 비용은 OpenAI 공식 단가(11/4), 1달러 1,450원 기준 평균값입니다.

  1. 길이 검증 완화 + 분량 안내 강화: gpt-5.4-mini 는 실패가 전부 200자 미달(114198자)이었습니다. 검증을 120자로 낮추자 실패는 0건이 됐지만 최소 151자까지 짧아져(36개 중 14개 200자 미만), 프롬프트에 "최소 200자 이상"을 강화했습니다. 강화 후 2회 실측(72라운드): 최소 176189자, 중간 240266자, 200자 미만 34건, 실패 0건입니다. 기획 확인 기준(200~500자)보다 짧은 응답이 드물게 나갈 수 있어 기획 공유가 필요합니다.
  2. 프론트 공유: 토론 메시지에 bubbles(AI 주장 2~3개, 참가자 반박 1개)가 추가됐습니다. content 는 전체 글이며 AI 주장은 말풍선 사이에 줄바꿈이 들어 있습니다.
  3. 기획 문서의 육각형 점수는 토론 전용(DebatePhilosopherProfile)으로 두고, 마이페이지 철학자 유형 점수(PhilosopherType)는 바꾸지 않았습니다.
  4. 기획 문서의 칸트 예시 문장은 PRD §11("현재 주제와 무관한 샘플 문장은 프롬프트에 섞지 않는다")에 따라 프롬프트에 넣지 않았습니다.

🧪 테스트

  • 최신 dev 머지 후 전체 테스트 638건 중 633건 성공. 실패 5건은 dev 에 이미 있던 펀딩 테스트(AdminFundingApiIntegrationTest 2건, TumblbugFundingApiIntegrationTest 3건)로 이번 변경과 무관합니다.
  • ClassReportAiClient 로 gpt-5.4-mini 실측 36라운드 × 2회 (분량 안내 강화 후): 실패 0, 3인칭 0, 첫 응답 위반 0·1건(focus 값 오류, 보정 1회로 통과)
  • gpt-4o-mini·gpt-4.1-mini 에 max_completion_tokens 호출 확인 (리포트·주제 제안 영향 없음)

✅ 체크리스트

  • 컨벤션에 맞는 Type을 선택했나요?
  • Merge 하려는 브랜치가 올바르게 설정되어 있나요?
  • 로컬에서 실행했을 때 에러가 발생하지 않나요?

💬 리뷰 요구사항

  1. 수준별 문체(초급 해요체, 중급·고급 합니다체)는 기획 문서 예시 기준이라 기획 확인이 남아 있습니다.
  2. AI 주장 120~500자 검증(프롬프트는 200자 이상 요구)도 기획 공유가 필요합니다.

@si-zero si-zero self-assigned this Nov 2, 2026
@si-zero si-zero added the ✨ Feat (기능 추가) 새로운 기능을 추가할 때 사용합니다. label Nov 2, 2026

This branch has not been deployed

No deployments
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