diff --git a/litellm/types/completion.py b/litellm/types/completion.py index aede0bc9ede..4d3f4b4b7f2 100644 --- a/litellm/types/completion.py +++ b/litellm/types/completion.py @@ -1,10 +1,15 @@ from typing import List, Optional, Union, Iterable -from pydantic import ConfigDict, BaseModel, validator +from pydantic import ConfigDict, BaseModel, validator, VERSION from typing_extensions import Literal, Required, TypedDict +# Function to get Pydantic version +def is_pydantic_v2() -> int: + return int(VERSION.split(".")[0]) + + class ChatCompletionSystemMessageParam(TypedDict, total=False): content: Required[str] """The contents of the system message.""" @@ -190,4 +195,9 @@ class CompletionRequest(BaseModel): api_version: Optional[str] = None api_key: Optional[str] = None model_list: Optional[List[str]] = None - model_config = ConfigDict(extra="allow", protected_namespaces=()) + + # Version-specific configuration + if is_pydantic_v2() >= 2: + model_config = ConfigDict(extra="allow", protected_namespaces=()) + else: + model_config = ConfigDict(extra="allow") # No protected_namespaces for v1