(feat) add Router init Pydantic Type

This commit is contained in:
ishaan-jaff 2024-01-02 13:24:43 +05:30
parent a9f58ec100
commit 9afdc8b4ee

41
litellm/types/router.py Normal file
View file

@ -0,0 +1,41 @@
from typing import List, Optional, Union, Dict, Tuple, Literal
from pydantic import BaseModel, validator
from completion import CompletionRequest
from embedding import EmbeddingRequest
class ModelConfig(BaseModel):
model_name: str
litellm_params: Union[CompletionRequest, EmbeddingRequest]
tpm: int
rpm: int
class RouterConfig(BaseModel):
model_list: List[ModelConfig]
redis_url: Optional[str]
redis_host: Optional[str]
redis_port: Optional[int]
redis_password: Optional[str]
cache_responses: Optional[bool] = False
cache_kwargs: Optional[Dict] = {}
caching_groups: Optional[List[Tuple[str, List[str]]]] = None
client_ttl: Optional[int] = 3600
num_retries: Optional[int] = 0
timeout: Optional[float] = None
default_litellm_params: Optional[Dict[str, str]] = {}
set_verbose: Optional[bool] = False
fallbacks: Optional[List[str]] = []
allowed_fails: Optional[int] = None
context_window_fallbacks: Optional[List[str]] = []
model_group_alias: Optional[Dict[str, List[str]]] = {}
retry_after: Optional[int] = 0
routing_strategy: Literal[
"simple-shuffle",
"least-busy",
"usage-based-routing",
"latency-based-routing",
] = "simple-shuffle"