Skip to content

feat(report): 일간 리포트 생성 모델 50대50 랜덤 배정 - #231

Merged
1Seob merged 2 commits into
developfrom
feat/report-daily-model-selection
Aug 23, 2026
Merged

feat(report): 일간 리포트 생성 모델 50대50 랜덤 배정#231
1Seob merged 2 commits into
developfrom
feat/report-daily-model-selection

Conversation

@1Seob

@1Seob 1Seob commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator

📝 요약(Summary)

  • 모든 환경에서 DailyReport 생성 시 gpt-4o-minigpt-5.6-luna를 각각 50% 확률로 선택합니다.
  • 선택된 모델과 요청 옵션을 하나의 후보로 관리해 생성 로그와 실제 LLM 호출의 정합성을 보장합니다.

주요 변경사항

  • 모델 설정

    • daily-report.llm.candidates에 모델별 가중치와 요청 옵션을 구성했습니다.
    • 후보 가중치 합계, 모델 중복, 필수 옵션을 애플리케이션 시작 시 검증합니다.
    • dev 전용 모델 설정을 제거해 local·dev·prod·test가 동일한 후보 목록을 사용하도록 통합했습니다.
  • 생성 모델 선택

    • 누적 가중치 기반 DailyReportModelSelector를 추가했습니다.
    • 생성 시도마다 모델을 한 번만 선택하고 동일한 ModelCandidate를 생성 로그와 실제 LLM 요청에 전달합니다.
    • 실패 후 재시도 시에는 이전 선택을 유지하지 않고 모델을 새로 선택합니다.
  • 테스트

    • 50:50 선택 구간의 0·49·50·99 경계와 호출별 재추첨을 검증했습니다.
    • 모든 프로필의 공통 후보 설정 바인딩과 잘못된 설정 검증을 보강했습니다.
    • 두 모델의 max_tokens·max_completion_tokens, temperature, reasoning effort 적용을 검증했습니다.
    • 선택된 모델과 생성 로그·LLM 호출 모델이 일치하는지 확인했습니다.

검증

  • .\gradlew.bat compileJava 통과
  • DailyReport 관련 집중 테스트 15개 통과
    • DailyReportModelSelectorTest
    • DailyReportLlmPropertiesTest
    • DailyReportLlmClientTest
    • DailyReportServiceTest
  • git diff --check 통과

참고 / 리스크

  • 모델 선택 결과는 리포트 엔티티에 저장하지 않으며, 생성 시도 단위로 생성 로그에 기록됩니다.

🔗 Related Issue

  • Closes:

💬 공유사항

✅ PR Checklist

PR이 다음 요구 사항을 충족하는지 확인하세요.

  • PR 제목을 커밋 메시지 컨벤션에 맞게 작성했습니다.

1Seob added 2 commits August 23, 2026 15:37
모든 프로필에서 gpt-4o-mini와 gpt-5.6-luna를 동일 가중치로 선택하고, 선택된 ModelCandidate를 생성 로그와 실제 LLM 요청에 함께 전달해 모델·옵션
정합성을 보장함
@coldsunn

Copy link
Copy Markdown
Collaborator

LGTM!

@1Seob
1Seob merged commit 3096a1b into develop Aug 23, 2026
1 check passed
@1Seob
1Seob deleted the feat/report-daily-model-selection branch August 23, 2026 08:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants