Overview
The Router class provides load balancing, fallback handling, rate limiting, and intelligent routing across multiple LLM deployments. It’s designed for production environments requiring high availability and reliability.Basic Usage
Router Configuration
Constructor Parameters
List[Dict]
required
List of model deployments to route between. Each deployment must have:
model_name: Identifier for the model grouplitellm_params: Parameters forlitellm.completion()
str
Strategy for selecting deployments:
"simple-shuffle": Random selection (default)"least-busy": Choose deployment with fewest ongoing requests"usage-based-routing": Route based on TPM/RPM limits"latency-based-routing": Route to lowest latency deployment"cost-based-routing": Route to lowest cost deployment
List
Fallback model groups if primary fails.
int
Number of retries on failure. Default: 0
float
Request timeout in seconds. Default: 600
bool
Enable response caching. Default: False
int
Number of allowed failures before cooldown. Default: uses litellm setting
float
Time in seconds to cooldown failed deployment. Default: 1 second
Model List Configuration
Basic Model List
With Rate Limits
With Custom Metadata
Router Methods
Completion
Async Completion
Embedding
Image Generation
Examples
Load Balancing Multiple Providers
Fallback Configuration
Rate Limiting
Cooldown on Failures
Redis Caching
Async Usage
Routing Strategies
Simple Shuffle (Default)
Least Busy
Usage-Based (TPM/RPM)
Latency-Based
Cost-Based
Advanced Features
Model Aliases
Multiple Deployments Per Model
Debugging and Monitoring
Error Handling
Best Practices
- Multiple deployments: Configure at least 2 deployments per model for reliability
- Set rate limits: Configure TPM/RPM to prevent hitting provider limits
- Use fallbacks: Define fallback chains for critical applications
- Enable caching: Use Redis caching to reduce costs and latency
- Monitor failures: Set appropriate
allowed_failsandcooldown_time - Choose routing strategy: Select based on your requirements (cost, latency, reliability)
- Configure retries: Set
num_retriesbased on your latency tolerance - Use async: Leverage
acompletion()for concurrent requests
Performance Tips
- Use
routing_strategy="least-busy"for high concurrency - Enable Redis caching for repeated queries
- Configure appropriate timeouts to avoid hanging requests
- Use async methods for batch processing
- Monitor
deployment_statsto identify slow deployments