Skip to content

Commit 2cad75b

Browse files
authored
fix: regenerate SDK client core so message.reasoning is a string (#14)
Regenerated from the gateway OpenAPI spec after mozilla-ai/otari#145: response schemas are now exported in serialization mode, so message.reasoning and delta.reasoning are typed as plain strings matching the gateway wire format. Fixes deserialization failures on reasoning-emitting models (mozilla-ai/otari#143). Release-As: 0.1.1
1 parent 21b9b5b commit 2cad75b

6 files changed

Lines changed: 6 additions & 196 deletions

File tree

src/otari/_client/__init__.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,8 @@
6969
"CCKCompletionTokensDetails",
7070
"CCKCompletionUsage",
7171
"CCKPromptTokensDetails",
72-
"CCKReasoning",
7372
"CCKTopLogprob",
7473
"CCPromptTokensDetails",
75-
"CCReasoning",
7674
"CCTopLogprob",
7775
"Caller",
7876
"ChatCompletion",
@@ -265,10 +263,8 @@
265263
from otari._client.models.cck_completion_tokens_details import CCKCompletionTokensDetails as CCKCompletionTokensDetails
266264
from otari._client.models.cck_completion_usage import CCKCompletionUsage as CCKCompletionUsage
267265
from otari._client.models.cck_prompt_tokens_details import CCKPromptTokensDetails as CCKPromptTokensDetails
268-
from otari._client.models.cck_reasoning import CCKReasoning as CCKReasoning
269266
from otari._client.models.cck_top_logprob import CCKTopLogprob as CCKTopLogprob
270267
from otari._client.models.cc_prompt_tokens_details import CCPromptTokensDetails as CCPromptTokensDetails
271-
from otari._client.models.cc_reasoning import CCReasoning as CCReasoning
272268
from otari._client.models.cc_top_logprob import CCTopLogprob as CCTopLogprob
273269
from otari._client.models.caller import Caller as Caller
274270
from otari._client.models.chat_completion import ChatCompletion as ChatCompletion

src/otari/_client/models/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,8 @@
3939
from otari._client.models.cck_completion_tokens_details import CCKCompletionTokensDetails
4040
from otari._client.models.cck_completion_usage import CCKCompletionUsage
4141
from otari._client.models.cck_prompt_tokens_details import CCKPromptTokensDetails
42-
from otari._client.models.cck_reasoning import CCKReasoning
4342
from otari._client.models.cck_top_logprob import CCKTopLogprob
4443
from otari._client.models.cc_prompt_tokens_details import CCPromptTokensDetails
45-
from otari._client.models.cc_reasoning import CCReasoning
4644
from otari._client.models.cc_top_logprob import CCTopLogprob
4745
from otari._client.models.caller import Caller
4846
from otari._client.models.chat_completion import ChatCompletion

src/otari/_client/models/cc_chat_completion_message.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@
1717
import re # noqa: F401
1818
import json
1919

20-
from pydantic import BaseModel, ConfigDict, StrictStr, field_validator
20+
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
2121
from typing import Any, ClassVar, Dict, List, Optional
2222
from otari._client.models.cc_chat_completion_audio import CCChatCompletionAudio
2323
from otari._client.models.cc_chat_completion_message_tool_calls_inner import CCChatCompletionMessageToolCallsInner
2424
from otari._client.models.cc_function_call import CCFunctionCall
25-
from otari._client.models.cc_reasoning import CCReasoning
2625
from typing import Optional, Set
2726
from typing_extensions import Self
2827
from pydantic_core import to_jsonable_python
@@ -38,7 +37,7 @@ class CCChatCompletionMessage(BaseModel):
3837
audio: Optional[CCChatCompletionAudio] = None
3938
function_call: Optional[CCFunctionCall] = None
4039
tool_calls: Optional[List[CCChatCompletionMessageToolCallsInner]] = None
41-
reasoning: Optional[CCReasoning] = None
40+
reasoning: Optional[StrictStr] = Field(default=None, description="Filter models by provider name")
4241
additional_properties: Dict[str, Any] = {}
4342
__properties: ClassVar[List[str]] = ["content", "refusal", "role", "annotations", "audio", "function_call", "tool_calls", "reasoning"]
4443

@@ -103,9 +102,6 @@ def to_dict(self) -> Dict[str, Any]:
103102
if _item_tool_calls:
104103
_items.append(_item_tool_calls.to_dict())
105104
_dict['tool_calls'] = _items
106-
# override the default output from pydantic by calling `to_dict()` of reasoning
107-
if self.reasoning:
108-
_dict['reasoning'] = self.reasoning.to_dict()
109105
# puts key-value pairs in additional_properties in the top level
110106
if self.additional_properties is not None:
111107
for _key, _value in self.additional_properties.items():
@@ -165,7 +161,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
165161
"audio": CCChatCompletionAudio.from_dict(obj["audio"]) if obj.get("audio") is not None else None,
166162
"function_call": CCFunctionCall.from_dict(obj["function_call"]) if obj.get("function_call") is not None else None,
167163
"tool_calls": [CCChatCompletionMessageToolCallsInner.from_dict(_item) for _item in obj["tool_calls"]] if obj.get("tool_calls") is not None else None,
168-
"reasoning": CCReasoning.from_dict(obj["reasoning"]) if obj.get("reasoning") is not None else None
164+
"reasoning": obj.get("reasoning")
169165
})
170166
# store additional fields in additional_properties
171167
for _key in obj.keys():

src/otari/_client/models/cc_reasoning.py

Lines changed: 0 additions & 88 deletions
This file was deleted.

src/otari/_client/models/cck_choice_delta.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,10 @@
1717
import re # noqa: F401
1818
import json
1919

20-
from pydantic import BaseModel, ConfigDict, StrictStr, field_validator
20+
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
2121
from typing import Any, ClassVar, Dict, List, Optional
2222
from otari._client.models.cck_choice_delta_function_call import CCKChoiceDeltaFunctionCall
2323
from otari._client.models.cck_choice_delta_tool_call import CCKChoiceDeltaToolCall
24-
from otari._client.models.cck_reasoning import CCKReasoning
2524
from typing import Optional, Set
2625
from typing_extensions import Self
2726
from pydantic_core import to_jsonable_python
@@ -35,7 +34,7 @@ class CCKChoiceDelta(BaseModel):
3534
refusal: Optional[StrictStr] = None
3635
role: Optional[StrictStr] = None
3736
tool_calls: Optional[List[CCKChoiceDeltaToolCall]] = None
38-
reasoning: Optional[CCKReasoning] = None
37+
reasoning: Optional[StrictStr] = Field(default=None, description="Filter models by provider name")
3938
additional_properties: Dict[str, Any] = {}
4039
__properties: ClassVar[List[str]] = ["content", "function_call", "refusal", "role", "tool_calls", "reasoning"]
4140

@@ -100,9 +99,6 @@ def to_dict(self) -> Dict[str, Any]:
10099
if _item_tool_calls:
101100
_items.append(_item_tool_calls.to_dict())
102101
_dict['tool_calls'] = _items
103-
# override the default output from pydantic by calling `to_dict()` of reasoning
104-
if self.reasoning:
105-
_dict['reasoning'] = self.reasoning.to_dict()
106102
# puts key-value pairs in additional_properties in the top level
107103
if self.additional_properties is not None:
108104
for _key, _value in self.additional_properties.items():
@@ -155,7 +151,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
155151
"refusal": obj.get("refusal"),
156152
"role": obj.get("role"),
157153
"tool_calls": [CCKChoiceDeltaToolCall.from_dict(_item) for _item in obj["tool_calls"]] if obj.get("tool_calls") is not None else None,
158-
"reasoning": CCKReasoning.from_dict(obj["reasoning"]) if obj.get("reasoning") is not None else None
154+
"reasoning": obj.get("reasoning")
159155
})
160156
# store additional fields in additional_properties
161157
for _key in obj.keys():

src/otari/_client/models/cck_reasoning.py

Lines changed: 0 additions & 88 deletions
This file was deleted.

0 commit comments

Comments
 (0)