diff --git a/litellm/router.py b/litellm/router.py index 115faad000c..69460c4ad24 100644 --- a/litellm/router.py +++ b/litellm/router.py @@ -9513,7 +9513,12 @@ class Router: if isinstance(v, str) and v.startswith("os.environ/"): _litellm_params[k] = get_secret(v) - _model_info: dict = model.pop("model_info", {}) + _raw_model_info = model.pop("model_info", {}) + _model_info: dict = ( + _raw_model_info.model_dump(exclude_none=True) + if hasattr(_raw_model_info, "model_dump") + else (_raw_model_info or {}) + ) declared_id = None if _model_info.get("id") is None else str(_model_info["id"]) diff --git a/litellm/types/router.py b/litellm/types/router.py index 2ab1a1185ed..e5b766d923c 100644 --- a/litellm/types/router.py +++ b/litellm/types/router.py @@ -638,8 +638,7 @@ class LiteLLMParamsTypedDict(TypedDict, total=False): class DeploymentTypedDict(TypedDict, total=False): model_name: Required[str] litellm_params: Required[LiteLLMParamsTypedDict] - model_info: dict - + model_info: dict | ModelInfo SPECIAL_MODEL_INFO_PARAMS = tuple(MirroredPricingParams.model_fields)