langchain RateLimiters 사용하기 (Python 전용)
애플리케이션이나 evaluator에서 langchain Python ChatModels를 사용하는 경우, 모델에 rate limiter를 추가하여 모델 제공업체 API로 요청이 전송되는 빈도를 클라이언트 측에서 제어하고 속도 제한 오류를 방지할 수 있습니다.
지수 백오프를 사용한 재시도
속도 제한 오류를 처리하는 매우 일반적인 방법은 지수 백오프를 사용한 재시도입니다. 지수 백오프를 사용한 재시도는 각 재시도 사이에 (지수적으로) 증가하는 대기 시간을 두고 실패한 요청을 반복적으로 재시도하는 것을 의미합니다. 이는 요청이 성공하거나 최대 요청 횟수에 도달할 때까지 계속됩니다.langchain 사용 시
langchain 컴포넌트를 사용하는 경우 .with_retry(...) / .withRetry() 메서드를 사용하여 모든 모델 호출에 재시도를 추가할 수 있습니다:
langchain Python 및 JS API 레퍼런스를 참조하세요.
langchain 미사용 시
langchain을 사용하지 않는 경우 tenacity (Python) 또는 backoff (Python)와 같은 다른 라이브러리를 사용하여 지수 백오프를 사용한 재시도를 구현하거나 처음부터 직접 구현할 수 있습니다. 이를 수행하는 방법의 예시는 OpenAI 문서를 참조하세요.
max_concurrency 제한
애플리케이션과 evaluator에 대한 동시 호출 수를 제한하는 것은 모델 호출 빈도를 줄이고 속도 제한 오류를 방지하는 또 다른 방법입니다.max_concurrency는 evaluate() / aevaluate() 함수에서 직접 설정할 수 있습니다. 이는 데이터셋을 스레드로 효과적으로 분할하여 평가를 병렬화합니다.