KURE

한도와 에러

Rate limit

한도기본원문 저장 동의 시
분당 요청 (RPM)60120 (×2)
분당 토큰 (TPM)200,000400,000 (×2)
일일 토큰4,000,00040,000,000 (×10)

모든 한도는 계정 단위입니다. 키를 여러 개 만들어도 한도는 늘지 않고 모든 키가 함께 씁니다. 임베딩·희소 임베딩·리랭크 API도 같은 한도를 함께 씁니다.

  • 한 요청에 텍스트를 최대 8개(리랭크는 문서 100개)까지 묶을 수 있고 요청 수는 1회로 셉니다. 긴 문서를 배치로 보내면 RPM보다 TPM에 먼저 닿습니다.
  • 분당 한도는 1분 단위로 끊기지 않고 계속 채워집니다. 예를 들어 RPM 60이면 1초에 1회씩 회복됩니다.
  • 토큰은 요청이 끝난 뒤 실제 사용량(응답의 usage)만큼 차감합니다. 리랭크는 질의를 문서 수만큼 반복해서 셉니다. 남은 토큰보다 큰 요청도 처리되지만 그만큼 마이너스가 되어, 회복될 때까지 다음 요청이 429가 됩니다.
  • 일일 한도는 한국 시간 자정에 초기화됩니다.
  • 데이터 정책의 원문 저장에 동의하면 분당 한도는 2배, 일일 토큰은 10배로 늘어나며, 대시보드 → 설정에서 언제든 바꿀 수 있습니다. 현재 한도와 사용량은 대시보드 → 사용량에서 볼 수 있습니다.

한도 상향

연구·서비스에 더 큰 한도가 필요하면 한도 상향 요청을 보내 주세요. 계정의 최근 사용량이 함께 전달되며, 확인 후 계정별로 한도를 올려 드립니다. 기관 단위 이용이나 전용 용량이 필요하면 기관·엔터프라이즈 문의로 연락 주세요.

응답 헤더

성공한 요청과 한도 초과 응답에는 다음 헤더가 붙습니다.

헤더설명
x-ratelimit-limit-requests분당 요청 한도
x-ratelimit-remaining-requests지금 남은 요청 수
x-ratelimit-limit-tokens분당 토큰 한도
x-ratelimit-remaining-tokens지금 남은 토큰 수
retry-after한도 초과 시, 다시 보내도 되는 시점까지 남은 초

에러 형식

에러는 OpenAI와 같은 형식입니다.

{
  "error": {
    "message": "Rate limit reached for requests per minute (60 RPM). Retry after 1s.",
    "type": "rate_limit_error",
    "param": null,
    "code": "rate_limit_exceeded"
  }
}
상태code의미대응
400null파라미터가 잘못됨. param에 문제 필드가 있습니다.요청 수정
400context_length_exceeded임베딩할 텍스트 하나가 8,192 토큰을 넘음 (희소 임베딩·리랭크는 잘라서 처리)텍스트를 나누어 다시 요청
401missing_api_keyAuthorization 헤더가 없음키 추가
401invalid_api_key키가 틀렸거나 폐기됨대시보드에서 키 확인
404model_not_found없는 모델 ID, 또는 다른 엔드포인트용 모델 (메시지에 맞는 엔드포인트)GET /models로 확인
410model_retired서빙이 끝난 모델메시지의 대체 모델로 옮기기 (모델 수명 주기)
429rate_limit_exceeded내 한도를 넘음retry-after만큼 기다린 뒤 재시도
429overloaded서버가 일시적으로 바쁨잠시 후 재시도
502worker_error추론 서버 내부 오류잠시 후 재시도, 계속되면 kure.nlpai@gmail.com
503no_worker_available, worker_failed, api_unavailable추론 서버 점검·재시작 중retry-after만큼 기다린 뒤 재시도
504timeout추론 시간 초과입력을 줄여 재시도

재시도

429와 5xx는 다시 보내면 대부분 성공합니다. retry-after 헤더가 있으면 그만큼 기다리고, 없으면 지수 백오프로 재시도하세요. OpenAI SDK는 이 동작이 기본으로 들어 있습니다(max_retries, 기본 2회).

client = OpenAI(
    base_url="https://kure.kullm.ai/api/v1",
    api_key=os.environ["KURE_API_KEY"],
    max_retries=5,
)

400, 401, 404는 다시 보내도 같은 결과이므로 요청을 고쳐야 합니다.