라우팅 그룹 관리
라우팅 그룹 관리 (Manage Routing Groups)
같은 라우터에서 서로 다른 모델에 서로 다른 라우팅 전략을 적용할 수 있는 기능이에요. 예를 들어 gpt-5.6-terra에는 지연 시간 기반 라우팅을, 더 저렴한 모델에는 simple-shuffle을 적용할 수 있어요. proxy_config.yaml을 편집하지 않고 LiteLLM 대시보드에서 관리할 수 있어요.
출처: 문서
본문
라우팅 그룹을 사용하면 같은 라우터에서 서로 다른 모델에 서로 다른 라우팅 전략을 적용할 수 있어요. 예를 들어 gpt-5.6-terra에는 지연 시간 기반 라우팅을, 더 저렴한 모델에는 simple-shuffle을 적용해요. proxy_config.yaml을 편집하지 않고 LiteLLM 대시보드에서 관리할 수 있어요.
개념적 개요와 전체 전략 레퍼런스는 Routing Groups - Per-Model Strategies를 참고하세요.
아래 스크린샷을 클릭하면 전체 Scribe 워크스루가 열려요.
UI를 통한 방법
라우팅 그룹 설정
사이드바에서 General Settings로 이동해 Routing Groups 섹션을 선택해요.
라우팅 그룹 만들기
Add Routing Group을 클릭하고 다음을 채워 넣어요:
- Group name - 고유한 식별자 (예:
anthropic-latency).default라는 이름은 예약되어 있어요. - Models - 모델 목록의
model_name하나 이상. 각 모델은 최대 하나의 그룹에 속할 수 있어요. - Routing strategy - 이 그룹에 적용할 전략 (예:
latency-based-routing,usage-based-routing-v2,simple-shuffle). - Routing strategy args (선택 사항):
ttl,rpm, 또는tpm같은 전략별 오버라이드.
Save를 클릭해 그룹을 만들어요.
라우팅 그룹 편집
테이블에서 그룹 행을 클릭해 열고 필드를 업데이트해요. 예를 들어 Routing strategy args의 ttl을 변경해 전략이 지연 시간 변화에 얼마나 빠르게 반응할지 조정할 수 있어요. Save를 클릭해 적용해요.
라우팅 그룹 삭제
그룹 행에서 Delete 동작을 클릭하고 확인해요. 삭제된 그룹에 있던 모델은 즉시 기본 라우팅 전략으로 돌아가요.
proxy_config.yaml을 통한 방법
프록시 구성 파일에서도 라우팅 그룹을 정의할 수 있어요. UI를 통해 구성한 설정은 유지되고 여기에 정의된 값을 덮어써요.
router_settings:
# fallback strategy for models not in any explicit group
routing_strategy: simple-shuffle
routing_groups:
- group_name: anthropic-latency
models: [claude-sonnet, claude-opus]
routing_strategy: latency-based-routing
routing_strategy_args:
ttl: 3600
전체 스키마, 다중 그룹 예시, 런타임 업데이트 동작은 Routing Groups - Per-Model Strategies를 참고하세요.
요청 테스트하기
그룹을 구성한 뒤 그룹에 속한 모델로의 요청이 실제로 그 그룹의 전략으로 라우팅되는지 확인해 보세요. LiteLLM은 모든 요청에 대해 선택된 routing_group, model, strategy를 기록하므로, 요청을 보내고 프록시 로그를 검사하면 검증이 완료돼요.
1. 요청 보내기
그룹 자체를 호출해요. 그룹 이름은 모델이며 /v1/models에 나타나고 그룹의 전략에 따라 모든 멤버 배포에 걸쳐 라우팅돼요:
curl -X POST 'http://localhost:4000/v1/chat/completions' \
-H 'Authorization: Bearer ***' \
-H 'Content-Type: application/json' \
-d '{
"model": "anthropic-latency",
"messages": [{"role": "user", "content": "ping"}]
}'
또는 라우팅 그룹에 속한 model_name으로 요청을 보내요:
curl -X POST 'http://localhost:4000/v1/chat/completions' \
-H 'Authorization: Bearer ***' \
-H 'Content-Type: application/json' \
-d '{
"model": "claude-sonnet",
"messages": [{"role": "user", "content": "ping"}]
}'
2. 프록시 로그 검사하기
각 요청은 routing_group=<name> model=<model> strategy=<strategy>를 포함한 로그 라인을 생성해요.
일반 로그. 프록시 stdout을 직접 grep해요:
kubectl logs -n litellm -l app=litellm --tail=200 | grep routing_group=
Loki (LogQL). 필드를 추출하고 재포맷해 깔끔하게 읽어요:
{namespace="litellm", pod=~"<your-litellm-pod-regex>"} |= "routing_group="
| regexp `routing_group=(?P<routing_group>\S+) model=(?P<model>\S+) strategy=(?P<strategy>\S+)`
| line_format `{{.routing_group}} {{.model}} {{.strategy}}`
anthropic-latency claude-sonnet latency-based-routing 같은 행이 보이면 요청이 예상 그룹에 도달한 거예요. 대신 default <strategy>가 보이면 모델이 그룹에 속하지 않은 것이므로 그룹의 Models 목록을 확인해 보세요.
참고 사항
- 각
model_name은 최대 하나의 라우팅 그룹에 속할 수 있어요. 겹치는 것은 거부돼요. default라는 그룹 이름은 암시적 폴백 그룹용으로 예약되어 있어요.- 그룹별 상태는 저장 시 재구축되므로 업데이트가 즉시 적용돼요.