Auto Routing

Auto Routing (Auto Router)

LiteLLM Auto Router는 요청을 가장 적합한 LLM 모델/배포로 자동 라우팅하는 기능이에요. 상태(health) 기반 라우팅, 점수(score) 기반 라우팅, 태그 기반 라우팅, 쿨다운 관리, 폴백 등을 결합해 비용과 품질을 최적화해요.

출처: 문서

본문

개요 (Overview)

Auto Router는 auto_router 모델을 사용해 LiteLLM이 배포 목록의 상태와 점수를 평가하고, 요청을 가장 적합한 모델로 자동 전달하게 해요. 이를 통해:

  • 모델 장애·지연 시 자동 페일오버
  • 비용·품질 균형을 위한 점수 기반 경로 선택
  • 쿨다운(cooldown)으로 실패 모델 일시 제외
  • 서로 다른 팀/키/요청 유형별 라우팅 규칙

Health 기반 라우팅 (Health-based routing)

LiteLLM은 각 배포에 대해 헬스 체크를 수행해 정상 상태를 추적하고, 실패가 반복되는 배포는 자동으로 쿨다운 처리해 다른 정상 배포로 요청을 보내요. router_settingscooldown_time, disable_cooldowns, allowed_fails, num_retries 등으로 이를 제어할 수 있어요.

router_settings:
  cooldown_time: 30         # 초 단위 쿨다운
  allowed_fails: 3          # 쿨다운 전 허용 실패 수
  num_retries: 2            # 재시도 횟수
  max_fallbacks: 5

Score 기반 라우팅 (Score-based routing)

Auto Router는 각 요청에 대해 라우팅 점수를 계산하고 임계값에 따라 모델을 선택해요. 점수는 비용, 지연, 배포 상태 등을 종합해 산출돼요.

주요 파라미터:

  • SEMANTIC_THRESHOLD / DEFAULT_THRESHOLD - 라우팅 결정용 점수 임계값
  • auto_router_default_model - 어떤 조건에도 맞지 않을 때 사용할 기본 모델
  • auto_router_embedding_model - 시맨틱 매칭용 임베딩 모델 (시맨틱 라우팅 사용 시)
  • auto_router_config_path - 라우팅 규칙(utterances 등) 파일 경로

요청 본문이나 콘피그에서 model_router_score_threshold 같은 파라미터로 요청별 임계값을 조정할 수도 있어요.

설정 예시 (Configuration example)

model_list:
  - model_name: gpt-5.6-luna
    litellm_params:
      model: openai/gpt-5.6-luna
      api_key: os.environ/OPENAI_API_KEY
router_settings:
  cooldown_time: 30
  allowed_fails: 3
  num_retries: 2
  max_fallbacks: 5

주요 라우팅 파라미터 (Key routing parameters)

파라미터 설명
num_retries 실패 시 재시도 횟수
allowed_fails 쿨다운 전 허용되는 실패 수
cooldown_time 실패 배포를 제외할 시간(초)
disable_cooldowns 쿨다운 비활성화
max_fallbacks 시도할 최대 폴백 수
routing_strategy simple-shuffle, least-busy, usage-based-routing 등 선택
model_router_score_threshold 점수 기반 라우팅 임계값

참고 사항 (Notes)

Auto Router의 전체 동작 원리, 시맨틱 라우팅 상세, 태그 기반 라우팅, 베이즈/추정 라우팅, 벤치마크 결과, 그리고 각 라우팅 전략의 권장 설정은 원문 문서를 참고하세요. 이 페이지는 LiteLLM의 가장 광범위한 기능 중 하나를 다루므로, 배포 목적(비용 우선 vs 성능 우선)에 따라 전략과 임계값을 설계해야 해요.