Skip to content

fix: bound Gemini requests and map dependency failures - #1

Draft
taehun3165 wants to merge 1 commit into
mainfrom
codex/ai-request-deadline
Draft

fix: bound Gemini requests and map dependency failures#1
taehun3165 wants to merge 1 commit into
mainfrom
codex/ai-request-deadline

Conversation

@taehun3165

Copy link
Copy Markdown
Collaborator

변경 내용

  • Gemini SDK 요청에 20초 HTTP timeout 적용
  • 코드 분석, 문제 생성, 학습 챗봇이 동일한 bounded Gemini client를 사용하도록 통합
  • Gemini timeout을 gRPC DEADLINE_EXCEEDED로 변환
  • 연결 오류, 429 및 5xx를 gRPC UNAVAILABLE로 변환
  • 외부 AI 오류의 내부 상세 내용을 클라이언트에 노출하지 않도록 정리
  • 장시간 순차 모델 fallback 대신 단일 모델의 명확한 제한 시간 사용
  • 세 AI 기능의 timeout과 gRPC 오류 매핑 회귀 테스트 추가

원인

모델 순환 및 fallback 과정에서 외부 Gemini 요청의 종료 시간이 명확히 제한되지 않으면 백엔드 MongoDB 트랜잭션과 프록시 제한 시간보다 AI 응답이 늦어질 수 있었습니다. 이 경우 백엔드는 transaction abort에 따른 500을 반환하거나 프록시에서 504가 발생할 수 있었습니다.

영향

  • 각 Gemini 요청은 최대 20초 내에 종료됩니다.
  • 백엔드는 timeout과 일시적 외부 서비스 장애를 안정적인 gRPC 상태로 구분할 수 있습니다.
  • 코드 분석, 문제 생성, 챗봇이 동일한 제한 정책을 사용합니다.

검증

  • AI 전체 테스트 93개 통과
  • 코드 분석 실제 호출 10/10 성공
  • 문제 생성 실제 호출 10/10 성공
  • 챗봇 최초 9/10 성공, 일시적 UNAVAILABLE 1건은 동일 요청 재시도에서 성공
  • 수정된 백엔드와 연결한 정상, AI 중단, AI 무응답 통합 테스트 통과

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