Skip to main content

오류 형식

모든 오류는 일관된 JSON 형식을 따릅니다:

오류 유형

일반적인 오류 및 해결책

401 — 잘못된 API Key

해결책: API key가 올바르고 취소되지 않았는지 확인하세요.

403 — 제공업체 접근 불가

해결책: API key에 allowed_providers 제한이 있습니다. 다른 키를 사용하거나 관리 API를 통해 허용된 제공업체를 업데이트하세요.

429 — 속도 제한

해결책: 지수 백오프를 구현하세요. 키의 속도 제한을 높이는 것을 고려하세요.

502 — 업스트림 실패

해결책: LLM 제공업체가 오류를 반환했거나 연결할 수 없습니다. ARouter는 자동으로 키 페일오버를 처리하지만 제공업체 자체에 문제가 있을 수 있습니다. 다시 시도하거나 다른 제공업체로 전환하세요.

코드에서 오류 처리

재시도 전략

프로덕션 애플리케이션에서는 다음을 권장합니다:
  1. 429와 502에는 지수 백오프로 재시도
  2. 400, 401, 403은 재시도하지 않기 — 영구적인 오류
  3. 최대 재시도 횟수 설정 (예: 3회)
  4. 멀티 모델 라우팅 고려 — 하나의 모델이 요청을 처리할 수 없을 경우 modelsroute를 통해 순서가 있는 후보 목록 전송

스트리밍 중 오류 처리

스트리밍(stream: true)을 사용할 때 오류 동작은 발생 시점에 따라 다릅니다:
  • Token이 전송되기 전 — ARouter는 비 200 상태 코드와 함께 표준 HTTP 오류 응답을 반환합니다. 비스트리밍 오류와 동일하게 처리하세요.
  • Token이 전송된 후 — HTTP 상태는 이미 200 OK입니다. 오류는 스트림 본문의 SSE 이벤트로 전달됩니다.
스트림 도중 오류는 다음과 같습니다:
각 청크의 finish_reason을 확인하세요. "error"이면 스트림이 비정상적으로 종료된 것입니다.
완전한 스트리밍 오류 처리 예제는 스트리밍 가이드를 참조하세요.