orq-ai-sdk 4.2.0rc28__py3-none-any.whl → 4.3.0rc7__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/_version.py +3 -3
- orq_ai_sdk/agents.py +186 -186
- 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 +438 -0
- orq_ai_sdk/contacts.py +43 -855
- orq_ai_sdk/deployments.py +61 -0
- orq_ai_sdk/edits.py +364 -0
- orq_ai_sdk/embeddings.py +344 -0
- orq_ai_sdk/generations.py +370 -0
- orq_ai_sdk/identities.py +1037 -0
- orq_ai_sdk/images.py +28 -0
- orq_ai_sdk/models/__init__.py +5746 -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 +1945 -383
- orq_ai_sdk/models/createagentresponse.py +147 -91
- orq_ai_sdk/models/createagentresponserequestop.py +111 -2
- orq_ai_sdk/models/createchatcompletionop.py +1381 -861
- orq_ai_sdk/models/createchunkop.py +46 -19
- orq_ai_sdk/models/createcompletionop.py +2078 -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 +579 -0
- orq_ai_sdk/models/createevalop.py +552 -24
- orq_ai_sdk/models/createidentityop.py +176 -0
- orq_ai_sdk/models/createimageeditop.py +715 -0
- orq_ai_sdk/models/createimageop.py +407 -128
- orq_ai_sdk/models/createimagevariationop.py +706 -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 +2759 -1251
- orq_ai_sdk/models/creatererankop.py +608 -0
- orq_ai_sdk/models/createresponseop.py +2567 -0
- orq_ai_sdk/models/createspeechop.py +466 -0
- orq_ai_sdk/models/createtoolop.py +537 -12
- orq_ai_sdk/models/createtranscriptionop.py +732 -0
- orq_ai_sdk/models/createtranslationop.py +702 -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 +1696 -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 +1679 -230
- orq_ai_sdk/models/getpromptversionop.py +1676 -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 +805 -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 +1690 -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 +799 -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 +1462 -196
- 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 +1439 -194
- 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 +1968 -397
- 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 +2854 -1448
- 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 +666 -0
- orq_ai_sdk/orq_responses.py +398 -0
- orq_ai_sdk/prompts.py +28 -36
- orq_ai_sdk/rerank.py +330 -0
- orq_ai_sdk/router.py +89 -641
- orq_ai_sdk/sdk.py +3 -0
- orq_ai_sdk/speech.py +333 -0
- orq_ai_sdk/transcriptions.py +416 -0
- orq_ai_sdk/translations.py +384 -0
- orq_ai_sdk/utils/__init__.py +13 -1
- orq_ai_sdk/variations.py +364 -0
- {orq_ai_sdk-4.2.0rc28.dist-info → orq_ai_sdk-4.3.0rc7.dist-info}/METADATA +169 -148
- orq_ai_sdk-4.3.0rc7.dist-info/RECORD +263 -0
- {orq_ai_sdk-4.2.0rc28.dist-info → orq_ai_sdk-4.3.0rc7.dist-info}/WHEEL +2 -1
- orq_ai_sdk-4.3.0rc7.dist-info/top_level.txt +1 -0
- orq_ai_sdk-4.2.0rc28.dist-info/RECORD +0 -233
|
@@ -83,6 +83,24 @@ class ListChunksRequest(BaseModel):
|
|
|
83
83
|
] = None
|
|
84
84
|
r"""Filter datasources by status."""
|
|
85
85
|
|
|
86
|
+
@model_serializer(mode="wrap")
|
|
87
|
+
def serialize_model(self, handler):
|
|
88
|
+
optional_fields = set(
|
|
89
|
+
["limit", "starting_after", "ending_before", "q", "status"]
|
|
90
|
+
)
|
|
91
|
+
serialized = handler(self)
|
|
92
|
+
m = {}
|
|
93
|
+
|
|
94
|
+
for n, f in type(self).model_fields.items():
|
|
95
|
+
k = f.alias or n
|
|
96
|
+
val = serialized.get(k)
|
|
97
|
+
|
|
98
|
+
if val != UNSET_SENTINEL:
|
|
99
|
+
if val is not None or k not in optional_fields:
|
|
100
|
+
m[k] = val
|
|
101
|
+
|
|
102
|
+
return m
|
|
103
|
+
|
|
86
104
|
|
|
87
105
|
ListChunksObject = Literal["list",]
|
|
88
106
|
|
|
@@ -156,31 +174,26 @@ class ListChunksData(BaseModel):
|
|
|
156
174
|
|
|
157
175
|
@model_serializer(mode="wrap")
|
|
158
176
|
def serialize_model(self, handler):
|
|
159
|
-
optional_fields = ["metadata", "created_by_id", "update_by_id"]
|
|
160
|
-
nullable_fields = ["created_by_id", "update_by_id"]
|
|
161
|
-
null_default_fields = []
|
|
162
|
-
|
|
177
|
+
optional_fields = set(["metadata", "created_by_id", "update_by_id"])
|
|
178
|
+
nullable_fields = set(["created_by_id", "update_by_id"])
|
|
163
179
|
serialized = handler(self)
|
|
164
|
-
|
|
165
180
|
m = {}
|
|
166
181
|
|
|
167
182
|
for n, f in type(self).model_fields.items():
|
|
168
183
|
k = f.alias or n
|
|
169
184
|
val = serialized.get(k)
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
):
|
|
183
|
-
m[k] = val
|
|
185
|
+
is_nullable_and_explicitly_set = (
|
|
186
|
+
k in nullable_fields
|
|
187
|
+
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
if val != UNSET_SENTINEL:
|
|
191
|
+
if (
|
|
192
|
+
val is not None
|
|
193
|
+
or k not in optional_fields
|
|
194
|
+
or is_nullable_and_explicitly_set
|
|
195
|
+
):
|
|
196
|
+
m[k] = val
|
|
184
197
|
|
|
185
198
|
return m
|
|
186
199
|
|
|
@@ -40,6 +40,22 @@ class ListChunksPaginatedRequestBody(BaseModel):
|
|
|
40
40
|
|
|
41
41
|
page: Optional[int] = 1
|
|
42
42
|
|
|
43
|
+
@model_serializer(mode="wrap")
|
|
44
|
+
def serialize_model(self, handler):
|
|
45
|
+
optional_fields = set(["q", "enabled", "status", "limit", "page"])
|
|
46
|
+
serialized = handler(self)
|
|
47
|
+
m = {}
|
|
48
|
+
|
|
49
|
+
for n, f in type(self).model_fields.items():
|
|
50
|
+
k = f.alias or n
|
|
51
|
+
val = serialized.get(k)
|
|
52
|
+
|
|
53
|
+
if val != UNSET_SENTINEL:
|
|
54
|
+
if val is not None or k not in optional_fields:
|
|
55
|
+
m[k] = val
|
|
56
|
+
|
|
57
|
+
return m
|
|
58
|
+
|
|
43
59
|
|
|
44
60
|
class ListChunksPaginatedRequestTypedDict(TypedDict):
|
|
45
61
|
knowledge_id: str
|
|
@@ -65,6 +81,22 @@ class ListChunksPaginatedRequest(BaseModel):
|
|
|
65
81
|
FieldMetadata(request=RequestMetadata(media_type="application/json")),
|
|
66
82
|
] = None
|
|
67
83
|
|
|
84
|
+
@model_serializer(mode="wrap")
|
|
85
|
+
def serialize_model(self, handler):
|
|
86
|
+
optional_fields = set(["RequestBody"])
|
|
87
|
+
serialized = handler(self)
|
|
88
|
+
m = {}
|
|
89
|
+
|
|
90
|
+
for n, f in type(self).model_fields.items():
|
|
91
|
+
k = f.alias or n
|
|
92
|
+
val = serialized.get(k)
|
|
93
|
+
|
|
94
|
+
if val != UNSET_SENTINEL:
|
|
95
|
+
if val is not None or k not in optional_fields:
|
|
96
|
+
m[k] = val
|
|
97
|
+
|
|
98
|
+
return m
|
|
99
|
+
|
|
68
100
|
|
|
69
101
|
ListChunksPaginatedObject = Literal["list",]
|
|
70
102
|
|
|
@@ -140,31 +172,26 @@ class ListChunksPaginatedData(BaseModel):
|
|
|
140
172
|
|
|
141
173
|
@model_serializer(mode="wrap")
|
|
142
174
|
def serialize_model(self, handler):
|
|
143
|
-
optional_fields = ["metadata", "created_by_id", "update_by_id"]
|
|
144
|
-
nullable_fields = ["created_by_id", "update_by_id"]
|
|
145
|
-
null_default_fields = []
|
|
146
|
-
|
|
175
|
+
optional_fields = set(["metadata", "created_by_id", "update_by_id"])
|
|
176
|
+
nullable_fields = set(["created_by_id", "update_by_id"])
|
|
147
177
|
serialized = handler(self)
|
|
148
|
-
|
|
149
178
|
m = {}
|
|
150
179
|
|
|
151
180
|
for n, f in type(self).model_fields.items():
|
|
152
181
|
k = f.alias or n
|
|
153
182
|
val = serialized.get(k)
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
):
|
|
167
|
-
m[k] = val
|
|
183
|
+
is_nullable_and_explicitly_set = (
|
|
184
|
+
k in nullable_fields
|
|
185
|
+
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
if val != UNSET_SENTINEL:
|
|
189
|
+
if (
|
|
190
|
+
val is not None
|
|
191
|
+
or k not in optional_fields
|
|
192
|
+
or is_nullable_and_explicitly_set
|
|
193
|
+
):
|
|
194
|
+
m[k] = val
|
|
168
195
|
|
|
169
196
|
return m
|
|
170
197
|
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
from .conversationresponse import ConversationResponse, ConversationResponseTypedDict
|
|
5
|
-
from orq_ai_sdk.types import BaseModel
|
|
5
|
+
from orq_ai_sdk.types import BaseModel, UNSET_SENTINEL
|
|
6
6
|
from orq_ai_sdk.utils import FieldMetadata, QueryParamMetadata
|
|
7
7
|
import pydantic
|
|
8
|
+
from pydantic import model_serializer
|
|
8
9
|
from typing import List, Literal, Optional
|
|
9
10
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
11
|
|
|
@@ -48,6 +49,22 @@ class ListConversationsRequest(BaseModel):
|
|
|
48
49
|
] = None
|
|
49
50
|
r"""Filter by parent entity. When specified, returns only conversations associated with this entity. When omitted, returns standalone conversations."""
|
|
50
51
|
|
|
52
|
+
@model_serializer(mode="wrap")
|
|
53
|
+
def serialize_model(self, handler):
|
|
54
|
+
optional_fields = set(["limit", "startingAfter", "endingBefore", "entityId"])
|
|
55
|
+
serialized = handler(self)
|
|
56
|
+
m = {}
|
|
57
|
+
|
|
58
|
+
for n, f in type(self).model_fields.items():
|
|
59
|
+
k = f.alias or n
|
|
60
|
+
val = serialized.get(k)
|
|
61
|
+
|
|
62
|
+
if val != UNSET_SENTINEL:
|
|
63
|
+
if val is not None or k not in optional_fields:
|
|
64
|
+
m[k] = val
|
|
65
|
+
|
|
66
|
+
return m
|
|
67
|
+
|
|
51
68
|
|
|
52
69
|
ListConversationsObject = Literal["list",]
|
|
53
70
|
|
|
@@ -73,6 +73,22 @@ class ListDatasetDatapointsRequest(BaseModel):
|
|
|
73
73
|
] = None
|
|
74
74
|
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."""
|
|
75
75
|
|
|
76
|
+
@model_serializer(mode="wrap")
|
|
77
|
+
def serialize_model(self, handler):
|
|
78
|
+
optional_fields = set(["limit", "starting_after", "ending_before"])
|
|
79
|
+
serialized = handler(self)
|
|
80
|
+
m = {}
|
|
81
|
+
|
|
82
|
+
for n, f in type(self).model_fields.items():
|
|
83
|
+
k = f.alias or n
|
|
84
|
+
val = serialized.get(k)
|
|
85
|
+
|
|
86
|
+
if val != UNSET_SENTINEL:
|
|
87
|
+
if val is not None or k not in optional_fields:
|
|
88
|
+
m[k] = val
|
|
89
|
+
|
|
90
|
+
return m
|
|
91
|
+
|
|
76
92
|
|
|
77
93
|
ListDatasetDatapointsObject = Literal["list",]
|
|
78
94
|
|
|
@@ -144,6 +160,22 @@ class ListDatasetDatapointsMessagesCacheControl(BaseModel):
|
|
|
144
160
|
Defaults to `5m`. Only supported by `Anthropic` Claude models.
|
|
145
161
|
"""
|
|
146
162
|
|
|
163
|
+
@model_serializer(mode="wrap")
|
|
164
|
+
def serialize_model(self, handler):
|
|
165
|
+
optional_fields = set(["ttl"])
|
|
166
|
+
serialized = handler(self)
|
|
167
|
+
m = {}
|
|
168
|
+
|
|
169
|
+
for n, f in type(self).model_fields.items():
|
|
170
|
+
k = f.alias or n
|
|
171
|
+
val = serialized.get(k)
|
|
172
|
+
|
|
173
|
+
if val != UNSET_SENTINEL:
|
|
174
|
+
if val is not None or k not in optional_fields:
|
|
175
|
+
m[k] = val
|
|
176
|
+
|
|
177
|
+
return m
|
|
178
|
+
|
|
147
179
|
|
|
148
180
|
class ListDatasetDatapointsMessagesToolMessageTypedDict(TypedDict):
|
|
149
181
|
role: ListDatasetDatapointsMessagesDatasetsResponse200ApplicationJSONRole
|
|
@@ -171,31 +203,26 @@ class ListDatasetDatapointsMessagesToolMessage(BaseModel):
|
|
|
171
203
|
|
|
172
204
|
@model_serializer(mode="wrap")
|
|
173
205
|
def serialize_model(self, handler):
|
|
174
|
-
optional_fields = ["cache_control"]
|
|
175
|
-
nullable_fields = ["tool_call_id"]
|
|
176
|
-
null_default_fields = []
|
|
177
|
-
|
|
206
|
+
optional_fields = set(["cache_control"])
|
|
207
|
+
nullable_fields = set(["tool_call_id"])
|
|
178
208
|
serialized = handler(self)
|
|
179
|
-
|
|
180
209
|
m = {}
|
|
181
210
|
|
|
182
211
|
for n, f in type(self).model_fields.items():
|
|
183
212
|
k = f.alias or n
|
|
184
213
|
val = serialized.get(k)
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
):
|
|
198
|
-
m[k] = val
|
|
214
|
+
is_nullable_and_explicitly_set = (
|
|
215
|
+
k in nullable_fields
|
|
216
|
+
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
|
|
217
|
+
)
|
|
218
|
+
|
|
219
|
+
if val != UNSET_SENTINEL:
|
|
220
|
+
if (
|
|
221
|
+
val is not None
|
|
222
|
+
or k not in optional_fields
|
|
223
|
+
or is_nullable_and_explicitly_set
|
|
224
|
+
):
|
|
225
|
+
m[k] = val
|
|
199
226
|
|
|
200
227
|
return m
|
|
201
228
|
|
|
@@ -272,6 +299,22 @@ class ListDatasetDatapointsMessagesFunction(BaseModel):
|
|
|
272
299
|
arguments: Optional[str] = None
|
|
273
300
|
r"""The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function."""
|
|
274
301
|
|
|
302
|
+
@model_serializer(mode="wrap")
|
|
303
|
+
def serialize_model(self, handler):
|
|
304
|
+
optional_fields = set(["name", "arguments"])
|
|
305
|
+
serialized = handler(self)
|
|
306
|
+
m = {}
|
|
307
|
+
|
|
308
|
+
for n, f in type(self).model_fields.items():
|
|
309
|
+
k = f.alias or n
|
|
310
|
+
val = serialized.get(k)
|
|
311
|
+
|
|
312
|
+
if val != UNSET_SENTINEL:
|
|
313
|
+
if val is not None or k not in optional_fields:
|
|
314
|
+
m[k] = val
|
|
315
|
+
|
|
316
|
+
return m
|
|
317
|
+
|
|
275
318
|
|
|
276
319
|
class ListDatasetDatapointsMessagesToolCallsTypedDict(TypedDict):
|
|
277
320
|
id: str
|
|
@@ -295,6 +338,22 @@ class ListDatasetDatapointsMessagesToolCalls(BaseModel):
|
|
|
295
338
|
thought_signature: Optional[str] = None
|
|
296
339
|
r"""Encrypted representation of the model internal reasoning state during function calling. Required by Gemini 3 models when continuing a conversation after a tool call."""
|
|
297
340
|
|
|
341
|
+
@model_serializer(mode="wrap")
|
|
342
|
+
def serialize_model(self, handler):
|
|
343
|
+
optional_fields = set(["thought_signature"])
|
|
344
|
+
serialized = handler(self)
|
|
345
|
+
m = {}
|
|
346
|
+
|
|
347
|
+
for n, f in type(self).model_fields.items():
|
|
348
|
+
k = f.alias or n
|
|
349
|
+
val = serialized.get(k)
|
|
350
|
+
|
|
351
|
+
if val != UNSET_SENTINEL:
|
|
352
|
+
if val is not None or k not in optional_fields:
|
|
353
|
+
m[k] = val
|
|
354
|
+
|
|
355
|
+
return m
|
|
356
|
+
|
|
298
357
|
|
|
299
358
|
class ListDatasetDatapointsMessagesAssistantMessageTypedDict(TypedDict):
|
|
300
359
|
role: ListDatasetDatapointsMessagesDatasetsResponse200Role
|
|
@@ -336,31 +395,26 @@ class ListDatasetDatapointsMessagesAssistantMessage(BaseModel):
|
|
|
336
395
|
|
|
337
396
|
@model_serializer(mode="wrap")
|
|
338
397
|
def serialize_model(self, handler):
|
|
339
|
-
optional_fields = ["content", "refusal", "name", "audio", "tool_calls"]
|
|
340
|
-
nullable_fields = ["content", "refusal", "audio"]
|
|
341
|
-
null_default_fields = []
|
|
342
|
-
|
|
398
|
+
optional_fields = set(["content", "refusal", "name", "audio", "tool_calls"])
|
|
399
|
+
nullable_fields = set(["content", "refusal", "audio"])
|
|
343
400
|
serialized = handler(self)
|
|
344
|
-
|
|
345
401
|
m = {}
|
|
346
402
|
|
|
347
403
|
for n, f in type(self).model_fields.items():
|
|
348
404
|
k = f.alias or n
|
|
349
405
|
val = serialized.get(k)
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
):
|
|
363
|
-
m[k] = val
|
|
406
|
+
is_nullable_and_explicitly_set = (
|
|
407
|
+
k in nullable_fields
|
|
408
|
+
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
|
|
409
|
+
)
|
|
410
|
+
|
|
411
|
+
if val != UNSET_SENTINEL:
|
|
412
|
+
if (
|
|
413
|
+
val is not None
|
|
414
|
+
or k not in optional_fields
|
|
415
|
+
or is_nullable_and_explicitly_set
|
|
416
|
+
):
|
|
417
|
+
m[k] = val
|
|
364
418
|
|
|
365
419
|
return m
|
|
366
420
|
|
|
@@ -416,6 +470,22 @@ class ListDatasetDatapoints2CacheControl(BaseModel):
|
|
|
416
470
|
Defaults to `5m`. Only supported by `Anthropic` Claude models.
|
|
417
471
|
"""
|
|
418
472
|
|
|
473
|
+
@model_serializer(mode="wrap")
|
|
474
|
+
def serialize_model(self, handler):
|
|
475
|
+
optional_fields = set(["ttl"])
|
|
476
|
+
serialized = handler(self)
|
|
477
|
+
m = {}
|
|
478
|
+
|
|
479
|
+
for n, f in type(self).model_fields.items():
|
|
480
|
+
k = f.alias or n
|
|
481
|
+
val = serialized.get(k)
|
|
482
|
+
|
|
483
|
+
if val != UNSET_SENTINEL:
|
|
484
|
+
if val is not None or k not in optional_fields:
|
|
485
|
+
m[k] = val
|
|
486
|
+
|
|
487
|
+
return m
|
|
488
|
+
|
|
419
489
|
|
|
420
490
|
class ListDatasetDatapoints24TypedDict(TypedDict):
|
|
421
491
|
type: ListDatasetDatapoints2Type
|
|
@@ -434,6 +504,22 @@ class ListDatasetDatapoints24(BaseModel):
|
|
|
434
504
|
|
|
435
505
|
cache_control: Optional[ListDatasetDatapoints2CacheControl] = None
|
|
436
506
|
|
|
507
|
+
@model_serializer(mode="wrap")
|
|
508
|
+
def serialize_model(self, handler):
|
|
509
|
+
optional_fields = set(["cache_control"])
|
|
510
|
+
serialized = handler(self)
|
|
511
|
+
m = {}
|
|
512
|
+
|
|
513
|
+
for n, f in type(self).model_fields.items():
|
|
514
|
+
k = f.alias or n
|
|
515
|
+
val = serialized.get(k)
|
|
516
|
+
|
|
517
|
+
if val != UNSET_SENTINEL:
|
|
518
|
+
if val is not None or k not in optional_fields:
|
|
519
|
+
m[k] = val
|
|
520
|
+
|
|
521
|
+
return m
|
|
522
|
+
|
|
437
523
|
|
|
438
524
|
ListDatasetDatapointsContent2TypedDict = TypeAliasType(
|
|
439
525
|
"ListDatasetDatapointsContent2TypedDict",
|
|
@@ -490,6 +576,22 @@ class ListDatasetDatapointsMessagesUserMessage(BaseModel):
|
|
|
490
576
|
name: Optional[str] = None
|
|
491
577
|
r"""An optional name for the participant. Provides the model information to differentiate between participants of the same role."""
|
|
492
578
|
|
|
579
|
+
@model_serializer(mode="wrap")
|
|
580
|
+
def serialize_model(self, handler):
|
|
581
|
+
optional_fields = set(["name"])
|
|
582
|
+
serialized = handler(self)
|
|
583
|
+
m = {}
|
|
584
|
+
|
|
585
|
+
for n, f in type(self).model_fields.items():
|
|
586
|
+
k = f.alias or n
|
|
587
|
+
val = serialized.get(k)
|
|
588
|
+
|
|
589
|
+
if val != UNSET_SENTINEL:
|
|
590
|
+
if val is not None or k not in optional_fields:
|
|
591
|
+
m[k] = val
|
|
592
|
+
|
|
593
|
+
return m
|
|
594
|
+
|
|
493
595
|
|
|
494
596
|
ListDatasetDatapointsMessagesDatasetsRole = Literal["developer",]
|
|
495
597
|
r"""The role of the messages author, in this case `developer`."""
|
|
@@ -528,6 +630,22 @@ class ListDatasetDatapointsMessagesDeveloperMessage(BaseModel):
|
|
|
528
630
|
name: Optional[str] = None
|
|
529
631
|
r"""An optional name for the participant. Provides the model information to differentiate between participants of the same role."""
|
|
530
632
|
|
|
633
|
+
@model_serializer(mode="wrap")
|
|
634
|
+
def serialize_model(self, handler):
|
|
635
|
+
optional_fields = set(["name"])
|
|
636
|
+
serialized = handler(self)
|
|
637
|
+
m = {}
|
|
638
|
+
|
|
639
|
+
for n, f in type(self).model_fields.items():
|
|
640
|
+
k = f.alias or n
|
|
641
|
+
val = serialized.get(k)
|
|
642
|
+
|
|
643
|
+
if val != UNSET_SENTINEL:
|
|
644
|
+
if val is not None or k not in optional_fields:
|
|
645
|
+
m[k] = val
|
|
646
|
+
|
|
647
|
+
return m
|
|
648
|
+
|
|
531
649
|
|
|
532
650
|
ListDatasetDatapointsMessagesRole = Literal["system",]
|
|
533
651
|
r"""The role of the messages author, in this case `system`."""
|
|
@@ -569,6 +687,22 @@ class ListDatasetDatapointsMessagesSystemMessage(BaseModel):
|
|
|
569
687
|
name: Optional[str] = None
|
|
570
688
|
r"""An optional name for the participant. Provides the model information to differentiate between participants of the same role."""
|
|
571
689
|
|
|
690
|
+
@model_serializer(mode="wrap")
|
|
691
|
+
def serialize_model(self, handler):
|
|
692
|
+
optional_fields = set(["name"])
|
|
693
|
+
serialized = handler(self)
|
|
694
|
+
m = {}
|
|
695
|
+
|
|
696
|
+
for n, f in type(self).model_fields.items():
|
|
697
|
+
k = f.alias or n
|
|
698
|
+
val = serialized.get(k)
|
|
699
|
+
|
|
700
|
+
if val != UNSET_SENTINEL:
|
|
701
|
+
if val is not None or k not in optional_fields:
|
|
702
|
+
m[k] = val
|
|
703
|
+
|
|
704
|
+
return m
|
|
705
|
+
|
|
572
706
|
|
|
573
707
|
ListDatasetDatapointsMessagesTypedDict = TypeAliasType(
|
|
574
708
|
"ListDatasetDatapointsMessagesTypedDict",
|
|
@@ -642,9 +776,25 @@ class ListDatasetDatapointsEvaluations3(BaseModel):
|
|
|
642
776
|
|
|
643
777
|
source: Optional[ListDatasetDatapointsEvaluationsDatasetsSource] = "orq"
|
|
644
778
|
|
|
645
|
-
reviewed_at: Optional[datetime] = parse_datetime("2026-01-
|
|
779
|
+
reviewed_at: Optional[datetime] = parse_datetime("2026-01-28T17:04:01.035Z")
|
|
646
780
|
r"""The date and time the item was reviewed"""
|
|
647
781
|
|
|
782
|
+
@model_serializer(mode="wrap")
|
|
783
|
+
def serialize_model(self, handler):
|
|
784
|
+
optional_fields = set(["source", "reviewed_at"])
|
|
785
|
+
serialized = handler(self)
|
|
786
|
+
m = {}
|
|
787
|
+
|
|
788
|
+
for n, f in type(self).model_fields.items():
|
|
789
|
+
k = f.alias or n
|
|
790
|
+
val = serialized.get(k)
|
|
791
|
+
|
|
792
|
+
if val != UNSET_SENTINEL:
|
|
793
|
+
if val is not None or k not in optional_fields:
|
|
794
|
+
m[k] = val
|
|
795
|
+
|
|
796
|
+
return m
|
|
797
|
+
|
|
648
798
|
|
|
649
799
|
ListDatasetDatapointsEvaluationsDatasetsResponseEvaluationType = Literal[
|
|
650
800
|
"human_review",
|
|
@@ -696,9 +846,25 @@ class ListDatasetDatapointsEvaluations2(BaseModel):
|
|
|
696
846
|
|
|
697
847
|
source: Optional[ListDatasetDatapointsEvaluationsSource] = "orq"
|
|
698
848
|
|
|
699
|
-
reviewed_at: Optional[datetime] = parse_datetime("2026-01-
|
|
849
|
+
reviewed_at: Optional[datetime] = parse_datetime("2026-01-28T17:04:01.035Z")
|
|
700
850
|
r"""The date and time the item was reviewed"""
|
|
701
851
|
|
|
852
|
+
@model_serializer(mode="wrap")
|
|
853
|
+
def serialize_model(self, handler):
|
|
854
|
+
optional_fields = set(["source", "reviewed_at"])
|
|
855
|
+
serialized = handler(self)
|
|
856
|
+
m = {}
|
|
857
|
+
|
|
858
|
+
for n, f in type(self).model_fields.items():
|
|
859
|
+
k = f.alias or n
|
|
860
|
+
val = serialized.get(k)
|
|
861
|
+
|
|
862
|
+
if val != UNSET_SENTINEL:
|
|
863
|
+
if val is not None or k not in optional_fields:
|
|
864
|
+
m[k] = val
|
|
865
|
+
|
|
866
|
+
return m
|
|
867
|
+
|
|
702
868
|
|
|
703
869
|
ListDatasetDatapointsEvaluationsDatasetsEvaluationType = Literal["human_review",]
|
|
704
870
|
r"""The type of evaluation"""
|
|
@@ -748,9 +914,25 @@ class ListDatasetDatapointsEvaluations1(BaseModel):
|
|
|
748
914
|
|
|
749
915
|
source: Optional[ListDatasetDatapointsEvaluationsDatasetsResponseSource] = "orq"
|
|
750
916
|
|
|
751
|
-
reviewed_at: Optional[datetime] = parse_datetime("2026-01-
|
|
917
|
+
reviewed_at: Optional[datetime] = parse_datetime("2026-01-28T17:04:01.035Z")
|
|
752
918
|
r"""The date and time the item was reviewed"""
|
|
753
919
|
|
|
920
|
+
@model_serializer(mode="wrap")
|
|
921
|
+
def serialize_model(self, handler):
|
|
922
|
+
optional_fields = set(["source", "reviewed_at"])
|
|
923
|
+
serialized = handler(self)
|
|
924
|
+
m = {}
|
|
925
|
+
|
|
926
|
+
for n, f in type(self).model_fields.items():
|
|
927
|
+
k = f.alias or n
|
|
928
|
+
val = serialized.get(k)
|
|
929
|
+
|
|
930
|
+
if val != UNSET_SENTINEL:
|
|
931
|
+
if val is not None or k not in optional_fields:
|
|
932
|
+
m[k] = val
|
|
933
|
+
|
|
934
|
+
return m
|
|
935
|
+
|
|
754
936
|
|
|
755
937
|
ListDatasetDatapointsEvaluationsTypedDict = TypeAliasType(
|
|
756
938
|
"ListDatasetDatapointsEvaluationsTypedDict",
|
|
@@ -831,9 +1013,37 @@ class ListDatasetDatapointsData(BaseModel):
|
|
|
831
1013
|
created: Optional[datetime] = None
|
|
832
1014
|
r"""The date and time the resource was created"""
|
|
833
1015
|
|
|
834
|
-
updated: Optional[datetime] = parse_datetime("2026-01-
|
|
1016
|
+
updated: Optional[datetime] = parse_datetime("2026-01-28T17:03:47.548Z")
|
|
835
1017
|
r"""The date and time the resource was last updated"""
|
|
836
1018
|
|
|
1019
|
+
@model_serializer(mode="wrap")
|
|
1020
|
+
def serialize_model(self, handler):
|
|
1021
|
+
optional_fields = set(
|
|
1022
|
+
[
|
|
1023
|
+
"inputs",
|
|
1024
|
+
"messages",
|
|
1025
|
+
"expected_output",
|
|
1026
|
+
"evaluations",
|
|
1027
|
+
"snapshot_version",
|
|
1028
|
+
"created_by_id",
|
|
1029
|
+
"updated_by_id",
|
|
1030
|
+
"created",
|
|
1031
|
+
"updated",
|
|
1032
|
+
]
|
|
1033
|
+
)
|
|
1034
|
+
serialized = handler(self)
|
|
1035
|
+
m = {}
|
|
1036
|
+
|
|
1037
|
+
for n, f in type(self).model_fields.items():
|
|
1038
|
+
k = f.alias or n
|
|
1039
|
+
val = serialized.get(k)
|
|
1040
|
+
|
|
1041
|
+
if val != UNSET_SENTINEL:
|
|
1042
|
+
if val is not None or k not in optional_fields:
|
|
1043
|
+
m[k] = val
|
|
1044
|
+
|
|
1045
|
+
return m
|
|
1046
|
+
|
|
837
1047
|
|
|
838
1048
|
class ListDatasetDatapointsResponseBodyTypedDict(TypedDict):
|
|
839
1049
|
r"""Datapoints retrieved successfully. Returns a paginated list of datapoints."""
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
from datetime import datetime
|
|
5
|
-
from orq_ai_sdk.types import BaseModel
|
|
5
|
+
from orq_ai_sdk.types import BaseModel, UNSET_SENTINEL
|
|
6
6
|
from orq_ai_sdk.utils import FieldMetadata, QueryParamMetadata, parse_datetime
|
|
7
7
|
import pydantic
|
|
8
|
+
from pydantic import model_serializer
|
|
8
9
|
from typing import List, Literal, Optional
|
|
9
10
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
11
|
|
|
@@ -37,6 +38,22 @@ class ListDatasetsRequest(BaseModel):
|
|
|
37
38
|
] = None
|
|
38
39
|
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."""
|
|
39
40
|
|
|
41
|
+
@model_serializer(mode="wrap")
|
|
42
|
+
def serialize_model(self, handler):
|
|
43
|
+
optional_fields = set(["limit", "starting_after", "ending_before"])
|
|
44
|
+
serialized = handler(self)
|
|
45
|
+
m = {}
|
|
46
|
+
|
|
47
|
+
for n, f in type(self).model_fields.items():
|
|
48
|
+
k = f.alias or n
|
|
49
|
+
val = serialized.get(k)
|
|
50
|
+
|
|
51
|
+
if val != UNSET_SENTINEL:
|
|
52
|
+
if val is not None or k not in optional_fields:
|
|
53
|
+
m[k] = val
|
|
54
|
+
|
|
55
|
+
return m
|
|
56
|
+
|
|
40
57
|
|
|
41
58
|
ListDatasetsObject = Literal["list",]
|
|
42
59
|
|
|
@@ -96,9 +113,25 @@ class ListDatasetsData(BaseModel):
|
|
|
96
113
|
created: Optional[datetime] = None
|
|
97
114
|
r"""The date and time the resource was created"""
|
|
98
115
|
|
|
99
|
-
updated: Optional[datetime] = parse_datetime("2026-01-
|
|
116
|
+
updated: Optional[datetime] = parse_datetime("2026-01-28T17:03:47.548Z")
|
|
100
117
|
r"""The date and time the resource was last updated"""
|
|
101
118
|
|
|
119
|
+
@model_serializer(mode="wrap")
|
|
120
|
+
def serialize_model(self, handler):
|
|
121
|
+
optional_fields = set(["created_by_id", "updated_by_id", "created", "updated"])
|
|
122
|
+
serialized = handler(self)
|
|
123
|
+
m = {}
|
|
124
|
+
|
|
125
|
+
for n, f in type(self).model_fields.items():
|
|
126
|
+
k = f.alias or n
|
|
127
|
+
val = serialized.get(k)
|
|
128
|
+
|
|
129
|
+
if val != UNSET_SENTINEL:
|
|
130
|
+
if val is not None or k not in optional_fields:
|
|
131
|
+
m[k] = val
|
|
132
|
+
|
|
133
|
+
return m
|
|
134
|
+
|
|
102
135
|
|
|
103
136
|
class ListDatasetsResponseBodyTypedDict(TypedDict):
|
|
104
137
|
r"""Datasets Retrieved Successfully"""
|