Skip to main content

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 group
  • litellm_params: Parameters for litellm.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

  1. Multiple deployments: Configure at least 2 deployments per model for reliability
  2. Set rate limits: Configure TPM/RPM to prevent hitting provider limits
  3. Use fallbacks: Define fallback chains for critical applications
  4. Enable caching: Use Redis caching to reduce costs and latency
  5. Monitor failures: Set appropriate allowed_fails and cooldown_time
  6. Choose routing strategy: Select based on your requirements (cost, latency, reliability)
  7. Configure retries: Set num_retries based on your latency tolerance
  8. 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_stats to identify slow deployments