요청 한도 오류(‘요청이 너무 많습니다’, ‘요청 한도에 도달했습니다’)는 조직의 요청 한도에 도달했을 때 발생하며, 이는 분당 제출할 수 있는 최대 요청 수와 토큰 수를 의미합니다. 한도에 도달하면 요청 한도가 재설정될 때까지 조직은 요청을 성공적으로 제출할 수 없습니다. 오류 메시지는 다음과 같습니다:
조직 org-exampleorgid123의 gpt-3.5-turbo에 대해 분당 토큰 기준 요청 한도에 도달했습니다.
한도: 분당 10000.000000. 현재: 분당 10020.000000. 이러한 오류는 지수 백오프를 사용해 처리하는 것을 권장합니다. 지수 백오프란 요청 한도 오류가 발생했을 때 잠시 대기한 뒤, 실패한 요청을 다시 시도하는 것을 의미합니다. 요청이 여전히 성공하지 않으면 대기 시간을 늘리고 이 과정을 반복합니다. 이 과정은 요청이 성공하거나 최대 재시도 횟수에 도달할 때까지 계속됩니다.
실패한 요청도 분당 한도에 포함되므로, 요청을 계속 다시 보내는 방식은 효과가 없습니다. 요청 한도는 더 짧은 기간에도 적용될 수 있습니다. 예를 들어 60 RPM 한도에서는 초당 1회 요청만 허용될 수 있으므로, 짧은 시간에 많은 요청이 몰려도 요청 한도 오류가 발생할 수 있습니다. 지수 백오프는 요청 간 간격을 벌려 이러한 오류의 발생 빈도를 줄이는 데 효과적입니다.
Python에서는 지수 백오프 솔루션을 다음과 같이 구현할 수 있습니다:
from openai import OpenAI, RateLimitError
import backoff
client = OpenAI()
@backoff.on_exception(backoff.expo, RateLimitError)
def completions_with_backoff(**kwargs):
response = client.completions.create(**kwargs)
return response(참고: backoff 라이브러리는 서드파티 도구입니다. 프로젝트에 외부 코드를 사용할 때는 각 고객이 직접 충분히 검증할 것을 권장합니다.)
지수 백오프를 구현해도 이 오류가 계속 발생한다면 사용 등급을 높여야 할 수 있습니다. 현재 요청 한도와, 요청 한도를 높이기 위해 신뢰 등급을 올리는 방법은 계정 설정의 한도 섹션에서 확인할 수 있습니다.
