API 레퍼런스
속도 제한 및 재시도
#제한 방식
키별 RPM 및 RPD 상한이 있습니다. 429가 발생하면 게이트웨이가 Retry-After를 보내며, 업스트림 제한은 서킷 브레이커로 보호되므로 문제 있는 채널 하나가 전체에 부하를 주지 않습니다.
제한은 키 단위이므로 프로젝트별로 키를 나누면 속도 제한도 분리됩니다. 키별 상한은 콘솔 → API 키에서 수정합니다.
#올바르게 재시도하기
Retry-After가 있으면 따르고, 없으면 지터를 포함한 지수 백오프를 적용하세요. 총 시도 횟수는 제한하세요 — 완전히 다운된 모델은 끝없이 재시도하기보다 호출자에게 알리는 편이 낫습니다.
backoff.py
import time, requests
def call_with_backoff(url, headers, body, tries=5):
for i in range(tries):
r = requests.post(url, headers=headers, json=body)
if r.status_code != 429:
return r
# Respect Retry-After (seconds); fall back to 2**i backoff.
wait = int(r.headers.get("Retry-After", 2 ** i))
time.sleep(wait)
r.raise_for_status()아직 해결되지 않았나요?
요청 ID나 오류 메시지를 보내 주시면 확인해 드리겠습니다.