Parent: #214
배경
#214 의 sub-issue. LLM 룰 자동 생성 (internal/processor/parser/rule/llmgen/) 이 라이브 9분 동안 [llm:gemini:rate_limit] 188건 실패. 같은 host 에 대해 in-flight 차단 (117건) 도 일부 동작하나 rate_limit hit 자체를 줄이는 backoff/회피 로직이 부족.
작업 내용
- Backoff 강화 — Gemini API 호출 실패 시 exponential backoff (initial 5s → max 5min, jitter)
- Circuit breaker (host 단위) — 동일 host 의 LLM 호출이 N회 연속 rate_limit hit 시 일정 시간 (예: 10분) 차단
- rate_limit 응답 감지 — Gemini SDK 의 rate-limit 응답 코드/문자열을 명확히 구분해서 일반 에러와 다르게 처리
영향 영역
internal/processor/parser/rule/llmgen/ — generator 의 호출 wrapper / retry 로직
pkg/llm/measured.go — 가능하면 provider-agnostic 한 backoff/breaker 추가
internal/processor/parser/rule/llmgen/generator.go — in-flight 차단 + circuit breaker 통합
완료 조건
참고
- 진단 로그: debug.log
- 관련 코드:
internal/processor/parser/rule/llmgen/generator.go, pkg/llm/measured.go
Parent: #214
배경
#214 의 sub-issue. LLM 룰 자동 생성 (
internal/processor/parser/rule/llmgen/) 이 라이브 9분 동안[llm:gemini:rate_limit]188건 실패. 같은 host 에 대해 in-flight 차단 (117건) 도 일부 동작하나 rate_limit hit 자체를 줄이는 backoff/회피 로직이 부족.작업 내용
영향 영역
internal/processor/parser/rule/llmgen/— generator 의 호출 wrapper / retry 로직pkg/llm/measured.go— 가능하면 provider-agnostic 한 backoff/breaker 추가internal/processor/parser/rule/llmgen/generator.go— in-flight 차단 + circuit breaker 통합완료 조건
참고
internal/processor/parser/rule/llmgen/generator.go,pkg/llm/measured.go