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
@@ -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 parse_datetime
7
7
  import pydantic
8
+ from pydantic import model_serializer
8
9
  from typing import Optional
9
10
  from typing_extensions import Annotated, NotRequired, TypedDict
10
11
 
@@ -93,5 +94,21 @@ class CreateDatasetResponseBody(BaseModel):
93
94
  created: Optional[datetime] = None
94
95
  r"""The date and time the resource was created"""
95
96
 
96
- updated: Optional[datetime] = parse_datetime("2026-01-14T08:04:31.906Z")
97
+ updated: Optional[datetime] = parse_datetime("2026-01-28T17:03:47.548Z")
97
98
  r"""The date and time the resource was last updated"""
99
+
100
+ @model_serializer(mode="wrap")
101
+ def serialize_model(self, handler):
102
+ optional_fields = set(["created_by_id", "updated_by_id", "created", "updated"])
103
+ serialized = handler(self)
104
+ m = {}
105
+
106
+ for n, f in type(self).model_fields.items():
107
+ k = f.alias or n
108
+ val = serialized.get(k)
109
+
110
+ if val != UNSET_SENTINEL:
111
+ if val is not None or k not in optional_fields:
112
+ m[k] = val
113
+
114
+ return m
@@ -44,6 +44,22 @@ class ChunkingConfiguration2(BaseModel):
44
44
  chunk_overlap: Optional[float] = 0
45
45
  r"""Specifies the number of characters to overlap between consecutive chunks. This overlap helps maintain semantic continuity when splitting large text elements."""
46
46
 
47
+ @model_serializer(mode="wrap")
48
+ def serialize_model(self, handler):
49
+ optional_fields = set(["chunk_max_characters", "chunk_overlap"])
50
+ serialized = handler(self)
51
+ m = {}
52
+
53
+ for n, f in type(self).model_fields.items():
54
+ k = f.alias or n
55
+ val = serialized.get(k)
56
+
57
+ if val != UNSET_SENTINEL:
58
+ if val is not None or k not in optional_fields:
59
+ m[k] = val
60
+
61
+ return m
62
+
47
63
 
48
64
  ChunkingConfigurationType = Literal["default",]
49
65
 
@@ -125,6 +141,33 @@ class ChunkingCleanupOptions(BaseModel):
125
141
  clean_whitespaces: Optional[bool] = None
126
142
  r"""Trims and normalizes excessive whitespace throughout the text."""
127
143
 
144
+ @model_serializer(mode="wrap")
145
+ def serialize_model(self, handler):
146
+ optional_fields = set(
147
+ [
148
+ "delete_emails",
149
+ "delete_credit_cards",
150
+ "delete_phone_numbers",
151
+ "clean_bullet_points",
152
+ "clean_numbered_list",
153
+ "clean_unicode",
154
+ "clean_dashes",
155
+ "clean_whitespaces",
156
+ ]
157
+ )
158
+ serialized = handler(self)
159
+ m = {}
160
+
161
+ for n, f in type(self).model_fields.items():
162
+ k = f.alias or n
163
+ val = serialized.get(k)
164
+
165
+ if val != UNSET_SENTINEL:
166
+ if val is not None or k not in optional_fields:
167
+ m[k] = val
168
+
169
+ return m
170
+
128
171
 
129
172
  class ChunkingOptionsTypedDict(TypedDict):
130
173
  r"""Configuration options specifying how the datasource file is chunked. Required if `file_id` is specified. Defaults to standard chunking options if omitted."""
@@ -144,6 +187,22 @@ class ChunkingOptions(BaseModel):
144
187
  chunking_cleanup_options: Optional[ChunkingCleanupOptions] = None
145
188
  r"""The cleanup options applied to the datasource content. All options are enabled by default to ensure enhanced security and optimal chunk quality. Defaults to system-standard cleanup options if not specified."""
146
189
 
190
+ @model_serializer(mode="wrap")
191
+ def serialize_model(self, handler):
192
+ optional_fields = set(["chunking_configuration", "chunking_cleanup_options"])
193
+ serialized = handler(self)
194
+ m = {}
195
+
196
+ for n, f in type(self).model_fields.items():
197
+ k = f.alias or n
198
+ val = serialized.get(k)
199
+
200
+ if val != UNSET_SENTINEL:
201
+ if val is not None or k not in optional_fields:
202
+ m[k] = val
203
+
204
+ return m
205
+
147
206
 
148
207
  class CreateDatasourceRequestBodyTypedDict(TypedDict):
149
208
  display_name: NotRequired[str]
@@ -164,6 +223,22 @@ class CreateDatasourceRequestBody(BaseModel):
164
223
  chunking_options: Optional[ChunkingOptions] = None
165
224
  r"""Configuration options specifying how the datasource file is chunked. Required if `file_id` is specified. Defaults to standard chunking options if omitted."""
166
225
 
226
+ @model_serializer(mode="wrap")
227
+ def serialize_model(self, handler):
228
+ optional_fields = set(["display_name", "file_id", "chunking_options"])
229
+ serialized = handler(self)
230
+ m = {}
231
+
232
+ for n, f in type(self).model_fields.items():
233
+ k = f.alias or n
234
+ val = serialized.get(k)
235
+
236
+ if val != UNSET_SENTINEL:
237
+ if val is not None or k not in optional_fields:
238
+ m[k] = val
239
+
240
+ return m
241
+
167
242
 
168
243
  class CreateDatasourceRequestTypedDict(TypedDict):
169
244
  knowledge_id: str
@@ -239,7 +314,7 @@ class CreateDatasourceResponseBody(BaseModel):
239
314
  r"""The number of chunks in the datasource"""
240
315
 
241
316
  id: Annotated[Optional[str], pydantic.Field(alias="_id")] = (
242
- "01KEXRJ89VZH4Z1W4D7HZA5JX9"
317
+ "01KG2RZQXWVHXSANH80W3TQW09"
243
318
  )
244
319
  r"""The unique identifier of the data source"""
245
320
 
@@ -257,36 +332,27 @@ class CreateDatasourceResponseBody(BaseModel):
257
332
 
258
333
  @model_serializer(mode="wrap")
259
334
  def serialize_model(self, handler):
260
- optional_fields = [
261
- "_id",
262
- "description",
263
- "file_id",
264
- "created_by_id",
265
- "update_by_id",
266
- ]
267
- nullable_fields = ["file_id", "created_by_id", "update_by_id"]
268
- null_default_fields = []
269
-
335
+ optional_fields = set(
336
+ ["_id", "description", "file_id", "created_by_id", "update_by_id"]
337
+ )
338
+ nullable_fields = set(["file_id", "created_by_id", "update_by_id"])
270
339
  serialized = handler(self)
271
-
272
340
  m = {}
273
341
 
274
342
  for n, f in type(self).model_fields.items():
275
343
  k = f.alias or n
276
344
  val = serialized.get(k)
277
- serialized.pop(k, None)
278
-
279
- optional_nullable = k in optional_fields and k in nullable_fields
280
- is_set = (
281
- self.__pydantic_fields_set__.intersection({n})
282
- or k in null_default_fields
283
- ) # pylint: disable=no-member
284
-
285
- if val is not None and val != UNSET_SENTINEL:
286
- m[k] = val
287
- elif val != UNSET_SENTINEL and (
288
- not k in optional_fields or (optional_nullable and is_set)
289
- ):
290
- m[k] = val
345
+ is_nullable_and_explicitly_set = (
346
+ k in nullable_fields
347
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
348
+ )
349
+
350
+ if val != UNSET_SENTINEL:
351
+ if (
352
+ val is not None
353
+ or k not in optional_fields
354
+ or is_nullable_and_explicitly_set
355
+ ):
356
+ m[k] = val
291
357
 
292
358
  return m