100 lines
3.3 KiB
YAML
100 lines
3.3 KiB
YAML
# LiteLLM Gateway Configuration — Layer 1 of 2-Layer Architecture
|
|
# Deployed on CT 116 (192.168.68.116) alongside custom router on :9000
|
|
# Last updated: 2026-06-16
|
|
|
|
general_settings:
|
|
master_key: os.environ/LITELLM_MASTER_KEY
|
|
# database_url: using DATABASE_URL env var instead
|
|
store_model_in_db: true
|
|
|
|
model_list:
|
|
# Content-based auto-routing (router picks GPU via 5-tier analysis)
|
|
- model_name: syslog-auto
|
|
litellm_params:
|
|
model: openai/syslog-auto
|
|
api_base: http://router:9000/v1
|
|
api_key: os.environ/ROUTER_API_KEY
|
|
rpm: 600
|
|
|
|
# Individual GPU strict passthrough (exact GPU, no silent fallback)
|
|
- model_name: qwen3.6-35B-A3B
|
|
litellm_params:
|
|
model: openai/qwen3.6-35B-A3B
|
|
api_base: http://router:9000/v1
|
|
api_key: os.environ/ROUTER_API_KEY
|
|
|
|
- model_name: qwen3.6-27B-code
|
|
litellm_params:
|
|
model: openai/qwen3.6-27B-code
|
|
api_base: http://router:9000/v1
|
|
api_key: os.environ/ROUTER_API_KEY
|
|
|
|
- model_name: gemma-4-12b
|
|
litellm_params:
|
|
model: openai/gemma-4-12b
|
|
api_base: http://router:9000/v1
|
|
api_key: os.environ/ROUTER_API_KEY
|
|
|
|
# Guardrails: Pre-call and post-call content moderation
|
|
guardrails:
|
|
- guardrail_name: "input-moderation"
|
|
litellm_params:
|
|
guardrail: openai_moderation
|
|
mode: "pre_call"
|
|
|
|
- guardrail_name: "output-moderation"
|
|
litellm_params:
|
|
guardrail: openai_moderation
|
|
mode: "post_call"
|
|
|
|
- guardrail_name: "harmful-content-filter"
|
|
litellm_params:
|
|
guardrail: litellm_content_filter
|
|
mode: "pre_call"
|
|
categories:
|
|
- category: "harmful_self_harm"
|
|
enabled: true
|
|
action: "BLOCK"
|
|
severity_threshold: "medium"
|
|
- category: "harmful_violence"
|
|
enabled: true
|
|
action: "BLOCK"
|
|
severity_threshold: "medium"
|
|
- category: "harmful_illegal_weapons"
|
|
enabled: true
|
|
action: "BLOCK"
|
|
severity_threshold: "medium"
|
|
|
|
litellm_settings:
|
|
num_retries: 0 # Disabled — our router handles retry logic
|
|
request_timeout: 600 # Match 10-min llama-server timeout
|
|
set_verbose: true
|
|
failure_callback: ["prometheus"] # Export metrics to Prometheus
|
|
sso_callback: "/sso/callback"
|
|
model_cost:
|
|
syslog-auto:
|
|
input_cost_per_token: 0.0
|
|
output_cost_per_token: 0.0
|
|
qwen3.6-35B-A3B:
|
|
input_cost_per_token: 0.0
|
|
output_cost_per_token: 0.0
|
|
qwen3.6-27B-code:
|
|
input_cost_per_token: 0.0
|
|
output_cost_per_token: 0.0
|
|
gemma-4-12b:
|
|
input_cost_per_token: 0.0
|
|
output_cost_per_token: 0.0
|
|
|
|
router_settings:
|
|
routing_strategy: "usage-based-routing" # For external models only
|
|
enable_loadbalancing_on_proxy: false # Disable LiteLLM internal LB
|
|
allowed_fails: 100 # Router returns 503 on saturated GPUs
|
|
# Fallback chains: LiteLLM retries down the chain when router returns saturated.
|
|
# This gives accurate per-model metrics because router no longer silently reroutes.
|
|
# The router's circuit breaker prevents cascading failures to dead GPUs.
|
|
fallbacks:
|
|
- syslog-auto: ["qwen3.6-35B-A3B", "qwen3.6-27B-code", "gemma-4-12b"]
|
|
- qwen3.6-35B-A3B: ["qwen3.6-27B-code", "gemma-4-12b"]
|
|
- qwen3.6-27B-code: ["qwen3.6-35B-A3B", "gemma-4-12b"]
|
|
- gemma-4-12b: ["qwen3.6-27B-code", "qwen3.6-35B-A3B"]
|