Skip to content

🐛 Fix: ExamForge Gemini→OpenAI→Claude 폴백 체인 안정화 - #25

Merged
algocean1204 merged 1 commit into
developfrom
fix/examforge-fallback-chain
Jun 16, 2026
Merged

algocean1204 merged 1 commit into
developfrom
fix/examforge-fallback-chain

Conversation

@algocean1204

Copy link
Copy Markdown
Contributor

Summary

ExamForge 텍스트 생성 폴백 체인(Gemini → OpenAI → Claude Sonnet)이 실제 장애 상황에서 끊기거나 지연되던 문제를 수정했습니다.

폴백 키 해석

  • CLAUDE_SONNET_API_KEY 우선, 없으면 ANTHROPIC_API_KEY 공유 (루트 text_config.py와 동일 규칙)
  • ANTHROPIC_API_KEY만 있어도 Claude 폴백이 빠지지 않도록 수정

폴백 체인 동작

  • gemini_flash 소진 기록이 있으면 primary를 건너뛰고 OpenAI→Claude부터 시도
  • 소진된 폴백 단계는 건너뜀
  • OpenAI SDK max_retries=0으로 수 초 대기 후 Claude 전환 지연 완화
  • Anthropic SDK RateLimitError를 공유 RateLimitError로 정규화해 체인 전파 일관화

Test plan

  • pytest app/modules/ExamForge_V1/tests/test_failover_chain.py — 14 passed
  • 신규: test_skips_exhausted_gemini_primary
  • 신규: test_stage_factories_claude_from_sonnet_key_only

- CLAUDE_SONNET_API_KEY 우선 조회로 Claude 폴백 누락 방지
- gemini_flash 소진 기록 시 primary 건너뛰기
- OpenAI SDK max_retries=0으로 Claude 전환 지연 완화
- Anthropic RateLimitError를 공유 RateLimitError로 정규화
- 폴백 체인 회귀 테스트 2건 추가
@algocean1204
algocean1204 merged commit 746c4b4 into develop Jun 16, 2026
1 check passed
@algocean1204
algocean1204 deleted the fix/examforge-fallback-chain branch June 16, 2026 08:42
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.

1 participant