orq-ai-sdk 4.2.0rc28__py3-none-any.whl → 4.2.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- orq_ai_sdk/_hooks/globalhook.py +0 -1
- orq_ai_sdk/_version.py +3 -3
- orq_ai_sdk/audio.py +30 -0
- orq_ai_sdk/basesdk.py +20 -6
- orq_ai_sdk/chat.py +22 -0
- orq_ai_sdk/completions.py +332 -0
- orq_ai_sdk/contacts.py +43 -855
- orq_ai_sdk/deployments.py +61 -0
- orq_ai_sdk/edits.py +258 -0
- orq_ai_sdk/embeddings.py +238 -0
- orq_ai_sdk/generations.py +272 -0
- orq_ai_sdk/identities.py +1037 -0
- orq_ai_sdk/images.py +28 -0
- orq_ai_sdk/models/__init__.py +5341 -737
- orq_ai_sdk/models/actionreviewedstreamingevent.py +18 -1
- orq_ai_sdk/models/actionreviewrequestedstreamingevent.py +44 -1
- orq_ai_sdk/models/agenterroredstreamingevent.py +18 -1
- orq_ai_sdk/models/agentinactivestreamingevent.py +168 -70
- orq_ai_sdk/models/agentmessagecreatedstreamingevent.py +18 -2
- orq_ai_sdk/models/agentresponsemessage.py +18 -2
- orq_ai_sdk/models/agentstartedstreamingevent.py +127 -2
- orq_ai_sdk/models/agentthoughtstreamingevent.py +178 -211
- orq_ai_sdk/models/conversationresponse.py +31 -20
- orq_ai_sdk/models/conversationwithmessagesresponse.py +31 -20
- orq_ai_sdk/models/createagentrequestop.py +1922 -384
- orq_ai_sdk/models/createagentresponse.py +147 -91
- orq_ai_sdk/models/createagentresponserequestop.py +111 -2
- orq_ai_sdk/models/createchatcompletionop.py +1375 -861
- orq_ai_sdk/models/createchunkop.py +46 -19
- orq_ai_sdk/models/createcompletionop.py +1890 -0
- orq_ai_sdk/models/createcontactop.py +45 -56
- orq_ai_sdk/models/createconversationop.py +61 -39
- orq_ai_sdk/models/createconversationresponseop.py +68 -4
- orq_ai_sdk/models/createdatasetitemop.py +424 -80
- orq_ai_sdk/models/createdatasetop.py +19 -2
- orq_ai_sdk/models/createdatasourceop.py +92 -26
- orq_ai_sdk/models/createembeddingop.py +384 -0
- orq_ai_sdk/models/createevalop.py +552 -24
- orq_ai_sdk/models/createidentityop.py +176 -0
- orq_ai_sdk/models/createimageeditop.py +504 -0
- orq_ai_sdk/models/createimageop.py +208 -117
- orq_ai_sdk/models/createimagevariationop.py +486 -0
- orq_ai_sdk/models/createknowledgeop.py +186 -121
- orq_ai_sdk/models/creatememorydocumentop.py +50 -1
- orq_ai_sdk/models/creatememoryop.py +34 -21
- orq_ai_sdk/models/creatememorystoreop.py +34 -1
- orq_ai_sdk/models/createmoderationop.py +521 -0
- orq_ai_sdk/models/createpromptop.py +2748 -1252
- orq_ai_sdk/models/creatererankop.py +416 -0
- orq_ai_sdk/models/createresponseop.py +2567 -0
- orq_ai_sdk/models/createspeechop.py +316 -0
- orq_ai_sdk/models/createtoolop.py +537 -12
- orq_ai_sdk/models/createtranscriptionop.py +562 -0
- orq_ai_sdk/models/createtranslationop.py +540 -0
- orq_ai_sdk/models/datapart.py +18 -1
- orq_ai_sdk/models/deletechunksop.py +34 -1
- orq_ai_sdk/models/{deletecontactop.py → deleteidentityop.py} +9 -9
- orq_ai_sdk/models/deletepromptop.py +26 -0
- orq_ai_sdk/models/deploymentcreatemetricop.py +362 -76
- orq_ai_sdk/models/deploymentgetconfigop.py +635 -194
- orq_ai_sdk/models/deploymentinvokeop.py +168 -173
- orq_ai_sdk/models/deploymentsop.py +195 -58
- orq_ai_sdk/models/deploymentstreamop.py +652 -304
- orq_ai_sdk/models/errorpart.py +18 -1
- orq_ai_sdk/models/filecontentpartschema.py +18 -1
- orq_ai_sdk/models/filegetop.py +19 -2
- orq_ai_sdk/models/filelistop.py +35 -2
- orq_ai_sdk/models/filepart.py +50 -1
- orq_ai_sdk/models/fileuploadop.py +51 -2
- orq_ai_sdk/models/generateconversationnameop.py +31 -20
- orq_ai_sdk/models/get_v2_evaluators_id_versionsop.py +34 -1
- orq_ai_sdk/models/get_v2_tools_tool_id_versions_version_id_op.py +18 -1
- orq_ai_sdk/models/get_v2_tools_tool_id_versionsop.py +34 -1
- orq_ai_sdk/models/getallmemoriesop.py +34 -21
- orq_ai_sdk/models/getallmemorydocumentsop.py +42 -1
- orq_ai_sdk/models/getallmemorystoresop.py +34 -1
- orq_ai_sdk/models/getallpromptsop.py +1690 -230
- orq_ai_sdk/models/getalltoolsop.py +325 -8
- orq_ai_sdk/models/getchunkscountop.py +34 -1
- orq_ai_sdk/models/getevalsop.py +395 -43
- orq_ai_sdk/models/getonechunkop.py +14 -19
- orq_ai_sdk/models/getoneknowledgeop.py +116 -96
- orq_ai_sdk/models/getonepromptop.py +1673 -230
- orq_ai_sdk/models/getpromptversionop.py +1670 -216
- orq_ai_sdk/models/imagecontentpartschema.py +50 -1
- orq_ai_sdk/models/internal/globals.py +18 -1
- orq_ai_sdk/models/invokeagentop.py +140 -2
- orq_ai_sdk/models/invokedeploymentrequest.py +418 -80
- orq_ai_sdk/models/invokeevalop.py +160 -131
- orq_ai_sdk/models/listagentsop.py +793 -166
- orq_ai_sdk/models/listchunksop.py +32 -19
- orq_ai_sdk/models/listchunkspaginatedop.py +46 -19
- orq_ai_sdk/models/listconversationsop.py +18 -1
- orq_ai_sdk/models/listdatasetdatapointsop.py +252 -42
- orq_ai_sdk/models/listdatasetsop.py +35 -2
- orq_ai_sdk/models/listdatasourcesop.py +35 -26
- orq_ai_sdk/models/{listcontactsop.py → listidentitiesop.py} +89 -79
- orq_ai_sdk/models/listknowledgebasesop.py +132 -96
- orq_ai_sdk/models/listmodelsop.py +1 -0
- orq_ai_sdk/models/listpromptversionsop.py +1684 -216
- orq_ai_sdk/models/parseop.py +161 -17
- orq_ai_sdk/models/partdoneevent.py +19 -2
- orq_ai_sdk/models/post_v2_router_ocrop.py +408 -0
- orq_ai_sdk/models/publiccontact.py +27 -4
- orq_ai_sdk/models/publicidentity.py +62 -0
- orq_ai_sdk/models/reasoningpart.py +19 -2
- orq_ai_sdk/models/refusalpartschema.py +18 -1
- orq_ai_sdk/models/remoteconfigsgetconfigop.py +34 -1
- orq_ai_sdk/models/responsedoneevent.py +114 -84
- orq_ai_sdk/models/responsestartedevent.py +18 -1
- orq_ai_sdk/models/retrieveagentrequestop.py +787 -166
- orq_ai_sdk/models/retrievedatapointop.py +236 -42
- orq_ai_sdk/models/retrievedatasetop.py +19 -2
- orq_ai_sdk/models/retrievedatasourceop.py +17 -26
- orq_ai_sdk/models/{retrievecontactop.py → retrieveidentityop.py} +38 -41
- orq_ai_sdk/models/retrievememorydocumentop.py +18 -1
- orq_ai_sdk/models/retrievememoryop.py +18 -21
- orq_ai_sdk/models/retrievememorystoreop.py +18 -1
- orq_ai_sdk/models/retrievetoolop.py +309 -8
- orq_ai_sdk/models/runagentop.py +1451 -197
- orq_ai_sdk/models/searchknowledgeop.py +108 -1
- orq_ai_sdk/models/security.py +18 -1
- orq_ai_sdk/models/streamagentop.py +93 -2
- orq_ai_sdk/models/streamrunagentop.py +1428 -195
- orq_ai_sdk/models/textcontentpartschema.py +34 -1
- orq_ai_sdk/models/thinkingconfigenabledschema.py +18 -1
- orq_ai_sdk/models/toolcallpart.py +18 -1
- orq_ai_sdk/models/tooldoneevent.py +18 -1
- orq_ai_sdk/models/toolexecutionfailedstreamingevent.py +50 -1
- orq_ai_sdk/models/toolexecutionfinishedstreamingevent.py +34 -1
- orq_ai_sdk/models/toolexecutionstartedstreamingevent.py +34 -1
- orq_ai_sdk/models/toolresultpart.py +18 -1
- orq_ai_sdk/models/toolreviewrequestedevent.py +18 -1
- orq_ai_sdk/models/toolstartedevent.py +18 -1
- orq_ai_sdk/models/updateagentop.py +1951 -404
- orq_ai_sdk/models/updatechunkop.py +46 -19
- orq_ai_sdk/models/updateconversationop.py +61 -39
- orq_ai_sdk/models/updatedatapointop.py +424 -80
- orq_ai_sdk/models/updatedatasetop.py +51 -2
- orq_ai_sdk/models/updatedatasourceop.py +17 -26
- orq_ai_sdk/models/updateevalop.py +577 -16
- orq_ai_sdk/models/{updatecontactop.py → updateidentityop.py} +78 -68
- orq_ai_sdk/models/updateknowledgeop.py +234 -190
- orq_ai_sdk/models/updatememorydocumentop.py +50 -1
- orq_ai_sdk/models/updatememoryop.py +50 -21
- orq_ai_sdk/models/updatememorystoreop.py +66 -1
- orq_ai_sdk/models/updatepromptop.py +2844 -1450
- orq_ai_sdk/models/updatetoolop.py +592 -9
- orq_ai_sdk/models/usermessagerequest.py +18 -2
- orq_ai_sdk/moderations.py +218 -0
- orq_ai_sdk/orq_completions.py +660 -0
- orq_ai_sdk/orq_responses.py +398 -0
- orq_ai_sdk/prompts.py +28 -36
- orq_ai_sdk/rerank.py +232 -0
- orq_ai_sdk/router.py +89 -641
- orq_ai_sdk/sdk.py +3 -0
- orq_ai_sdk/speech.py +251 -0
- orq_ai_sdk/transcriptions.py +326 -0
- orq_ai_sdk/translations.py +298 -0
- orq_ai_sdk/utils/__init__.py +13 -1
- orq_ai_sdk/variations.py +254 -0
- orq_ai_sdk-4.2.6.dist-info/METADATA +888 -0
- orq_ai_sdk-4.2.6.dist-info/RECORD +263 -0
- {orq_ai_sdk-4.2.0rc28.dist-info → orq_ai_sdk-4.2.6.dist-info}/WHEEL +2 -1
- orq_ai_sdk-4.2.6.dist-info/top_level.txt +1 -0
- orq_ai_sdk-4.2.0rc28.dist-info/METADATA +0 -867
- orq_ai_sdk-4.2.0rc28.dist-info/RECORD +0 -233
|
@@ -43,6 +43,22 @@ class DeploymentsRequest(BaseModel):
|
|
|
43
43
|
] = None
|
|
44
44
|
r"""A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `01JJ1HDHN79XAS7A01WB3HYSDB`, your subsequent call can include `before=01JJ1HDHN79XAS7A01WB3HYSDB` in order to fetch the previous page of the list."""
|
|
45
45
|
|
|
46
|
+
@model_serializer(mode="wrap")
|
|
47
|
+
def serialize_model(self, handler):
|
|
48
|
+
optional_fields = set(["limit", "starting_after", "ending_before"])
|
|
49
|
+
serialized = handler(self)
|
|
50
|
+
m = {}
|
|
51
|
+
|
|
52
|
+
for n, f in type(self).model_fields.items():
|
|
53
|
+
k = f.alias or n
|
|
54
|
+
val = serialized.get(k)
|
|
55
|
+
|
|
56
|
+
if val != UNSET_SENTINEL:
|
|
57
|
+
if val is not None or k not in optional_fields:
|
|
58
|
+
m[k] = val
|
|
59
|
+
|
|
60
|
+
return m
|
|
61
|
+
|
|
46
62
|
|
|
47
63
|
DeploymentsObject = Literal["list",]
|
|
48
64
|
|
|
@@ -82,6 +98,22 @@ class DeploymentsParameters(BaseModel):
|
|
|
82
98
|
Optional[bool], pydantic.Field(alias="additionalProperties")
|
|
83
99
|
] = None
|
|
84
100
|
|
|
101
|
+
@model_serializer(mode="wrap")
|
|
102
|
+
def serialize_model(self, handler):
|
|
103
|
+
optional_fields = set(["required", "additionalProperties"])
|
|
104
|
+
serialized = handler(self)
|
|
105
|
+
m = {}
|
|
106
|
+
|
|
107
|
+
for n, f in type(self).model_fields.items():
|
|
108
|
+
k = f.alias or n
|
|
109
|
+
val = serialized.get(k)
|
|
110
|
+
|
|
111
|
+
if val != UNSET_SENTINEL:
|
|
112
|
+
if val is not None or k not in optional_fields:
|
|
113
|
+
m[k] = val
|
|
114
|
+
|
|
115
|
+
return m
|
|
116
|
+
|
|
85
117
|
|
|
86
118
|
class DeploymentsFunctionTypedDict(TypedDict):
|
|
87
119
|
name: str
|
|
@@ -111,6 +143,22 @@ class DeploymentsFunction(BaseModel):
|
|
|
111
143
|
|
|
112
144
|
strict: Optional[bool] = None
|
|
113
145
|
|
|
146
|
+
@model_serializer(mode="wrap")
|
|
147
|
+
def serialize_model(self, handler):
|
|
148
|
+
optional_fields = set(["description", "strict"])
|
|
149
|
+
serialized = handler(self)
|
|
150
|
+
m = {}
|
|
151
|
+
|
|
152
|
+
for n, f in type(self).model_fields.items():
|
|
153
|
+
k = f.alias or n
|
|
154
|
+
val = serialized.get(k)
|
|
155
|
+
|
|
156
|
+
if val != UNSET_SENTINEL:
|
|
157
|
+
if val is not None or k not in optional_fields:
|
|
158
|
+
m[k] = val
|
|
159
|
+
|
|
160
|
+
return m
|
|
161
|
+
|
|
114
162
|
|
|
115
163
|
class DeploymentsToolsTypedDict(TypedDict):
|
|
116
164
|
type: DeploymentsType
|
|
@@ -130,6 +178,22 @@ class DeploymentsTools(BaseModel):
|
|
|
130
178
|
|
|
131
179
|
id: Optional[float] = None
|
|
132
180
|
|
|
181
|
+
@model_serializer(mode="wrap")
|
|
182
|
+
def serialize_model(self, handler):
|
|
183
|
+
optional_fields = set(["display_name", "id"])
|
|
184
|
+
serialized = handler(self)
|
|
185
|
+
m = {}
|
|
186
|
+
|
|
187
|
+
for n, f in type(self).model_fields.items():
|
|
188
|
+
k = f.alias or n
|
|
189
|
+
val = serialized.get(k)
|
|
190
|
+
|
|
191
|
+
if val != UNSET_SENTINEL:
|
|
192
|
+
if val is not None or k not in optional_fields:
|
|
193
|
+
m[k] = val
|
|
194
|
+
|
|
195
|
+
return m
|
|
196
|
+
|
|
133
197
|
|
|
134
198
|
DeploymentsModelType = Literal[
|
|
135
199
|
"chat",
|
|
@@ -139,6 +203,7 @@ DeploymentsModelType = Literal[
|
|
|
139
203
|
"tts",
|
|
140
204
|
"stt",
|
|
141
205
|
"rerank",
|
|
206
|
+
"ocr",
|
|
142
207
|
"moderation",
|
|
143
208
|
"vision",
|
|
144
209
|
]
|
|
@@ -220,6 +285,22 @@ class DeploymentsResponseFormatJSONSchema(BaseModel):
|
|
|
220
285
|
|
|
221
286
|
strict: Optional[bool] = None
|
|
222
287
|
|
|
288
|
+
@model_serializer(mode="wrap")
|
|
289
|
+
def serialize_model(self, handler):
|
|
290
|
+
optional_fields = set(["description", "strict"])
|
|
291
|
+
serialized = handler(self)
|
|
292
|
+
m = {}
|
|
293
|
+
|
|
294
|
+
for n, f in type(self).model_fields.items():
|
|
295
|
+
k = f.alias or n
|
|
296
|
+
val = serialized.get(k)
|
|
297
|
+
|
|
298
|
+
if val != UNSET_SENTINEL:
|
|
299
|
+
if val is not None or k not in optional_fields:
|
|
300
|
+
m[k] = val
|
|
301
|
+
|
|
302
|
+
return m
|
|
303
|
+
|
|
223
304
|
|
|
224
305
|
class DeploymentsResponseFormat1TypedDict(TypedDict):
|
|
225
306
|
type: DeploymentsResponseFormatDeploymentsResponseType
|
|
@@ -234,6 +315,22 @@ class DeploymentsResponseFormat1(BaseModel):
|
|
|
234
315
|
|
|
235
316
|
display_name: Optional[str] = None
|
|
236
317
|
|
|
318
|
+
@model_serializer(mode="wrap")
|
|
319
|
+
def serialize_model(self, handler):
|
|
320
|
+
optional_fields = set(["display_name"])
|
|
321
|
+
serialized = handler(self)
|
|
322
|
+
m = {}
|
|
323
|
+
|
|
324
|
+
for n, f in type(self).model_fields.items():
|
|
325
|
+
k = f.alias or n
|
|
326
|
+
val = serialized.get(k)
|
|
327
|
+
|
|
328
|
+
if val != UNSET_SENTINEL:
|
|
329
|
+
if val is not None or k not in optional_fields:
|
|
330
|
+
m[k] = val
|
|
331
|
+
|
|
332
|
+
return m
|
|
333
|
+
|
|
237
334
|
|
|
238
335
|
DeploymentsResponseFormatTypedDict = TypeAliasType(
|
|
239
336
|
"DeploymentsResponseFormatTypedDict",
|
|
@@ -453,51 +550,48 @@ class DeploymentsModelParameters(BaseModel):
|
|
|
453
550
|
|
|
454
551
|
@model_serializer(mode="wrap")
|
|
455
552
|
def serialize_model(self, handler):
|
|
456
|
-
optional_fields =
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
553
|
+
optional_fields = set(
|
|
554
|
+
[
|
|
555
|
+
"temperature",
|
|
556
|
+
"maxTokens",
|
|
557
|
+
"topK",
|
|
558
|
+
"topP",
|
|
559
|
+
"frequencyPenalty",
|
|
560
|
+
"presencePenalty",
|
|
561
|
+
"numImages",
|
|
562
|
+
"seed",
|
|
563
|
+
"format",
|
|
564
|
+
"dimensions",
|
|
565
|
+
"quality",
|
|
566
|
+
"style",
|
|
567
|
+
"responseFormat",
|
|
568
|
+
"photoRealVersion",
|
|
569
|
+
"encoding_format",
|
|
570
|
+
"reasoningEffort",
|
|
571
|
+
"budgetTokens",
|
|
572
|
+
"verbosity",
|
|
573
|
+
"thinkingLevel",
|
|
574
|
+
]
|
|
575
|
+
)
|
|
576
|
+
nullable_fields = set(["responseFormat"])
|
|
480
577
|
serialized = handler(self)
|
|
481
|
-
|
|
482
578
|
m = {}
|
|
483
579
|
|
|
484
580
|
for n, f in type(self).model_fields.items():
|
|
485
581
|
k = f.alias or n
|
|
486
582
|
val = serialized.get(k)
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
):
|
|
500
|
-
m[k] = val
|
|
583
|
+
is_nullable_and_explicitly_set = (
|
|
584
|
+
k in nullable_fields
|
|
585
|
+
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
|
|
586
|
+
)
|
|
587
|
+
|
|
588
|
+
if val != UNSET_SENTINEL:
|
|
589
|
+
if (
|
|
590
|
+
val is not None
|
|
591
|
+
or k not in optional_fields
|
|
592
|
+
or is_nullable_and_explicitly_set
|
|
593
|
+
):
|
|
594
|
+
m[k] = val
|
|
501
595
|
|
|
502
596
|
return m
|
|
503
597
|
|
|
@@ -573,6 +667,22 @@ class Deployments2File(BaseModel):
|
|
|
573
667
|
filename: Optional[str] = None
|
|
574
668
|
r"""The name of the file, used when passing the file to the model as a string."""
|
|
575
669
|
|
|
670
|
+
@model_serializer(mode="wrap")
|
|
671
|
+
def serialize_model(self, handler):
|
|
672
|
+
optional_fields = set(["file_data", "uri", "mimeType", "filename"])
|
|
673
|
+
serialized = handler(self)
|
|
674
|
+
m = {}
|
|
675
|
+
|
|
676
|
+
for n, f in type(self).model_fields.items():
|
|
677
|
+
k = f.alias or n
|
|
678
|
+
val = serialized.get(k)
|
|
679
|
+
|
|
680
|
+
if val != UNSET_SENTINEL:
|
|
681
|
+
if val is not None or k not in optional_fields:
|
|
682
|
+
m[k] = val
|
|
683
|
+
|
|
684
|
+
return m
|
|
685
|
+
|
|
576
686
|
|
|
577
687
|
class Deployments23TypedDict(TypedDict):
|
|
578
688
|
type: Deployments2DeploymentsResponseType
|
|
@@ -609,6 +719,22 @@ class Deployments2ImageURL(BaseModel):
|
|
|
609
719
|
detail: Optional[str] = None
|
|
610
720
|
r"""Specifies the detail level of the image. Currently only supported with OpenAI models"""
|
|
611
721
|
|
|
722
|
+
@model_serializer(mode="wrap")
|
|
723
|
+
def serialize_model(self, handler):
|
|
724
|
+
optional_fields = set(["id", "detail"])
|
|
725
|
+
serialized = handler(self)
|
|
726
|
+
m = {}
|
|
727
|
+
|
|
728
|
+
for n, f in type(self).model_fields.items():
|
|
729
|
+
k = f.alias or n
|
|
730
|
+
val = serialized.get(k)
|
|
731
|
+
|
|
732
|
+
if val != UNSET_SENTINEL:
|
|
733
|
+
if val is not None or k not in optional_fields:
|
|
734
|
+
m[k] = val
|
|
735
|
+
|
|
736
|
+
return m
|
|
737
|
+
|
|
612
738
|
|
|
613
739
|
class Deployments22TypedDict(TypedDict):
|
|
614
740
|
r"""The image part of the prompt message. Only supported with vision models."""
|
|
@@ -703,6 +829,22 @@ class DeploymentsToolCalls(BaseModel):
|
|
|
703
829
|
|
|
704
830
|
index: Optional[float] = None
|
|
705
831
|
|
|
832
|
+
@model_serializer(mode="wrap")
|
|
833
|
+
def serialize_model(self, handler):
|
|
834
|
+
optional_fields = set(["id", "index"])
|
|
835
|
+
serialized = handler(self)
|
|
836
|
+
m = {}
|
|
837
|
+
|
|
838
|
+
for n, f in type(self).model_fields.items():
|
|
839
|
+
k = f.alias or n
|
|
840
|
+
val = serialized.get(k)
|
|
841
|
+
|
|
842
|
+
if val != UNSET_SENTINEL:
|
|
843
|
+
if val is not None or k not in optional_fields:
|
|
844
|
+
m[k] = val
|
|
845
|
+
|
|
846
|
+
return m
|
|
847
|
+
|
|
706
848
|
|
|
707
849
|
class DeploymentsMessagesTypedDict(TypedDict):
|
|
708
850
|
role: DeploymentsRole
|
|
@@ -726,31 +868,26 @@ class DeploymentsMessages(BaseModel):
|
|
|
726
868
|
|
|
727
869
|
@model_serializer(mode="wrap")
|
|
728
870
|
def serialize_model(self, handler):
|
|
729
|
-
optional_fields = ["tool_calls", "tool_call_id"]
|
|
730
|
-
nullable_fields = ["content", "tool_call_id"]
|
|
731
|
-
null_default_fields = []
|
|
732
|
-
|
|
871
|
+
optional_fields = set(["tool_calls", "tool_call_id"])
|
|
872
|
+
nullable_fields = set(["content", "tool_call_id"])
|
|
733
873
|
serialized = handler(self)
|
|
734
|
-
|
|
735
874
|
m = {}
|
|
736
875
|
|
|
737
876
|
for n, f in type(self).model_fields.items():
|
|
738
877
|
k = f.alias or n
|
|
739
878
|
val = serialized.get(k)
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
):
|
|
753
|
-
m[k] = val
|
|
879
|
+
is_nullable_and_explicitly_set = (
|
|
880
|
+
k in nullable_fields
|
|
881
|
+
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
|
|
882
|
+
)
|
|
883
|
+
|
|
884
|
+
if val != UNSET_SENTINEL:
|
|
885
|
+
if (
|
|
886
|
+
val is not None
|
|
887
|
+
or k not in optional_fields
|
|
888
|
+
or is_nullable_and_explicitly_set
|
|
889
|
+
):
|
|
890
|
+
m[k] = val
|
|
754
891
|
|
|
755
892
|
return m
|
|
756
893
|
|