55from typing_extensions import TypedDict , NotRequired
66import httpx
77import portkey_ai
8- from pydantic import BaseModel , validator
8+ from pydantic import BaseModel , field_validator
99
1010from portkey_ai .api_resources .types .chat_complete_type import (
1111 ChatCompletionChunk ,
@@ -269,7 +269,7 @@ class Constructs(BaseModel):
269269
270270
271271class LLMOptions (Constructs , ConversationInput , ModelParams ):
272- @validator ("api_key" , "virtual_key" , always = False )
272+ @field_validator ("api_key" , "virtual_key" )
273273 @classmethod
274274 def parse_api_key (cls , api_key , values ):
275275 if api_key is None and values .get ("virtual_key" ) is None :
@@ -282,7 +282,7 @@ def parse_api_key(cls, api_key, values):
282282class ProviderOptions (Constructs ):
283283 override_params : Optional [OverrideParams ] = None
284284
285- @validator ("cache_age" , always = True )
285+ @field_validator ("cache_age" )
286286 @classmethod
287287 def parse_cache_age (cls , cache_age ):
288288 if cache_age is not None :
@@ -404,7 +404,7 @@ class Config(BaseModel):
404404 mode : Optional [Union [Modes , ModesLiteral , str ]] = None
405405 llms : Optional [Union [List [LLMOptions ], LLMOptions ]] = None
406406
407- @validator ("mode" , always = True )
407+ @field_validator ("mode" )
408408 @classmethod
409409 def check_mode (cls , mode ):
410410 if mode is None :
@@ -413,7 +413,7 @@ def check_mode(cls, mode):
413413
414414 return mode
415415
416- @validator ("llms" , always = True )
416+ @field_validator ("llms" )
417417 @classmethod
418418 def parse_llms (cls , llms ):
419419 if isinstance (llms , LLMOptions ):
0 commit comments