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.
Files changed (166) hide show
  1. orq_ai_sdk/_version.py +3 -3
  2. orq_ai_sdk/agents.py +186 -186
  3. orq_ai_sdk/audio.py +30 -0
  4. orq_ai_sdk/basesdk.py +20 -6
  5. orq_ai_sdk/chat.py +22 -0
  6. orq_ai_sdk/completions.py +438 -0
  7. orq_ai_sdk/contacts.py +43 -855
  8. orq_ai_sdk/deployments.py +61 -0
  9. orq_ai_sdk/edits.py +364 -0
  10. orq_ai_sdk/embeddings.py +344 -0
  11. orq_ai_sdk/generations.py +370 -0
  12. orq_ai_sdk/identities.py +1037 -0
  13. orq_ai_sdk/images.py +28 -0
  14. orq_ai_sdk/models/__init__.py +5746 -737
  15. orq_ai_sdk/models/actionreviewedstreamingevent.py +18 -1
  16. orq_ai_sdk/models/actionreviewrequestedstreamingevent.py +44 -1
  17. orq_ai_sdk/models/agenterroredstreamingevent.py +18 -1
  18. orq_ai_sdk/models/agentinactivestreamingevent.py +168 -70
  19. orq_ai_sdk/models/agentmessagecreatedstreamingevent.py +18 -2
  20. orq_ai_sdk/models/agentresponsemessage.py +18 -2
  21. orq_ai_sdk/models/agentstartedstreamingevent.py +127 -2
  22. orq_ai_sdk/models/agentthoughtstreamingevent.py +178 -211
  23. orq_ai_sdk/models/conversationresponse.py +31 -20
  24. orq_ai_sdk/models/conversationwithmessagesresponse.py +31 -20
  25. orq_ai_sdk/models/createagentrequestop.py +1945 -383
  26. orq_ai_sdk/models/createagentresponse.py +147 -91
  27. orq_ai_sdk/models/createagentresponserequestop.py +111 -2
  28. orq_ai_sdk/models/createchatcompletionop.py +1381 -861
  29. orq_ai_sdk/models/createchunkop.py +46 -19
  30. orq_ai_sdk/models/createcompletionop.py +2078 -0
  31. orq_ai_sdk/models/createcontactop.py +45 -56
  32. orq_ai_sdk/models/createconversationop.py +61 -39
  33. orq_ai_sdk/models/createconversationresponseop.py +68 -4
  34. orq_ai_sdk/models/createdatasetitemop.py +424 -80
  35. orq_ai_sdk/models/createdatasetop.py +19 -2
  36. orq_ai_sdk/models/createdatasourceop.py +92 -26
  37. orq_ai_sdk/models/createembeddingop.py +579 -0
  38. orq_ai_sdk/models/createevalop.py +552 -24
  39. orq_ai_sdk/models/createidentityop.py +176 -0
  40. orq_ai_sdk/models/createimageeditop.py +715 -0
  41. orq_ai_sdk/models/createimageop.py +407 -128
  42. orq_ai_sdk/models/createimagevariationop.py +706 -0
  43. orq_ai_sdk/models/createknowledgeop.py +186 -121
  44. orq_ai_sdk/models/creatememorydocumentop.py +50 -1
  45. orq_ai_sdk/models/creatememoryop.py +34 -21
  46. orq_ai_sdk/models/creatememorystoreop.py +34 -1
  47. orq_ai_sdk/models/createmoderationop.py +521 -0
  48. orq_ai_sdk/models/createpromptop.py +2759 -1251
  49. orq_ai_sdk/models/creatererankop.py +608 -0
  50. orq_ai_sdk/models/createresponseop.py +2567 -0
  51. orq_ai_sdk/models/createspeechop.py +466 -0
  52. orq_ai_sdk/models/createtoolop.py +537 -12
  53. orq_ai_sdk/models/createtranscriptionop.py +732 -0
  54. orq_ai_sdk/models/createtranslationop.py +702 -0
  55. orq_ai_sdk/models/datapart.py +18 -1
  56. orq_ai_sdk/models/deletechunksop.py +34 -1
  57. orq_ai_sdk/models/{deletecontactop.py → deleteidentityop.py} +9 -9
  58. orq_ai_sdk/models/deletepromptop.py +26 -0
  59. orq_ai_sdk/models/deploymentcreatemetricop.py +362 -76
  60. orq_ai_sdk/models/deploymentgetconfigop.py +635 -194
  61. orq_ai_sdk/models/deploymentinvokeop.py +168 -173
  62. orq_ai_sdk/models/deploymentsop.py +195 -58
  63. orq_ai_sdk/models/deploymentstreamop.py +652 -304
  64. orq_ai_sdk/models/errorpart.py +18 -1
  65. orq_ai_sdk/models/filecontentpartschema.py +18 -1
  66. orq_ai_sdk/models/filegetop.py +19 -2
  67. orq_ai_sdk/models/filelistop.py +35 -2
  68. orq_ai_sdk/models/filepart.py +50 -1
  69. orq_ai_sdk/models/fileuploadop.py +51 -2
  70. orq_ai_sdk/models/generateconversationnameop.py +31 -20
  71. orq_ai_sdk/models/get_v2_evaluators_id_versionsop.py +34 -1
  72. orq_ai_sdk/models/get_v2_tools_tool_id_versions_version_id_op.py +18 -1
  73. orq_ai_sdk/models/get_v2_tools_tool_id_versionsop.py +34 -1
  74. orq_ai_sdk/models/getallmemoriesop.py +34 -21
  75. orq_ai_sdk/models/getallmemorydocumentsop.py +42 -1
  76. orq_ai_sdk/models/getallmemorystoresop.py +34 -1
  77. orq_ai_sdk/models/getallpromptsop.py +1696 -230
  78. orq_ai_sdk/models/getalltoolsop.py +325 -8
  79. orq_ai_sdk/models/getchunkscountop.py +34 -1
  80. orq_ai_sdk/models/getevalsop.py +395 -43
  81. orq_ai_sdk/models/getonechunkop.py +14 -19
  82. orq_ai_sdk/models/getoneknowledgeop.py +116 -96
  83. orq_ai_sdk/models/getonepromptop.py +1679 -230
  84. orq_ai_sdk/models/getpromptversionop.py +1676 -216
  85. orq_ai_sdk/models/imagecontentpartschema.py +50 -1
  86. orq_ai_sdk/models/internal/globals.py +18 -1
  87. orq_ai_sdk/models/invokeagentop.py +140 -2
  88. orq_ai_sdk/models/invokedeploymentrequest.py +418 -80
  89. orq_ai_sdk/models/invokeevalop.py +160 -131
  90. orq_ai_sdk/models/listagentsop.py +805 -166
  91. orq_ai_sdk/models/listchunksop.py +32 -19
  92. orq_ai_sdk/models/listchunkspaginatedop.py +46 -19
  93. orq_ai_sdk/models/listconversationsop.py +18 -1
  94. orq_ai_sdk/models/listdatasetdatapointsop.py +252 -42
  95. orq_ai_sdk/models/listdatasetsop.py +35 -2
  96. orq_ai_sdk/models/listdatasourcesop.py +35 -26
  97. orq_ai_sdk/models/{listcontactsop.py → listidentitiesop.py} +89 -79
  98. orq_ai_sdk/models/listknowledgebasesop.py +132 -96
  99. orq_ai_sdk/models/listmodelsop.py +1 -0
  100. orq_ai_sdk/models/listpromptversionsop.py +1690 -216
  101. orq_ai_sdk/models/parseop.py +161 -17
  102. orq_ai_sdk/models/partdoneevent.py +19 -2
  103. orq_ai_sdk/models/post_v2_router_ocrop.py +408 -0
  104. orq_ai_sdk/models/publiccontact.py +27 -4
  105. orq_ai_sdk/models/publicidentity.py +62 -0
  106. orq_ai_sdk/models/reasoningpart.py +19 -2
  107. orq_ai_sdk/models/refusalpartschema.py +18 -1
  108. orq_ai_sdk/models/remoteconfigsgetconfigop.py +34 -1
  109. orq_ai_sdk/models/responsedoneevent.py +114 -84
  110. orq_ai_sdk/models/responsestartedevent.py +18 -1
  111. orq_ai_sdk/models/retrieveagentrequestop.py +799 -166
  112. orq_ai_sdk/models/retrievedatapointop.py +236 -42
  113. orq_ai_sdk/models/retrievedatasetop.py +19 -2
  114. orq_ai_sdk/models/retrievedatasourceop.py +17 -26
  115. orq_ai_sdk/models/{retrievecontactop.py → retrieveidentityop.py} +38 -41
  116. orq_ai_sdk/models/retrievememorydocumentop.py +18 -1
  117. orq_ai_sdk/models/retrievememoryop.py +18 -21
  118. orq_ai_sdk/models/retrievememorystoreop.py +18 -1
  119. orq_ai_sdk/models/retrievetoolop.py +309 -8
  120. orq_ai_sdk/models/runagentop.py +1462 -196
  121. orq_ai_sdk/models/searchknowledgeop.py +108 -1
  122. orq_ai_sdk/models/security.py +18 -1
  123. orq_ai_sdk/models/streamagentop.py +93 -2
  124. orq_ai_sdk/models/streamrunagentop.py +1439 -194
  125. orq_ai_sdk/models/textcontentpartschema.py +34 -1
  126. orq_ai_sdk/models/thinkingconfigenabledschema.py +18 -1
  127. orq_ai_sdk/models/toolcallpart.py +18 -1
  128. orq_ai_sdk/models/tooldoneevent.py +18 -1
  129. orq_ai_sdk/models/toolexecutionfailedstreamingevent.py +50 -1
  130. orq_ai_sdk/models/toolexecutionfinishedstreamingevent.py +34 -1
  131. orq_ai_sdk/models/toolexecutionstartedstreamingevent.py +34 -1
  132. orq_ai_sdk/models/toolresultpart.py +18 -1
  133. orq_ai_sdk/models/toolreviewrequestedevent.py +18 -1
  134. orq_ai_sdk/models/toolstartedevent.py +18 -1
  135. orq_ai_sdk/models/updateagentop.py +1968 -397
  136. orq_ai_sdk/models/updatechunkop.py +46 -19
  137. orq_ai_sdk/models/updateconversationop.py +61 -39
  138. orq_ai_sdk/models/updatedatapointop.py +424 -80
  139. orq_ai_sdk/models/updatedatasetop.py +51 -2
  140. orq_ai_sdk/models/updatedatasourceop.py +17 -26
  141. orq_ai_sdk/models/updateevalop.py +577 -16
  142. orq_ai_sdk/models/{updatecontactop.py → updateidentityop.py} +78 -68
  143. orq_ai_sdk/models/updateknowledgeop.py +234 -190
  144. orq_ai_sdk/models/updatememorydocumentop.py +50 -1
  145. orq_ai_sdk/models/updatememoryop.py +50 -21
  146. orq_ai_sdk/models/updatememorystoreop.py +66 -1
  147. orq_ai_sdk/models/updatepromptop.py +2854 -1448
  148. orq_ai_sdk/models/updatetoolop.py +592 -9
  149. orq_ai_sdk/models/usermessagerequest.py +18 -2
  150. orq_ai_sdk/moderations.py +218 -0
  151. orq_ai_sdk/orq_completions.py +666 -0
  152. orq_ai_sdk/orq_responses.py +398 -0
  153. orq_ai_sdk/prompts.py +28 -36
  154. orq_ai_sdk/rerank.py +330 -0
  155. orq_ai_sdk/router.py +89 -641
  156. orq_ai_sdk/sdk.py +3 -0
  157. orq_ai_sdk/speech.py +333 -0
  158. orq_ai_sdk/transcriptions.py +416 -0
  159. orq_ai_sdk/translations.py +384 -0
  160. orq_ai_sdk/utils/__init__.py +13 -1
  161. orq_ai_sdk/variations.py +364 -0
  162. {orq_ai_sdk-4.2.0rc28.dist-info → orq_ai_sdk-4.3.0rc7.dist-info}/METADATA +169 -148
  163. orq_ai_sdk-4.3.0rc7.dist-info/RECORD +263 -0
  164. {orq_ai_sdk-4.2.0rc28.dist-info → orq_ai_sdk-4.3.0rc7.dist-info}/WHEEL +2 -1
  165. orq_ai_sdk-4.3.0rc7.dist-info/top_level.txt +1 -0
  166. orq_ai_sdk-4.2.0rc28.dist-info/RECORD +0 -233
@@ -1,7 +1,8 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from orq_ai_sdk.types import BaseModel
4
+ from orq_ai_sdk.types import BaseModel, UNSET_SENTINEL
5
+ from pydantic import model_serializer
5
6
  from typing import Literal, Optional
6
7
  from typing_extensions import NotRequired, TypedDict
7
8
 
@@ -25,3 +26,19 @@ class ErrorPart(BaseModel):
25
26
  error: str
26
27
 
27
28
  code: Optional[float] = None
29
+
30
+ @model_serializer(mode="wrap")
31
+ def serialize_model(self, handler):
32
+ optional_fields = set(["code"])
33
+ serialized = handler(self)
34
+ m = {}
35
+
36
+ for n, f in type(self).model_fields.items():
37
+ k = f.alias or n
38
+ val = serialized.get(k)
39
+
40
+ if val != UNSET_SENTINEL:
41
+ if val is not None or k not in optional_fields:
42
+ m[k] = val
43
+
44
+ return m
@@ -1,8 +1,9 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from orq_ai_sdk.types import BaseModel
4
+ from orq_ai_sdk.types import BaseModel, UNSET_SENTINEL
5
5
  import pydantic
6
+ from pydantic import model_serializer
6
7
  from typing import Optional
7
8
  from typing_extensions import Annotated, NotRequired, TypedDict
8
9
 
@@ -34,3 +35,19 @@ class FileContentPartSchema(BaseModel):
34
35
 
35
36
  filename: Optional[str] = None
36
37
  r"""The name of the file, used when passing the file to the model as a string."""
38
+
39
+ @model_serializer(mode="wrap")
40
+ def serialize_model(self, handler):
41
+ optional_fields = set(["file_data", "uri", "mimeType", "filename"])
42
+ serialized = handler(self)
43
+ m = {}
44
+
45
+ for n, f in type(self).model_fields.items():
46
+ k = f.alias or n
47
+ val = serialized.get(k)
48
+
49
+ if val != UNSET_SENTINEL:
50
+ if val is not None or k not in optional_fields:
51
+ m[k] = val
52
+
53
+ return m
@@ -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, PathParamMetadata, parse_datetime
7
7
  import pydantic
8
+ from pydantic import model_serializer
8
9
  from typing import Literal, Optional
9
10
  from typing_extensions import Annotated, NotRequired, TypedDict
10
11
 
@@ -63,5 +64,21 @@ class FileGetResponseBody(BaseModel):
63
64
  workspace_id: str
64
65
  r"""The id of the resource"""
65
66
 
66
- created: Optional[datetime] = parse_datetime("2026-01-14T08:04:35.181Z")
67
+ created: Optional[datetime] = parse_datetime("2026-01-28T17:03:50.851Z")
67
68
  r"""The date and time the resource was created"""
69
+
70
+ @model_serializer(mode="wrap")
71
+ def serialize_model(self, handler):
72
+ optional_fields = set(["created"])
73
+ serialized = handler(self)
74
+ m = {}
75
+
76
+ for n, f in type(self).model_fields.items():
77
+ k = f.alias or n
78
+ val = serialized.get(k)
79
+
80
+ if val != UNSET_SENTINEL:
81
+ if val is not None or k not in optional_fields:
82
+ m[k] = val
83
+
84
+ return m
@@ -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 FileListRequest(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
  FileListObject = Literal["list",]
42
59
 
@@ -79,9 +96,25 @@ class FileListData(BaseModel):
79
96
  workspace_id: str
80
97
  r"""The id of the resource"""
81
98
 
82
- created: Optional[datetime] = parse_datetime("2026-01-14T08:04:35.181Z")
99
+ created: Optional[datetime] = parse_datetime("2026-01-28T17:03:50.851Z")
83
100
  r"""The date and time the resource was created"""
84
101
 
102
+ @model_serializer(mode="wrap")
103
+ def serialize_model(self, handler):
104
+ optional_fields = set(["created"])
105
+ serialized = handler(self)
106
+ m = {}
107
+
108
+ for n, f in type(self).model_fields.items():
109
+ k = f.alias or n
110
+ val = serialized.get(k)
111
+
112
+ if val != UNSET_SENTINEL:
113
+ if val is not None or k not in optional_fields:
114
+ m[k] = val
115
+
116
+ return m
117
+
85
118
 
86
119
  class FileListResponseBodyTypedDict(TypedDict):
87
120
  r"""Files retrieved successfully"""
@@ -1,8 +1,9 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from orq_ai_sdk.types import BaseModel
4
+ from orq_ai_sdk.types import BaseModel, UNSET_SENTINEL
5
5
  import pydantic
6
+ from pydantic import model_serializer
6
7
  from typing import Any, Dict, Literal, Optional, Union
7
8
  from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
8
9
 
@@ -33,6 +34,22 @@ class FileInURIFormat(BaseModel):
33
34
  name: Optional[str] = None
34
35
  r"""Optional name for the file"""
35
36
 
37
+ @model_serializer(mode="wrap")
38
+ def serialize_model(self, handler):
39
+ optional_fields = set(["mimeType", "name"])
40
+ serialized = handler(self)
41
+ m = {}
42
+
43
+ for n, f in type(self).model_fields.items():
44
+ k = f.alias or n
45
+ val = serialized.get(k)
46
+
47
+ if val != UNSET_SENTINEL:
48
+ if val is not None or k not in optional_fields:
49
+ m[k] = val
50
+
51
+ return m
52
+
36
53
 
37
54
  class BinaryFormatTypedDict(TypedDict):
38
55
  r"""Binary in base64 format. Check in the model's documentation for the supported mime types for the binary format."""
@@ -57,6 +74,22 @@ class BinaryFormat(BaseModel):
57
74
  name: Optional[str] = None
58
75
  r"""Optional name for the file"""
59
76
 
77
+ @model_serializer(mode="wrap")
78
+ def serialize_model(self, handler):
79
+ optional_fields = set(["mimeType", "name"])
80
+ serialized = handler(self)
81
+ m = {}
82
+
83
+ for n, f in type(self).model_fields.items():
84
+ k = f.alias or n
85
+ val = serialized.get(k)
86
+
87
+ if val != UNSET_SENTINEL:
88
+ if val is not None or k not in optional_fields:
89
+ m[k] = val
90
+
91
+ return m
92
+
60
93
 
61
94
  FileTypedDict = TypeAliasType(
62
95
  "FileTypedDict", Union[BinaryFormatTypedDict, FileInURIFormatTypedDict]
@@ -82,3 +115,19 @@ class FilePart(BaseModel):
82
115
  file: File
83
116
 
84
117
  metadata: Optional[Dict[str, Any]] = None
118
+
119
+ @model_serializer(mode="wrap")
120
+ def serialize_model(self, handler):
121
+ optional_fields = set(["metadata"])
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
@@ -3,9 +3,10 @@
3
3
  from __future__ import annotations
4
4
  from datetime import datetime
5
5
  import io
6
- from orq_ai_sdk.types import BaseModel
6
+ from orq_ai_sdk.types import BaseModel, UNSET_SENTINEL
7
7
  from orq_ai_sdk.utils import FieldMetadata, MultipartFormMetadata, parse_datetime
8
8
  import pydantic
9
+ from pydantic import model_serializer
9
10
  from typing import IO, Literal, Optional, Union
10
11
  from typing_extensions import Annotated, NotRequired, TypedDict
11
12
 
@@ -33,6 +34,22 @@ class FileUploadFile(BaseModel):
33
34
  FieldMetadata(multipart=True),
34
35
  ] = None
35
36
 
37
+ @model_serializer(mode="wrap")
38
+ def serialize_model(self, handler):
39
+ optional_fields = set(["contentType"])
40
+ serialized = handler(self)
41
+ m = {}
42
+
43
+ for n, f in type(self).model_fields.items():
44
+ k = f.alias or n
45
+ val = serialized.get(k)
46
+
47
+ if val != UNSET_SENTINEL:
48
+ if val is not None or k not in optional_fields:
49
+ m[k] = val
50
+
51
+ return m
52
+
36
53
 
37
54
  Purpose = Literal[
38
55
  "retrieval",
@@ -58,6 +75,22 @@ class FileUploadRequestBody(BaseModel):
58
75
  purpose: Annotated[Optional[Purpose], FieldMetadata(multipart=True)] = "retrieval"
59
76
  r"""The intended purpose of the uploaded file."""
60
77
 
78
+ @model_serializer(mode="wrap")
79
+ def serialize_model(self, handler):
80
+ optional_fields = set(["purpose"])
81
+ serialized = handler(self)
82
+ m = {}
83
+
84
+ for n, f in type(self).model_fields.items():
85
+ k = f.alias or n
86
+ val = serialized.get(k)
87
+
88
+ if val != UNSET_SENTINEL:
89
+ if val is not None or k not in optional_fields:
90
+ m[k] = val
91
+
92
+ return m
93
+
61
94
 
62
95
  FileUploadPurpose = Literal[
63
96
  "retrieval",
@@ -101,5 +134,21 @@ class FileUploadResponseBody(BaseModel):
101
134
  workspace_id: str
102
135
  r"""The id of the resource"""
103
136
 
104
- created: Optional[datetime] = parse_datetime("2026-01-14T08:04:35.181Z")
137
+ created: Optional[datetime] = parse_datetime("2026-01-28T17:03:50.851Z")
105
138
  r"""The date and time the resource was created"""
139
+
140
+ @model_serializer(mode="wrap")
141
+ def serialize_model(self, handler):
142
+ optional_fields = set(["created"])
143
+ serialized = handler(self)
144
+ m = {}
145
+
146
+ for n, f in type(self).model_fields.items():
147
+ k = f.alias or n
148
+ val = serialized.get(k)
149
+
150
+ if val != UNSET_SENTINEL:
151
+ if val is not None or k not in optional_fields:
152
+ m[k] = val
153
+
154
+ return m
@@ -125,31 +125,26 @@ class GenerateConversationNameMetadata(BaseModel):
125
125
 
126
126
  @model_serializer(mode="wrap")
127
127
  def serialize_model(self, handler):
128
- optional_fields = ["generatingTitle", "entityId", "model"]
129
- nullable_fields = ["entityId", "model"]
130
- null_default_fields = []
131
-
128
+ optional_fields = set(["generatingTitle", "entityId", "model"])
129
+ nullable_fields = set(["entityId", "model"])
132
130
  serialized = handler(self)
133
-
134
131
  m = {}
135
132
 
136
133
  for n, f in type(self).model_fields.items():
137
134
  k = f.alias or n
138
135
  val = serialized.get(k)
139
- serialized.pop(k, None)
140
-
141
- optional_nullable = k in optional_fields and k in nullable_fields
142
- is_set = (
143
- self.__pydantic_fields_set__.intersection({n})
144
- or k in null_default_fields
145
- ) # pylint: disable=no-member
146
-
147
- if val is not None and val != UNSET_SENTINEL:
148
- m[k] = val
149
- elif val != UNSET_SENTINEL and (
150
- not k in optional_fields or (optional_nullable and is_set)
151
- ):
152
- m[k] = val
136
+ is_nullable_and_explicitly_set = (
137
+ k in nullable_fields
138
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
139
+ )
140
+
141
+ if val != UNSET_SENTINEL:
142
+ if (
143
+ val is not None
144
+ or k not in optional_fields
145
+ or is_nullable_and_explicitly_set
146
+ ):
147
+ m[k] = val
153
148
 
154
149
  return m
155
150
 
@@ -191,7 +186,7 @@ class GenerateConversationNameResponseBody(BaseModel):
191
186
  r"""Unix timestamp in milliseconds when the conversation was last modified."""
192
187
 
193
188
  id: Annotated[Optional[str], pydantic.Field(alias="_id")] = (
194
- "conv_01kexrj7rsncjwv8htv64hpv94"
189
+ "conv_01kg2rzqd06dhk2gje72axp614"
195
190
  )
196
191
  r"""Unique conversation identifier with `conv_` prefix."""
197
192
 
@@ -203,3 +198,19 @@ class GenerateConversationNameResponseBody(BaseModel):
203
198
 
204
199
  metadata: Optional[GenerateConversationNameMetadata] = None
205
200
  r"""Additional conversation metadata."""
201
+
202
+ @model_serializer(mode="wrap")
203
+ def serialize_model(self, handler):
204
+ optional_fields = set(["_id", "createdById", "updatedById", "metadata"])
205
+ serialized = handler(self)
206
+ m = {}
207
+
208
+ for n, f in type(self).model_fields.items():
209
+ k = f.alias or n
210
+ val = serialized.get(k)
211
+
212
+ if val != UNSET_SENTINEL:
213
+ if val is not None or k not in optional_fields:
214
+ m[k] = val
215
+
216
+ return m
@@ -4,9 +4,10 @@ from __future__ import annotations
4
4
  from dataclasses import dataclass, field
5
5
  import httpx
6
6
  from orq_ai_sdk.models import OrqError
7
- from orq_ai_sdk.types import BaseModel
7
+ from orq_ai_sdk.types import BaseModel, UNSET_SENTINEL
8
8
  from orq_ai_sdk.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
9
9
  import pydantic
10
+ from pydantic import model_serializer
10
11
  from typing import Any, Dict, List, Literal, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
12
13
 
@@ -44,6 +45,22 @@ class GetV2EvaluatorsIDVersionsRequest(BaseModel):
44
45
  ] = None
45
46
  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."""
46
47
 
48
+ @model_serializer(mode="wrap")
49
+ def serialize_model(self, handler):
50
+ optional_fields = set(["limit", "starting_after", "ending_before"])
51
+ serialized = handler(self)
52
+ m = {}
53
+
54
+ for n, f in type(self).model_fields.items():
55
+ k = f.alias or n
56
+ val = serialized.get(k)
57
+
58
+ if val != UNSET_SENTINEL:
59
+ if val is not None or k not in optional_fields:
60
+ m[k] = val
61
+
62
+ return m
63
+
47
64
 
48
65
  class GetV2EvaluatorsIDVersionsEvaluatorsResponseBodyData(BaseModel):
49
66
  message: str
@@ -110,6 +127,22 @@ class GetV2EvaluatorsIDVersionsData(BaseModel):
110
127
 
111
128
  description: Optional[str] = None
112
129
 
130
+ @model_serializer(mode="wrap")
131
+ def serialize_model(self, handler):
132
+ optional_fields = set(["created_by_id", "updated_by_id", "description"])
133
+ serialized = handler(self)
134
+ m = {}
135
+
136
+ for n, f in type(self).model_fields.items():
137
+ k = f.alias or n
138
+ val = serialized.get(k)
139
+
140
+ if val != UNSET_SENTINEL:
141
+ if val is not None or k not in optional_fields:
142
+ m[k] = val
143
+
144
+ return m
145
+
113
146
 
114
147
  class GetV2EvaluatorsIDVersionsResponseBodyTypedDict(TypedDict):
115
148
  r"""Evaluator versions retrieved"""
@@ -4,9 +4,10 @@ from __future__ import annotations
4
4
  from dataclasses import dataclass, field
5
5
  import httpx
6
6
  from orq_ai_sdk.models import OrqError
7
- from orq_ai_sdk.types import BaseModel
7
+ from orq_ai_sdk.types import BaseModel, UNSET_SENTINEL
8
8
  from orq_ai_sdk.utils import FieldMetadata, PathParamMetadata
9
9
  import pydantic
10
+ from pydantic import model_serializer
10
11
  from typing import Any, Dict, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
12
13
 
@@ -91,3 +92,19 @@ class GetV2ToolsToolIDVersionsVersionIDResponseBody(BaseModel):
91
92
  updated_by_id: Optional[str] = None
92
93
 
93
94
  description: Optional[str] = None
95
+
96
+ @model_serializer(mode="wrap")
97
+ def serialize_model(self, handler):
98
+ optional_fields = set(["created_by_id", "updated_by_id", "description"])
99
+ serialized = handler(self)
100
+ m = {}
101
+
102
+ for n, f in type(self).model_fields.items():
103
+ k = f.alias or n
104
+ val = serialized.get(k)
105
+
106
+ if val != UNSET_SENTINEL:
107
+ if val is not None or k not in optional_fields:
108
+ m[k] = val
109
+
110
+ return m
@@ -4,9 +4,10 @@ from __future__ import annotations
4
4
  from dataclasses import dataclass, field
5
5
  import httpx
6
6
  from orq_ai_sdk.models import OrqError
7
- from orq_ai_sdk.types import BaseModel
7
+ from orq_ai_sdk.types import BaseModel, UNSET_SENTINEL
8
8
  from orq_ai_sdk.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
9
9
  import pydantic
10
+ from pydantic import model_serializer
10
11
  from typing import Any, Dict, List, Literal, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
12
13
 
@@ -44,6 +45,22 @@ class GetV2ToolsToolIDVersionsRequest(BaseModel):
44
45
  ] = None
45
46
  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."""
46
47
 
48
+ @model_serializer(mode="wrap")
49
+ def serialize_model(self, handler):
50
+ optional_fields = set(["limit", "starting_after", "ending_before"])
51
+ serialized = handler(self)
52
+ m = {}
53
+
54
+ for n, f in type(self).model_fields.items():
55
+ k = f.alias or n
56
+ val = serialized.get(k)
57
+
58
+ if val != UNSET_SENTINEL:
59
+ if val is not None or k not in optional_fields:
60
+ m[k] = val
61
+
62
+ return m
63
+
47
64
 
48
65
  class GetV2ToolsToolIDVersionsToolsResponseBodyData(BaseModel):
49
66
  message: str
@@ -110,6 +127,22 @@ class GetV2ToolsToolIDVersionsData(BaseModel):
110
127
 
111
128
  description: Optional[str] = None
112
129
 
130
+ @model_serializer(mode="wrap")
131
+ def serialize_model(self, handler):
132
+ optional_fields = set(["created_by_id", "updated_by_id", "description"])
133
+ serialized = handler(self)
134
+ m = {}
135
+
136
+ for n, f in type(self).model_fields.items():
137
+ k = f.alias or n
138
+ val = serialized.get(k)
139
+
140
+ if val != UNSET_SENTINEL:
141
+ if val is not None or k not in optional_fields:
142
+ m[k] = val
143
+
144
+ return m
145
+
113
146
 
114
147
  class GetV2ToolsToolIDVersionsResponseBodyTypedDict(TypedDict):
115
148
  r"""Tool versions retrieved"""
@@ -58,14 +58,31 @@ class GetAllMemoriesRequest(BaseModel):
58
58
  ] = None
59
59
  r"""Search query to filter memories by entity_id"""
60
60
 
61
+ @model_serializer(mode="wrap")
62
+ def serialize_model(self, handler):
63
+ optional_fields = set(["limit", "starting_after", "ending_before", "q"])
64
+ serialized = handler(self)
65
+ m = {}
66
+
67
+ for n, f in type(self).model_fields.items():
68
+ k = f.alias or n
69
+ val = serialized.get(k)
70
+
71
+ if val != UNSET_SENTINEL:
72
+ if val is not None or k not in optional_fields:
73
+ m[k] = val
74
+
75
+ return m
76
+
61
77
 
62
78
  GetAllMemoriesObject = Literal["list",]
63
79
 
64
80
 
65
81
  class GetAllMemoriesDataTypedDict(TypedDict):
66
82
  id: str
83
+ r"""Unique identifier for the memory. This is automatically generated by the system."""
67
84
  entity_id: str
68
- r"""This property have been deprecated and moved to `_id`. Please refer to `_id` for future operations"""
85
+ r"""Customer provided entity ID for the memory. This is used to link the memory to a specific user/company/session/etc. Has to be unique within the memory store."""
69
86
  created: str
70
87
  updated: str
71
88
  store_id: str
@@ -78,6 +95,7 @@ class GetAllMemoriesDataTypedDict(TypedDict):
78
95
 
79
96
  class GetAllMemoriesData(BaseModel):
80
97
  id: Annotated[str, pydantic.Field(alias="_id")]
98
+ r"""Unique identifier for the memory. This is automatically generated by the system."""
81
99
 
82
100
  entity_id: Annotated[
83
101
  str,
@@ -85,7 +103,7 @@ class GetAllMemoriesData(BaseModel):
85
103
  deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible."
86
104
  ),
87
105
  ]
88
- r"""This property have been deprecated and moved to `_id`. Please refer to `_id` for future operations"""
106
+ r"""Customer provided entity ID for the memory. This is used to link the memory to a specific user/company/session/etc. Has to be unique within the memory store."""
89
107
 
90
108
  created: str
91
109
 
@@ -104,31 +122,26 @@ class GetAllMemoriesData(BaseModel):
104
122
 
105
123
  @model_serializer(mode="wrap")
106
124
  def serialize_model(self, handler):
107
- optional_fields = ["created_by_id", "updated_by_id"]
108
- nullable_fields = ["created_by_id", "updated_by_id"]
109
- null_default_fields = []
110
-
125
+ optional_fields = set(["created_by_id", "updated_by_id"])
126
+ nullable_fields = set(["created_by_id", "updated_by_id"])
111
127
  serialized = handler(self)
112
-
113
128
  m = {}
114
129
 
115
130
  for n, f in type(self).model_fields.items():
116
131
  k = f.alias or n
117
132
  val = serialized.get(k)
118
- serialized.pop(k, None)
119
-
120
- optional_nullable = k in optional_fields and k in nullable_fields
121
- is_set = (
122
- self.__pydantic_fields_set__.intersection({n})
123
- or k in null_default_fields
124
- ) # pylint: disable=no-member
125
-
126
- if val is not None and val != UNSET_SENTINEL:
127
- m[k] = val
128
- elif val != UNSET_SENTINEL and (
129
- not k in optional_fields or (optional_nullable and is_set)
130
- ):
131
- m[k] = val
133
+ is_nullable_and_explicitly_set = (
134
+ k in nullable_fields
135
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
136
+ )
137
+
138
+ if val != UNSET_SENTINEL:
139
+ if (
140
+ val is not None
141
+ or k not in optional_fields
142
+ or is_nullable_and_explicitly_set
143
+ ):
144
+ m[k] = val
132
145
 
133
146
  return m
134
147