diff --git a/portkey_ai/api_resources/base_client.py b/portkey_ai/api_resources/base_client.py index f821008..e650d29 100644 --- a/portkey_ai/api_resources/base_client.py +++ b/portkey_ai/api_resources/base_client.py @@ -74,6 +74,7 @@ def __init__( azure_api_version: Optional[str] = None, http_client: Optional[httpx.Client] = None, request_timeout: Optional[int] = None, + strict_open_ai_compliance: Optional[bool] = None, **kwargs, ) -> None: self.api_key = api_key or default_api_key() @@ -101,6 +102,7 @@ def __init__( self.azure_api_version = azure_api_version self.cache_namespace = cache_namespace self.request_timeout = request_timeout + self.strict_open_ai_compliance = strict_open_ai_compliance self.kwargs = kwargs self.custom_headers = createHeaders( @@ -128,6 +130,7 @@ def __init__( azure_api_version=azure_api_version, cache_namespace=cache_namespace, request_timeout=request_timeout, + strict_open_ai_compliance=strict_open_ai_compliance, **kwargs, ) @@ -548,6 +551,7 @@ def __init__( azure_api_version: Optional[str] = None, http_client: Optional[httpx.AsyncClient] = None, request_timeout: Optional[int] = None, + strict_open_ai_compliance: Optional[bool] = None, **kwargs, ) -> None: self.api_key = api_key or default_api_key() @@ -575,6 +579,7 @@ def __init__( self.azure_api_version = azure_api_version self.cache_namespace = cache_namespace self.request_timeout = request_timeout + self.strict_open_ai_compliance = strict_open_ai_compliance self.kwargs = kwargs self.custom_headers = createHeaders( @@ -602,6 +607,7 @@ def __init__( azure_api_version=azure_api_version, cache_namespace=cache_namespace, request_timeout=request_timeout, + strict_open_ai_compliance=strict_open_ai_compliance, **kwargs, ) diff --git a/portkey_ai/api_resources/client.py b/portkey_ai/api_resources/client.py index e591523..09621fa 100644 --- a/portkey_ai/api_resources/client.py +++ b/portkey_ai/api_resources/client.py @@ -66,6 +66,7 @@ def __init__( azure_api_version: Optional[str] = None, http_client: Optional[httpx.Client] = None, request_timeout: Optional[int] = None, + strict_open_ai_compliance: Optional[bool] = None, **kwargs, ) -> None: super().__init__( @@ -95,6 +96,7 @@ def __init__( cache_namespace=cache_namespace, http_client=http_client, request_timeout=request_timeout, + strict_open_ai_compliance=strict_open_ai_compliance, **kwargs, ) @@ -150,6 +152,7 @@ def copy( azure_api_version: Optional[str] = None, http_client: Optional[httpx.Client] = None, request_timeout: Optional[int] = None, + strict_open_ai_compliance: Optional[bool] = None, **kwargs, ) -> Portkey: return self.__class__( @@ -179,6 +182,8 @@ def copy( cache_namespace=cache_namespace or self.cache_namespace, http_client=http_client or self._client, request_timeout=request_timeout or self.request_timeout, + strict_open_ai_compliance=strict_open_ai_compliance + or self.strict_open_ai_compliance, **self.kwargs, **kwargs, ) @@ -243,6 +248,7 @@ def __init__( azure_api_version: Optional[str] = None, http_client: Optional[httpx.AsyncClient] = None, request_timeout: Optional[int] = None, + strict_open_ai_compliance: Optional[bool] = None, **kwargs, ) -> None: super().__init__( @@ -272,6 +278,7 @@ def __init__( cache_namespace=cache_namespace, http_client=http_client, request_timeout=request_timeout, + strict_open_ai_compliance=strict_open_ai_compliance, **kwargs, ) @@ -327,6 +334,7 @@ def copy( azure_api_version: Optional[str] = None, http_client: Optional[httpx.AsyncClient] = None, request_timeout: Optional[int] = None, + strict_open_ai_compliance: Optional[bool] = None, **kwargs, ) -> AsyncPortkey: return self.__class__( @@ -356,6 +364,8 @@ def copy( cache_namespace=cache_namespace or self.cache_namespace, http_client=http_client or self._client, request_timeout=request_timeout or self.request_timeout, + strict_open_ai_compliance=strict_open_ai_compliance + or self.strict_open_ai_compliance, **self.kwargs, **kwargs, ) diff --git a/portkey_ai/api_resources/types/chat_complete_type.py b/portkey_ai/api_resources/types/chat_complete_type.py index 7b87b1f..0291bfb 100644 --- a/portkey_ai/api_resources/types/chat_complete_type.py +++ b/portkey_ai/api_resources/types/chat_complete_type.py @@ -28,19 +28,19 @@ class Usage(BaseModel, extra="allow"): total_tokens: Optional[int] = None -class DeltaToolCallFunction(BaseModel): +class DeltaToolCallFunction(BaseModel, extra="allow"): arguments: Optional[str] = None name: Optional[str] = None -class DeltaToolCall(BaseModel): +class DeltaToolCall(BaseModel, extra="allow"): index: Optional[int] id: Optional[str] = None function: Optional[DeltaToolCallFunction] = None type: Optional[str] = None -class Delta(BaseModel): +class Delta(BaseModel, extra="allow"): role: Optional[str] = None content: Optional[str] = "" tool_calls: Optional[List[DeltaToolCall]] = None @@ -61,49 +61,49 @@ def __getitem__(self, key): return getattr(self, key, None) -class FunctionCall(BaseModel): +class FunctionCall(BaseModel, extra="allow"): arguments: Optional[str] name: Optional[str] -class ChatCompletionMessageToolCall(BaseModel): +class ChatCompletionMessageToolCall(BaseModel, extra="allow"): id: Optional[str] function: Optional[FunctionCall] type: Optional[str] -class ChatCompletionMessage(BaseModel): +class ChatCompletionMessage(BaseModel, extra="allow"): content: Optional[Union[str, Iterable[Any]]] = None role: Optional[str] function_call: Optional[FunctionCall] = None tool_calls: Optional[List[ChatCompletionMessageToolCall]] = None -class TopLogprob(BaseModel): +class TopLogprob(BaseModel, extra="allow"): token: Optional[str] bytes: Optional[List[int]] = None logprob: Optional[float] -class ChatCompletionTokenLogprob(BaseModel): +class ChatCompletionTokenLogprob(BaseModel, extra="allow"): token: Optional[str] bytes: Optional[List[int]] = None logprob: Optional[float] top_logprobs: Optional[List[TopLogprob]] -class ChoiceLogprobs(BaseModel): +class ChoiceLogprobs(BaseModel, extra="allow"): content: Optional[List[ChatCompletionTokenLogprob]] = None -class Choice(BaseModel): +class Choice(BaseModel, extra="allow"): finish_reason: Optional[str] index: Optional[int] logprobs: Optional[ChoiceLogprobs] = None message: Optional[ChatCompletionMessage] -class ChatCompletions(BaseModel): +class ChatCompletions(BaseModel, extra="allow"): id: Optional[str] choices: Optional[List[Choice]] created: Optional[int] @@ -127,7 +127,7 @@ def get_headers(self) -> Optional[Dict[str, str]]: return parse_headers(self._headers) -class ChatCompletionChunk(BaseModel): +class ChatCompletionChunk(BaseModel, extra="allow"): id: Optional[str] = None object: Optional[str] = None created: Optional[int] = None