ogx_open_client 1.0.3.dev0__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 (1199) hide show
  1. ogx_client/__init__.py +1135 -0
  2. ogx_client/_exceptions.py +114 -0
  3. ogx_client/_types.py +312 -0
  4. ogx_client/_version.py +8 -0
  5. ogx_client/api/__init__.py +33 -0
  6. ogx_client/api/admin_api.py +1411 -0
  7. ogx_client/api/alpha_api.py +354 -0
  8. ogx_client/api/batches_api.py +1247 -0
  9. ogx_client/api/chat_api.py +352 -0
  10. ogx_client/api/chat_completions_api.py +1028 -0
  11. ogx_client/api/completions_api.py +440 -0
  12. ogx_client/api/connectors_api.py +1235 -0
  13. ogx_client/api/conversations_api.py +1288 -0
  14. ogx_client/api/embeddings_api.py +429 -0
  15. ogx_client/api/file_batches_api.py +1370 -0
  16. ogx_client/api/file_processors_api.py +442 -0
  17. ogx_client/api/files_api.py +1539 -0
  18. ogx_client/api/inference_api.py +429 -0
  19. ogx_client/api/input_items_api.py +472 -0
  20. ogx_client/api/inspect_api.py +617 -0
  21. ogx_client/api/interactions_api.py +430 -0
  22. ogx_client/api/items_api.py +1359 -0
  23. ogx_client/api/messages_api.py +2466 -0
  24. ogx_client/api/models_api.py +451 -0
  25. ogx_client/api/openai_api.py +481 -0
  26. ogx_client/api/prompts_api.py +1883 -0
  27. ogx_client/api/providers_api.py +636 -0
  28. ogx_client/api/responses_api.py +1876 -0
  29. ogx_client/api/routes_api.py +389 -0
  30. ogx_client/api/tools_api.py +389 -0
  31. ogx_client/api/vector_io_api.py +740 -0
  32. ogx_client/api/vector_stores_api.py +1936 -0
  33. ogx_client/api/vector_stores_files_api.py +2011 -0
  34. ogx_client/api/versions_api.py +386 -0
  35. ogx_client/api_client.py +833 -0
  36. ogx_client/api_response.py +21 -0
  37. ogx_client/async_api_client.py +203 -0
  38. ogx_client/async_api_response.py +134 -0
  39. ogx_client/async_stream.py +161 -0
  40. ogx_client/configuration.py +585 -0
  41. ogx_client/exceptions.py +253 -0
  42. ogx_client/lib/__init__.py +17 -0
  43. ogx_client/lib/_utils.py +26 -0
  44. ogx_client/lib/agents/__init__.py +5 -0
  45. ogx_client/lib/agents/agent.py +540 -0
  46. ogx_client/lib/agents/client_tool.py +258 -0
  47. ogx_client/lib/agents/event_logger.py +134 -0
  48. ogx_client/lib/agents/event_synthesizer.py +448 -0
  49. ogx_client/lib/agents/react/__init__.py +5 -0
  50. ogx_client/lib/agents/react/agent.py +94 -0
  51. ogx_client/lib/agents/react/prompts.py +151 -0
  52. ogx_client/lib/agents/react/tool_parser.py +59 -0
  53. ogx_client/lib/agents/tool_parser.py +42 -0
  54. ogx_client/lib/agents/turn_events.py +268 -0
  55. ogx_client/lib/agents/types.py +63 -0
  56. ogx_client/lib/cli/__init__.py +12 -0
  57. ogx_client/lib/cli/common/__init__.py +5 -0
  58. ogx_client/lib/cli/common/utils.py +54 -0
  59. ogx_client/lib/cli/configure.py +68 -0
  60. ogx_client/lib/cli/constants.py +14 -0
  61. ogx_client/lib/cli/datasets/__init__.py +9 -0
  62. ogx_client/lib/cli/datasets/datasets.py +22 -0
  63. ogx_client/lib/cli/datasets/list.py +32 -0
  64. ogx_client/lib/cli/datasets/register.py +78 -0
  65. ogx_client/lib/cli/datasets/unregister.py +20 -0
  66. ogx_client/lib/cli/eval/__init__.py +9 -0
  67. ogx_client/lib/cli/eval/eval.py +22 -0
  68. ogx_client/lib/cli/eval/run_benchmark.py +193 -0
  69. ogx_client/lib/cli/eval/run_scoring.py +116 -0
  70. ogx_client/lib/cli/eval/utils.py +59 -0
  71. ogx_client/lib/cli/eval_tasks/__init__.py +9 -0
  72. ogx_client/lib/cli/eval_tasks/eval_tasks.py +65 -0
  73. ogx_client/lib/cli/eval_tasks/list.py +35 -0
  74. ogx_client/lib/cli/inference/__init__.py +9 -0
  75. ogx_client/lib/cli/inference/inference.py +88 -0
  76. ogx_client/lib/cli/inspect/__init__.py +9 -0
  77. ogx_client/lib/cli/inspect/inspect.py +19 -0
  78. ogx_client/lib/cli/inspect/version.py +22 -0
  79. ogx_client/lib/cli/models/__init__.py +9 -0
  80. ogx_client/lib/cli/models/models.py +149 -0
  81. ogx_client/lib/cli/ogx_client.py +111 -0
  82. ogx_client/lib/cli/post_training/__init__.py +9 -0
  83. ogx_client/lib/cli/post_training/post_training.py +114 -0
  84. ogx_client/lib/cli/providers/__init__.py +9 -0
  85. ogx_client/lib/cli/providers/inspect.py +33 -0
  86. ogx_client/lib/cli/providers/list.py +32 -0
  87. ogx_client/lib/cli/providers/providers.py +21 -0
  88. ogx_client/lib/cli/scoring_functions/__init__.py +9 -0
  89. ogx_client/lib/cli/scoring_functions/list.py +38 -0
  90. ogx_client/lib/cli/scoring_functions/scoring_functions.py +62 -0
  91. ogx_client/lib/cli/toolgroups/__init__.py +9 -0
  92. ogx_client/lib/cli/toolgroups/toolgroups.py +129 -0
  93. ogx_client/lib/cli/vector_stores/__init__.py +9 -0
  94. ogx_client/lib/cli/vector_stores/vector_stores.py +138 -0
  95. ogx_client/lib/inference/__init__.py +5 -0
  96. ogx_client/lib/inference/event_logger.py +58 -0
  97. ogx_client/lib/inference/utils.py +21 -0
  98. ogx_client/lib/stream_printer.py +30 -0
  99. ogx_client/lib/tools/__init__.py +9 -0
  100. ogx_client/lib/tools/mcp_oauth.py +303 -0
  101. ogx_client/models/__init__.py +505 -0
  102. ogx_client/models/add_items_request.py +148 -0
  103. ogx_client/models/allowed_tools_config.py +145 -0
  104. ogx_client/models/allowed_tools_filter.py +141 -0
  105. ogx_client/models/anthropic_base64_image_source.py +140 -0
  106. ogx_client/models/anthropic_base64_image_source_anthropic_url_image_source.py +396 -0
  107. ogx_client/models/anthropic_count_tokens_request.py +170 -0
  108. ogx_client/models/anthropic_count_tokens_response.py +119 -0
  109. ogx_client/models/anthropic_create_message_request.py +217 -0
  110. ogx_client/models/anthropic_image_block.py +144 -0
  111. ogx_client/models/anthropic_list_models_response.py +163 -0
  112. ogx_client/models/anthropic_message.py +141 -0
  113. ogx_client/models/anthropic_message_response.py +187 -0
  114. ogx_client/models/anthropic_model_info.py +149 -0
  115. ogx_client/models/anthropic_text_block.py +131 -0
  116. ogx_client/models/anthropic_text_block5_variants.py +549 -0
  117. ogx_client/models/anthropic_text_block5_variants1.py +549 -0
  118. ogx_client/models/anthropic_text_block_anthropic_image_block.py +203 -0
  119. ogx_client/models/anthropic_thinking_block.py +138 -0
  120. ogx_client/models/anthropic_thinking_config.py +137 -0
  121. ogx_client/models/anthropic_tool_def.py +128 -0
  122. ogx_client/models/anthropic_tool_result_block_input.py +153 -0
  123. ogx_client/models/anthropic_tool_result_block_output.py +153 -0
  124. ogx_client/models/anthropic_tool_use_block.py +135 -0
  125. ogx_client/models/anthropic_url_image_source.py +131 -0
  126. ogx_client/models/anthropic_usage.py +135 -0
  127. ogx_client/models/api.py +59 -0
  128. ogx_client/models/approval_filter.py +148 -0
  129. ogx_client/models/array_type.py +129 -0
  130. ogx_client/models/batch.py +302 -0
  131. ogx_client/models/batch_error.py +158 -0
  132. ogx_client/models/batch_request_counts.py +136 -0
  133. ogx_client/models/batch_usage.py +166 -0
  134. ogx_client/models/bf16_quantization_config.py +129 -0
  135. ogx_client/models/boolean_type.py +129 -0
  136. ogx_client/models/cancel_batch_request.py +119 -0
  137. ogx_client/models/chat_completion_input_type.py +129 -0
  138. ogx_client/models/chat_completion_message.py +216 -0
  139. ogx_client/models/chat_completion_message_custom_tool_call.py +143 -0
  140. ogx_client/models/chat_completion_message_custom_tool_call_custom.py +121 -0
  141. ogx_client/models/chat_completion_message_function_call.py +121 -0
  142. ogx_client/models/chat_completion_message_list.py +165 -0
  143. ogx_client/models/chat_completion_message_tool_call.py +143 -0
  144. ogx_client/models/chat_completion_message_tool_call_chat_completion_message_custom_tool_call.py +203 -0
  145. ogx_client/models/chat_completion_message_tool_call_chat_completion_message_custom_tool_call1.py +206 -0
  146. ogx_client/models/chat_completion_message_tool_call_function.py +121 -0
  147. ogx_client/models/chunk.py +151 -0
  148. ogx_client/models/chunk_for_deletion.py +121 -0
  149. ogx_client/models/chunk_metadata.py +180 -0
  150. ogx_client/models/compact_response_request.py +239 -0
  151. ogx_client/models/comparison_filter.py +135 -0
  152. ogx_client/models/completion_input_type.py +129 -0
  153. ogx_client/models/compound_filter.py +128 -0
  154. ogx_client/models/connector.py +152 -0
  155. ogx_client/models/connector_input.py +131 -0
  156. ogx_client/models/connector_type.py +42 -0
  157. ogx_client/models/context_management.py +133 -0
  158. ogx_client/models/conversation.py +140 -0
  159. ogx_client/models/conversation_deleted_resource.py +133 -0
  160. ogx_client/models/conversation_item.py +855 -0
  161. ogx_client/models/conversation_item_create_request.py +148 -0
  162. ogx_client/models/conversation_item_deleted_resource.py +133 -0
  163. ogx_client/models/conversation_item_include.py +48 -0
  164. ogx_client/models/conversation_item_list.py +158 -0
  165. ogx_client/models/conversation_message.py +149 -0
  166. ogx_client/models/create_batch_request.py +144 -0
  167. ogx_client/models/create_conversation_request.py +159 -0
  168. ogx_client/models/create_message_batch_request.py +148 -0
  169. ogx_client/models/create_prompt_request.py +126 -0
  170. ogx_client/models/create_response_request.py +407 -0
  171. ogx_client/models/custom_tool_config.py +119 -0
  172. ogx_client/models/delete_chunks_request.py +132 -0
  173. ogx_client/models/delete_conversation_request.py +119 -0
  174. ogx_client/models/delete_file_request.py +119 -0
  175. ogx_client/models/delete_item_request.py +121 -0
  176. ogx_client/models/delete_prompt_request.py +119 -0
  177. ogx_client/models/dialog_type.py +129 -0
  178. ogx_client/models/embedded_chunk.py +157 -0
  179. ogx_client/models/embedded_chunk_input.py +157 -0
  180. ogx_client/models/embedded_chunk_output.py +157 -0
  181. ogx_client/models/embeddings_response.py +136 -0
  182. ogx_client/models/error.py +143 -0
  183. ogx_client/models/error_detail.py +313 -0
  184. ogx_client/models/errors.py +172 -0
  185. ogx_client/models/expires_after.py +129 -0
  186. ogx_client/models/fp8_quantization_config.py +129 -0
  187. ogx_client/models/function_tool_config.py +119 -0
  188. ogx_client/models/get_chat_completion_request.py +119 -0
  189. ogx_client/models/get_connector_request.py +119 -0
  190. ogx_client/models/get_connector_tool_request.py +121 -0
  191. ogx_client/models/get_conversation_request.py +119 -0
  192. ogx_client/models/get_model_request.py +119 -0
  193. ogx_client/models/get_model_v1_models_model_id_get200_response.py +414 -0
  194. ogx_client/models/get_prompt_request.py +126 -0
  195. ogx_client/models/google_create_interaction_request.py +213 -0
  196. ogx_client/models/google_function_call_content.py +153 -0
  197. ogx_client/models/google_function_call_output.py +153 -0
  198. ogx_client/models/google_function_declaration.py +146 -0
  199. ogx_client/models/google_function_response_content.py +160 -0
  200. ogx_client/models/google_generation_config.py +146 -0
  201. ogx_client/models/google_input_turn.py +141 -0
  202. ogx_client/models/google_interaction_response.py +199 -0
  203. ogx_client/models/google_list_models_response.py +147 -0
  204. ogx_client/models/google_model_info.py +123 -0
  205. ogx_client/models/google_text_content.py +131 -0
  206. ogx_client/models/google_text_content_google_function_call_content_google_function_response_content.py +218 -0
  207. ogx_client/models/google_text_output.py +131 -0
  208. ogx_client/models/google_text_output_google_function_call_output_google_thought_output.py +447 -0
  209. ogx_client/models/google_thought_output.py +149 -0
  210. ogx_client/models/google_tool.py +145 -0
  211. ogx_client/models/google_usage.py +136 -0
  212. ogx_client/models/grammar_response_format.py +131 -0
  213. ogx_client/models/greedy_sampling_strategy.py +129 -0
  214. ogx_client/models/greedy_sampling_strategy_top_p_sampling_strategy_top_k_sampling_strategy.py +447 -0
  215. ogx_client/models/health_info.py +120 -0
  216. ogx_client/models/health_status.py +44 -0
  217. ogx_client/models/image_content_item.py +144 -0
  218. ogx_client/models/image_content_item_input.py +144 -0
  219. ogx_client/models/image_content_item_input_text_content_item.py +396 -0
  220. ogx_client/models/image_content_item_output.py +144 -0
  221. ogx_client/models/image_content_item_output_text_content_item.py +396 -0
  222. ogx_client/models/image_content_item_text_content_item.py +396 -0
  223. ogx_client/models/image_delta.py +131 -0
  224. ogx_client/models/inline_provider_spec.py +183 -0
  225. ogx_client/models/input_tokens_details.py +132 -0
  226. ogx_client/models/insert_chunks_request.py +139 -0
  227. ogx_client/models/inspect_provider_request.py +119 -0
  228. ogx_client/models/int4_quantization_config.py +136 -0
  229. ogx_client/models/integer_number.py +207 -0
  230. ogx_client/models/interleaved_content.py +280 -0
  231. ogx_client/models/interleaved_content_item.py +396 -0
  232. ogx_client/models/job.py +122 -0
  233. ogx_client/models/job_status.py +46 -0
  234. ogx_client/models/json_schema_response_format.py +131 -0
  235. ogx_client/models/json_type.py +129 -0
  236. ogx_client/models/list_batches_request.py +126 -0
  237. ogx_client/models/list_batches_response.py +158 -0
  238. ogx_client/models/list_chat_completion_messages_request.py +142 -0
  239. ogx_client/models/list_chat_completions_request.py +147 -0
  240. ogx_client/models/list_connector_tools_request.py +119 -0
  241. ogx_client/models/list_connectors_response.py +147 -0
  242. ogx_client/models/list_files_request.py +147 -0
  243. ogx_client/models/list_items_request.py +158 -0
  244. ogx_client/models/list_message_batches_response.py +163 -0
  245. ogx_client/models/list_models_response.py +147 -0
  246. ogx_client/models/list_models_v1_models_get200_response.py +414 -0
  247. ogx_client/models/list_number_string.py +265 -0
  248. ogx_client/models/list_open_ai_chat_completion_response.py +165 -0
  249. ogx_client/models/list_open_ai_file_response.py +165 -0
  250. ogx_client/models/list_open_ai_response_input_item.py +159 -0
  251. ogx_client/models/list_open_ai_response_object.py +165 -0
  252. ogx_client/models/list_prompt_versions_request.py +119 -0
  253. ogx_client/models/list_prompts_response.py +147 -0
  254. ogx_client/models/list_providers_response.py +147 -0
  255. ogx_client/models/list_routes_request.py +134 -0
  256. ogx_client/models/list_routes_response.py +147 -0
  257. ogx_client/models/list_string_allowed_tools_filter.py +269 -0
  258. ogx_client/models/list_tool_defs_response.py +147 -0
  259. ogx_client/models/list_tool_groups_response.py +147 -0
  260. ogx_client/models/list_tools_request.py +124 -0
  261. ogx_client/models/list_tools_response.py +147 -0
  262. ogx_client/models/mcp_list_tools_tool.py +128 -0
  263. ogx_client/models/message_batch.py +187 -0
  264. ogx_client/models/message_batch_request_counts.py +127 -0
  265. ogx_client/models/message_batch_request_params.py +142 -0
  266. ogx_client/models/metric_in_response.py +141 -0
  267. ogx_client/models/model.py +171 -0
  268. ogx_client/models/model_type.py +44 -0
  269. ogx_client/models/number_type.py +129 -0
  270. ogx_client/models/object_type.py +129 -0
  271. ogx_client/models/open_ai_assistant_message_param.py +187 -0
  272. ogx_client/models/open_ai_assistant_message_param_input.py +187 -0
  273. ogx_client/models/open_ai_assistant_message_param_output.py +187 -0
  274. ogx_client/models/open_ai_attach_file_request.py +164 -0
  275. ogx_client/models/open_ai_chat_completion.py +173 -0
  276. ogx_client/models/open_ai_chat_completion_chunk.py +173 -0
  277. ogx_client/models/open_ai_chat_completion_content_part_image_param.py +144 -0
  278. ogx_client/models/open_ai_chat_completion_content_part_param.py +447 -0
  279. ogx_client/models/open_ai_chat_completion_content_part_text_param.py +131 -0
  280. ogx_client/models/open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param.py +203 -0
  281. ogx_client/models/open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param_open_ai_file.py +447 -0
  282. ogx_client/models/open_ai_chat_completion_custom_tool_call_function.py +121 -0
  283. ogx_client/models/open_ai_chat_completion_request_with_extra_body.py +377 -0
  284. ogx_client/models/open_ai_chat_completion_response_message.py +180 -0
  285. ogx_client/models/open_ai_chat_completion_tool_call_function.py +121 -0
  286. ogx_client/models/open_ai_chat_completion_tool_choice.py +447 -0
  287. ogx_client/models/open_ai_chat_completion_tool_choice_allowed_tools.py +144 -0
  288. ogx_client/models/open_ai_chat_completion_tool_choice_custom_tool.py +144 -0
  289. ogx_client/models/open_ai_chat_completion_tool_choice_function_tool.py +144 -0
  290. ogx_client/models/open_ai_chat_completion_usage.py +154 -0
  291. ogx_client/models/open_ai_chat_completion_usage_completion_tokens_details.py +120 -0
  292. ogx_client/models/open_ai_chat_completion_usage_prompt_tokens_details.py +120 -0
  293. ogx_client/models/open_ai_choice.py +167 -0
  294. ogx_client/models/open_ai_choice_delta.py +163 -0
  295. ogx_client/models/open_ai_choice_logprobs.py +169 -0
  296. ogx_client/models/open_ai_chunk_choice.py +162 -0
  297. ogx_client/models/open_ai_chunk_choice_logprobs.py +169 -0
  298. ogx_client/models/open_ai_compacted_response.py +161 -0
  299. ogx_client/models/open_ai_completion.py +149 -0
  300. ogx_client/models/open_ai_completion_choice.py +154 -0
  301. ogx_client/models/open_ai_completion_logprobs.py +162 -0
  302. ogx_client/models/open_ai_completion_request_with_extra_body.py +273 -0
  303. ogx_client/models/open_ai_completion_with_input_messages.py +186 -0
  304. ogx_client/models/open_ai_create_vector_store_file_batch_request_with_extra_body.py +212 -0
  305. ogx_client/models/open_ai_create_vector_store_request_with_extra_body.py +198 -0
  306. ogx_client/models/open_ai_delete_response_object.py +133 -0
  307. ogx_client/models/open_ai_developer_message_param.py +151 -0
  308. ogx_client/models/open_ai_embedding_data.py +147 -0
  309. ogx_client/models/open_ai_embedding_usage.py +121 -0
  310. ogx_client/models/open_ai_embeddings_request_with_extra_body.py +164 -0
  311. ogx_client/models/open_ai_embeddings_response.py +160 -0
  312. ogx_client/models/open_ai_file.py +144 -0
  313. ogx_client/models/open_ai_file_delete_response.py +133 -0
  314. ogx_client/models/open_ai_file_file.py +138 -0
  315. ogx_client/models/open_ai_file_object.py +153 -0
  316. ogx_client/models/open_ai_file_purpose.py +50 -0
  317. ogx_client/models/open_ai_file_upload_purpose.py +47 -0
  318. ogx_client/models/open_ai_finish_reason.py +46 -0
  319. ogx_client/models/open_ai_image_url.py +136 -0
  320. ogx_client/models/open_ai_list_models_response.py +142 -0
  321. ogx_client/models/open_ai_message_param.py +549 -0
  322. ogx_client/models/open_ai_model.py +142 -0
  323. ogx_client/models/open_ai_response_annotation_citation.py +137 -0
  324. ogx_client/models/open_ai_response_annotation_container_file_citation.py +139 -0
  325. ogx_client/models/open_ai_response_annotation_file_citation.py +135 -0
  326. ogx_client/models/open_ai_response_annotation_file_citation4_variants.py +498 -0
  327. ogx_client/models/open_ai_response_annotation_file_path.py +133 -0
  328. ogx_client/models/open_ai_response_annotations.py +498 -0
  329. ogx_client/models/open_ai_response_compaction.py +138 -0
  330. ogx_client/models/open_ai_response_content_part.py +447 -0
  331. ogx_client/models/open_ai_response_content_part_output_text.py +162 -0
  332. ogx_client/models/open_ai_response_content_part_output_text_open_ai_response_content_part_refusal_open_ai_response_content_part_reasoning_text.py +447 -0
  333. ogx_client/models/open_ai_response_content_part_reasoning_summary.py +131 -0
  334. ogx_client/models/open_ai_response_content_part_reasoning_text.py +131 -0
  335. ogx_client/models/open_ai_response_content_part_refusal.py +131 -0
  336. ogx_client/models/open_ai_response_error.py +121 -0
  337. ogx_client/models/open_ai_response_format_json_object.py +129 -0
  338. ogx_client/models/open_ai_response_format_json_schema.py +144 -0
  339. ogx_client/models/open_ai_response_format_param.py +447 -0
  340. ogx_client/models/open_ai_response_format_text.py +129 -0
  341. ogx_client/models/open_ai_response_format_text_open_ai_response_format_json_schema_open_ai_response_format_json_object.py +453 -0
  342. ogx_client/models/open_ai_response_incomplete_details.py +119 -0
  343. ogx_client/models/open_ai_response_input.py +251 -0
  344. ogx_client/models/open_ai_response_input_function_tool_call_output.py +160 -0
  345. ogx_client/models/open_ai_response_input_function_tool_call_output_open_ai_response_mcp_approval_response_open_ai_response_compaction.py +233 -0
  346. ogx_client/models/open_ai_response_input_message_content.py +447 -0
  347. ogx_client/models/open_ai_response_input_message_content_file.py +157 -0
  348. ogx_client/models/open_ai_response_input_message_content_image.py +155 -0
  349. ogx_client/models/open_ai_response_input_message_content_text.py +131 -0
  350. ogx_client/models/open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file.py +447 -0
  351. ogx_client/models/open_ai_response_input_tool.py +516 -0
  352. ogx_client/models/open_ai_response_input_tool_choice.py +203 -0
  353. ogx_client/models/open_ai_response_input_tool_choice_allowed_tools.py +143 -0
  354. ogx_client/models/open_ai_response_input_tool_choice_allowed_tools6_variants.py +618 -0
  355. ogx_client/models/open_ai_response_input_tool_choice_custom_tool.py +131 -0
  356. ogx_client/models/open_ai_response_input_tool_choice_file_search.py +129 -0
  357. ogx_client/models/open_ai_response_input_tool_choice_function_tool.py +131 -0
  358. ogx_client/models/open_ai_response_input_tool_choice_mcp_tool.py +138 -0
  359. ogx_client/models/open_ai_response_input_tool_choice_mode.py +44 -0
  360. ogx_client/models/open_ai_response_input_tool_choice_mode1.py +209 -0
  361. ogx_client/models/open_ai_response_input_tool_choice_mode2.py +209 -0
  362. ogx_client/models/open_ai_response_input_tool_choice_web_search.py +129 -0
  363. ogx_client/models/open_ai_response_input_tool_file_search.py +166 -0
  364. ogx_client/models/open_ai_response_input_tool_function.py +152 -0
  365. ogx_client/models/open_ai_response_input_tool_mcp.py +194 -0
  366. ogx_client/models/open_ai_response_input_tool_web_search.py +147 -0
  367. ogx_client/models/open_ai_response_input_tool_web_search4_variants.py +516 -0
  368. ogx_client/models/open_ai_response_input_tool_web_search4_variants1.py +516 -0
  369. ogx_client/models/open_ai_response_mcp_approval_request.py +137 -0
  370. ogx_client/models/open_ai_response_mcp_approval_response.py +147 -0
  371. ogx_client/models/open_ai_response_message.py +167 -0
  372. ogx_client/models/open_ai_response_message11_variants.py +855 -0
  373. ogx_client/models/open_ai_response_message8_variants.py +702 -0
  374. ogx_client/models/open_ai_response_message_input.py +167 -0
  375. ogx_client/models/open_ai_response_message_input11_variants.py +855 -0
  376. ogx_client/models/open_ai_response_message_input8_variants.py +702 -0
  377. ogx_client/models/open_ai_response_message_output.py +167 -0
  378. ogx_client/models/open_ai_response_message_output11_variants.py +855 -0
  379. ogx_client/models/open_ai_response_message_output8_variants.py +702 -0
  380. ogx_client/models/open_ai_response_message_output_union.py +233 -0
  381. ogx_client/models/open_ai_response_object.py +412 -0
  382. ogx_client/models/open_ai_response_object_stream.py +2181 -0
  383. ogx_client/models/open_ai_response_object_stream_error.py +147 -0
  384. ogx_client/models/open_ai_response_object_stream_response_completed.py +146 -0
  385. ogx_client/models/open_ai_response_object_stream_response_content_part_added.py +154 -0
  386. ogx_client/models/open_ai_response_object_stream_response_content_part_done.py +154 -0
  387. ogx_client/models/open_ai_response_object_stream_response_created.py +146 -0
  388. ogx_client/models/open_ai_response_object_stream_response_failed.py +146 -0
  389. ogx_client/models/open_ai_response_object_stream_response_file_search_call_completed.py +135 -0
  390. ogx_client/models/open_ai_response_object_stream_response_file_search_call_in_progress.py +135 -0
  391. ogx_client/models/open_ai_response_object_stream_response_file_search_call_searching.py +135 -0
  392. ogx_client/models/open_ai_response_object_stream_response_function_call_arguments_delta.py +137 -0
  393. ogx_client/models/open_ai_response_object_stream_response_function_call_arguments_done.py +137 -0
  394. ogx_client/models/open_ai_response_object_stream_response_in_progress.py +146 -0
  395. ogx_client/models/open_ai_response_object_stream_response_incomplete.py +146 -0
  396. ogx_client/models/open_ai_response_object_stream_response_mcp_call_arguments_delta.py +137 -0
  397. ogx_client/models/open_ai_response_object_stream_response_mcp_call_arguments_done.py +137 -0
  398. ogx_client/models/open_ai_response_object_stream_response_mcp_call_completed.py +131 -0
  399. ogx_client/models/open_ai_response_object_stream_response_mcp_call_failed.py +131 -0
  400. ogx_client/models/open_ai_response_object_stream_response_mcp_call_in_progress.py +135 -0
  401. ogx_client/models/open_ai_response_object_stream_response_mcp_list_tools_completed.py +131 -0
  402. ogx_client/models/open_ai_response_object_stream_response_mcp_list_tools_failed.py +131 -0
  403. ogx_client/models/open_ai_response_object_stream_response_mcp_list_tools_in_progress.py +131 -0
  404. ogx_client/models/open_ai_response_object_stream_response_output_item_added.py +150 -0
  405. ogx_client/models/open_ai_response_object_stream_response_output_item_done.py +150 -0
  406. ogx_client/models/open_ai_response_object_stream_response_output_text_annotation_added.py +154 -0
  407. ogx_client/models/open_ai_response_object_stream_response_output_text_delta.py +157 -0
  408. ogx_client/models/open_ai_response_object_stream_response_output_text_done.py +139 -0
  409. ogx_client/models/open_ai_response_object_stream_response_reasoning_summary_part_added.py +152 -0
  410. ogx_client/models/open_ai_response_object_stream_response_reasoning_summary_part_done.py +152 -0
  411. ogx_client/models/open_ai_response_object_stream_response_reasoning_summary_text_delta.py +139 -0
  412. ogx_client/models/open_ai_response_object_stream_response_reasoning_summary_text_done.py +139 -0
  413. ogx_client/models/open_ai_response_object_stream_response_reasoning_text_delta.py +139 -0
  414. ogx_client/models/open_ai_response_object_stream_response_reasoning_text_done.py +139 -0
  415. ogx_client/models/open_ai_response_object_stream_response_refusal_delta.py +139 -0
  416. ogx_client/models/open_ai_response_object_stream_response_refusal_done.py +139 -0
  417. ogx_client/models/open_ai_response_object_stream_response_web_search_call_completed.py +135 -0
  418. ogx_client/models/open_ai_response_object_stream_response_web_search_call_in_progress.py +135 -0
  419. ogx_client/models/open_ai_response_object_stream_response_web_search_call_searching.py +135 -0
  420. ogx_client/models/open_ai_response_object_with_input.py +425 -0
  421. ogx_client/models/open_ai_response_output.py +702 -0
  422. ogx_client/models/open_ai_response_output_item.py +702 -0
  423. ogx_client/models/open_ai_response_output_message_content.py +396 -0
  424. ogx_client/models/open_ai_response_output_message_content_output_text.py +162 -0
  425. ogx_client/models/open_ai_response_output_message_content_output_text_input.py +162 -0
  426. ogx_client/models/open_ai_response_output_message_content_output_text_input_open_ai_response_content_part_refusal.py +396 -0
  427. ogx_client/models/open_ai_response_output_message_content_output_text_open_ai_response_content_part_refusal.py +396 -0
  428. ogx_client/models/open_ai_response_output_message_content_output_text_output.py +162 -0
  429. ogx_client/models/open_ai_response_output_message_content_output_text_output_open_ai_response_content_part_refusal.py +396 -0
  430. ogx_client/models/open_ai_response_output_message_file_search_tool_call.py +153 -0
  431. ogx_client/models/open_ai_response_output_message_file_search_tool_call_results.py +127 -0
  432. ogx_client/models/open_ai_response_output_message_function_tool_call.py +149 -0
  433. ogx_client/models/open_ai_response_output_message_mcp_call.py +151 -0
  434. ogx_client/models/open_ai_response_output_message_mcp_list_tools.py +146 -0
  435. ogx_client/models/open_ai_response_output_message_reasoning_content.py +131 -0
  436. ogx_client/models/open_ai_response_output_message_reasoning_item.py +179 -0
  437. ogx_client/models/open_ai_response_output_message_reasoning_summary.py +131 -0
  438. ogx_client/models/open_ai_response_output_message_web_search_tool_call.py +133 -0
  439. ogx_client/models/open_ai_response_prompt.py +151 -0
  440. ogx_client/models/open_ai_response_reasoning.py +168 -0
  441. ogx_client/models/open_ai_response_text.py +154 -0
  442. ogx_client/models/open_ai_response_text_format.py +157 -0
  443. ogx_client/models/open_ai_response_tool.py +516 -0
  444. ogx_client/models/open_ai_response_tool_mcp.py +151 -0
  445. ogx_client/models/open_ai_response_usage.py +153 -0
  446. ogx_client/models/open_ai_response_usage_input_tokens_details.py +119 -0
  447. ogx_client/models/open_ai_response_usage_output_tokens_details.py +119 -0
  448. ogx_client/models/open_ai_search_vector_store_request.py +171 -0
  449. ogx_client/models/open_ai_system_message_param.py +151 -0
  450. ogx_client/models/open_ai_token_log_prob.py +146 -0
  451. ogx_client/models/open_ai_tool_message_param.py +146 -0
  452. ogx_client/models/open_ai_top_log_prob.py +128 -0
  453. ogx_client/models/open_ai_update_vector_store_file_request.py +119 -0
  454. ogx_client/models/open_ai_update_vector_store_request.py +151 -0
  455. ogx_client/models/open_ai_user_message_param.py +151 -0
  456. ogx_client/models/open_ai_user_message_param_input.py +151 -0
  457. ogx_client/models/open_ai_user_message_param_input5_variants.py +549 -0
  458. ogx_client/models/open_ai_user_message_param_output.py +151 -0
  459. ogx_client/models/open_ai_user_message_param_output5_variants.py +549 -0
  460. ogx_client/models/open_aijson_schema.py +140 -0
  461. ogx_client/models/order.py +43 -0
  462. ogx_client/models/output_tokens_details.py +132 -0
  463. ogx_client/models/paginated_response.py +145 -0
  464. ogx_client/models/param_type.py +753 -0
  465. ogx_client/models/process_file_request.py +151 -0
  466. ogx_client/models/process_file_response.py +149 -0
  467. ogx_client/models/prompt.py +133 -0
  468. ogx_client/models/provider_info.py +127 -0
  469. ogx_client/models/provider_spec.py +169 -0
  470. ogx_client/models/query_chunks_request.py +141 -0
  471. ogx_client/models/query_chunks_response.py +149 -0
  472. ogx_client/models/register_model_request.py +155 -0
  473. ogx_client/models/remote_provider_spec.py +178 -0
  474. ogx_client/models/rerank_data.py +122 -0
  475. ogx_client/models/rerank_request.py +155 -0
  476. ogx_client/models/rerank_response.py +147 -0
  477. ogx_client/models/response_format.py +396 -0
  478. ogx_client/models/response_item_include.py +48 -0
  479. ogx_client/models/response_retrieve_item_v1_conversations_conversation_id_items_item_id_get.py +849 -0
  480. ogx_client/models/response_stream_options.py +119 -0
  481. ogx_client/models/response_truncation.py +43 -0
  482. ogx_client/models/retrieve_batch_request.py +119 -0
  483. ogx_client/models/retrieve_file_content_request.py +119 -0
  484. ogx_client/models/retrieve_file_request.py +119 -0
  485. ogx_client/models/retrieve_item_request.py +121 -0
  486. ogx_client/models/route_info.py +123 -0
  487. ogx_client/models/sampling_params.py +154 -0
  488. ogx_client/models/sampling_strategy.py +447 -0
  489. ogx_client/models/score_request.py +136 -0
  490. ogx_client/models/scoring_result.py +124 -0
  491. ogx_client/models/search_ranking_options.py +160 -0
  492. ogx_client/models/service_tier.py +45 -0
  493. ogx_client/models/set_default_version_body_request.py +119 -0
  494. ogx_client/models/set_default_version_request.py +121 -0
  495. ogx_client/models/string4_variants.py +415 -0
  496. ogx_client/models/string4_variants1.py +416 -0
  497. ogx_client/models/string_approval_filter.py +222 -0
  498. ogx_client/models/string_list_anthropic_text_block.py +272 -0
  499. ogx_client/models/string_list_anthropic_text_block1.py +272 -0
  500. ogx_client/models/string_list_anthropic_text_block_anthropic_image_block.py +266 -0
  501. ogx_client/models/string_list_google_input_turn.py +266 -0
  502. ogx_client/models/string_list_google_text_content_google_function_call_content_google_function_response_content.py +266 -0
  503. ogx_client/models/string_list_image_content_item_input_text_content_item.py +280 -0
  504. ogx_client/models/string_list_image_content_item_input_text_content_item1.py +280 -0
  505. ogx_client/models/string_list_image_content_item_output_text_content_item.py +280 -0
  506. ogx_client/models/string_list_image_content_item_text_content_item.py +286 -0
  507. ogx_client/models/string_list_image_content_item_text_content_item1.py +280 -0
  508. ogx_client/models/string_list_image_content_item_text_content_item2.py +286 -0
  509. ogx_client/models/string_list_image_content_item_text_content_item3.py +280 -0
  510. ogx_client/models/string_list_image_content_item_text_content_item4.py +280 -0
  511. ogx_client/models/string_list_image_content_item_text_content_item5.py +280 -0
  512. ogx_client/models/string_list_open_ai_chat_completion_content_part_text_param.py +272 -0
  513. ogx_client/models/string_list_open_ai_chat_completion_content_part_text_param1.py +266 -0
  514. ogx_client/models/string_list_open_ai_chat_completion_content_part_text_param2.py +266 -0
  515. ogx_client/models/string_list_open_ai_chat_completion_content_part_text_param3.py +266 -0
  516. ogx_client/models/string_list_open_ai_chat_completion_content_part_text_param4.py +272 -0
  517. ogx_client/models/string_list_open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param_open_ai_file.py +266 -0
  518. ogx_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file.py +266 -0
  519. ogx_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file_list_open_ai_response_output_message_content_output_text_input_open_ai_response_content_part_refusal.py +342 -0
  520. ogx_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file_list_open_ai_response_output_message_content_output_text_open_ai_response_content_part_refusal.py +342 -0
  521. ogx_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file_list_open_ai_response_output_message_content_output_text_output_open_ai_response_content_part_refusal.py +342 -0
  522. ogx_client/models/string_list_open_ai_response_message_union_open_ai_response_input_function_tool_call_output.py +272 -0
  523. ogx_client/models/string_list_open_ai_response_message_union_open_ai_response_input_function_tool_call_output1.py +266 -0
  524. ogx_client/models/string_list_string.py +271 -0
  525. ogx_client/models/string_list_string1.py +265 -0
  526. ogx_client/models/string_list_string2.py +265 -0
  527. ogx_client/models/string_number_boolean.py +225 -0
  528. ogx_client/models/string_number_boolean1.py +224 -0
  529. ogx_client/models/string_object.py +271 -0
  530. ogx_client/models/string_object1.py +271 -0
  531. ogx_client/models/string_open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param.py +220 -0
  532. ogx_client/models/string_open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param1.py +220 -0
  533. ogx_client/models/string_type.py +129 -0
  534. ogx_client/models/system_message.py +144 -0
  535. ogx_client/models/text_content_item.py +131 -0
  536. ogx_client/models/text_delta.py +131 -0
  537. ogx_client/models/token_log_probs.py +119 -0
  538. ogx_client/models/tool_config.py +119 -0
  539. ogx_client/models/tool_def.py +154 -0
  540. ogx_client/models/tool_group.py +167 -0
  541. ogx_client/models/tool_group_input.py +148 -0
  542. ogx_client/models/tool_invocation_result.py +158 -0
  543. ogx_client/models/tool_response_message.py +146 -0
  544. ogx_client/models/top_k_sampling_strategy.py +132 -0
  545. ogx_client/models/top_p_sampling_strategy.py +134 -0
  546. ogx_client/models/union_type.py +129 -0
  547. ogx_client/models/unregister_model_request.py +119 -0
  548. ogx_client/models/update_conversation_request.py +119 -0
  549. ogx_client/models/update_prompt_body_request.py +130 -0
  550. ogx_client/models/update_prompt_request.py +132 -0
  551. ogx_client/models/upload_file_request.py +140 -0
  552. ogx_client/models/url.py +119 -0
  553. ogx_client/models/urlor_data.py +144 -0
  554. ogx_client/models/user_message.py +164 -0
  555. ogx_client/models/vector_store_chunking_strategy.py +453 -0
  556. ogx_client/models/vector_store_chunking_strategy_auto.py +129 -0
  557. ogx_client/models/vector_store_chunking_strategy_auto_vector_store_chunking_strategy_static_vector_store_chunking_strategy_contextual.py +453 -0
  558. ogx_client/models/vector_store_chunking_strategy_auto_vector_store_chunking_strategy_static_vector_store_chunking_strategy_contextual1.py +447 -0
  559. ogx_client/models/vector_store_chunking_strategy_contextual.py +144 -0
  560. ogx_client/models/vector_store_chunking_strategy_contextual_config.py +145 -0
  561. ogx_client/models/vector_store_chunking_strategy_static.py +144 -0
  562. ogx_client/models/vector_store_chunking_strategy_static_config.py +122 -0
  563. ogx_client/models/vector_store_content.py +162 -0
  564. ogx_client/models/vector_store_create_request.py +167 -0
  565. ogx_client/models/vector_store_delete_response.py +133 -0
  566. ogx_client/models/vector_store_expiration_after.py +129 -0
  567. ogx_client/models/vector_store_file_batch_file_entry.py +164 -0
  568. ogx_client/models/vector_store_file_batch_object.py +159 -0
  569. ogx_client/models/vector_store_file_content_response.py +151 -0
  570. ogx_client/models/vector_store_file_counts.py +127 -0
  571. ogx_client/models/vector_store_file_delete_response.py +133 -0
  572. ogx_client/models/vector_store_file_last_error.py +128 -0
  573. ogx_client/models/vector_store_file_object.py +206 -0
  574. ogx_client/models/vector_store_file_status.py +45 -0
  575. ogx_client/models/vector_store_files_list_in_batch_response.py +148 -0
  576. ogx_client/models/vector_store_list_files_response.py +148 -0
  577. ogx_client/models/vector_store_list_response.py +148 -0
  578. ogx_client/models/vector_store_modify_request.py +151 -0
  579. ogx_client/models/vector_store_object.py +202 -0
  580. ogx_client/models/vector_store_search_request.py +151 -0
  581. ogx_client/models/vector_store_search_response.py +161 -0
  582. ogx_client/models/vector_store_search_response_page.py +153 -0
  583. ogx_client/models/vector_store_status.py +44 -0
  584. ogx_client/models/version_info.py +119 -0
  585. ogx_client/ogx_client.py +309 -0
  586. ogx_client/py.typed +0 -0
  587. ogx_client/rest.py +255 -0
  588. ogx_client/stream.py +183 -0
  589. ogx_open_client/__init__.py +1167 -0
  590. ogx_open_client/_exceptions.py +114 -0
  591. ogx_open_client/_types.py +312 -0
  592. ogx_open_client/_version.py +8 -0
  593. ogx_open_client/api/__init__.py +33 -0
  594. ogx_open_client/api/admin_api.py +1411 -0
  595. ogx_open_client/api/alpha_api.py +354 -0
  596. ogx_open_client/api/batches_api.py +1247 -0
  597. ogx_open_client/api/chat_api.py +352 -0
  598. ogx_open_client/api/chat_completions_api.py +1028 -0
  599. ogx_open_client/api/completions_api.py +440 -0
  600. ogx_open_client/api/connectors_api.py +1235 -0
  601. ogx_open_client/api/conversations_api.py +1288 -0
  602. ogx_open_client/api/embeddings_api.py +429 -0
  603. ogx_open_client/api/file_batches_api.py +1370 -0
  604. ogx_open_client/api/file_processors_api.py +442 -0
  605. ogx_open_client/api/files_api.py +1539 -0
  606. ogx_open_client/api/inference_api.py +429 -0
  607. ogx_open_client/api/input_items_api.py +472 -0
  608. ogx_open_client/api/inspect_api.py +617 -0
  609. ogx_open_client/api/interactions_api.py +430 -0
  610. ogx_open_client/api/items_api.py +1359 -0
  611. ogx_open_client/api/messages_api.py +2466 -0
  612. ogx_open_client/api/models_api.py +451 -0
  613. ogx_open_client/api/openai_api.py +481 -0
  614. ogx_open_client/api/prompts_api.py +1883 -0
  615. ogx_open_client/api/providers_api.py +636 -0
  616. ogx_open_client/api/responses_api.py +1876 -0
  617. ogx_open_client/api/routes_api.py +389 -0
  618. ogx_open_client/api/tools_api.py +389 -0
  619. ogx_open_client/api/vector_io_api.py +740 -0
  620. ogx_open_client/api/vector_stores_api.py +1936 -0
  621. ogx_open_client/api/vector_stores_files_api.py +2011 -0
  622. ogx_open_client/api/versions_api.py +386 -0
  623. ogx_open_client/api_client.py +833 -0
  624. ogx_open_client/api_response.py +21 -0
  625. ogx_open_client/async_api_client.py +203 -0
  626. ogx_open_client/async_api_response.py +134 -0
  627. ogx_open_client/async_stream.py +161 -0
  628. ogx_open_client/configuration.py +585 -0
  629. ogx_open_client/exceptions.py +253 -0
  630. ogx_open_client/lib/__init__.py +17 -0
  631. ogx_open_client/lib/_utils.py +26 -0
  632. ogx_open_client/lib/agents/__init__.py +5 -0
  633. ogx_open_client/lib/agents/agent.py +540 -0
  634. ogx_open_client/lib/agents/client_tool.py +258 -0
  635. ogx_open_client/lib/agents/event_logger.py +134 -0
  636. ogx_open_client/lib/agents/event_synthesizer.py +448 -0
  637. ogx_open_client/lib/agents/react/__init__.py +5 -0
  638. ogx_open_client/lib/agents/react/agent.py +94 -0
  639. ogx_open_client/lib/agents/react/prompts.py +151 -0
  640. ogx_open_client/lib/agents/react/tool_parser.py +59 -0
  641. ogx_open_client/lib/agents/tool_parser.py +42 -0
  642. ogx_open_client/lib/agents/turn_events.py +268 -0
  643. ogx_open_client/lib/agents/types.py +63 -0
  644. ogx_open_client/lib/cli/__init__.py +12 -0
  645. ogx_open_client/lib/cli/common/__init__.py +5 -0
  646. ogx_open_client/lib/cli/common/utils.py +54 -0
  647. ogx_open_client/lib/cli/configure.py +68 -0
  648. ogx_open_client/lib/cli/constants.py +14 -0
  649. ogx_open_client/lib/cli/datasets/__init__.py +9 -0
  650. ogx_open_client/lib/cli/datasets/datasets.py +22 -0
  651. ogx_open_client/lib/cli/datasets/list.py +32 -0
  652. ogx_open_client/lib/cli/datasets/register.py +78 -0
  653. ogx_open_client/lib/cli/datasets/unregister.py +20 -0
  654. ogx_open_client/lib/cli/eval/__init__.py +9 -0
  655. ogx_open_client/lib/cli/eval/eval.py +22 -0
  656. ogx_open_client/lib/cli/eval/run_benchmark.py +193 -0
  657. ogx_open_client/lib/cli/eval/run_scoring.py +116 -0
  658. ogx_open_client/lib/cli/eval/utils.py +59 -0
  659. ogx_open_client/lib/cli/eval_tasks/__init__.py +9 -0
  660. ogx_open_client/lib/cli/eval_tasks/eval_tasks.py +65 -0
  661. ogx_open_client/lib/cli/eval_tasks/list.py +35 -0
  662. ogx_open_client/lib/cli/inference/__init__.py +9 -0
  663. ogx_open_client/lib/cli/inference/inference.py +88 -0
  664. ogx_open_client/lib/cli/inspect/__init__.py +9 -0
  665. ogx_open_client/lib/cli/inspect/inspect.py +19 -0
  666. ogx_open_client/lib/cli/inspect/version.py +22 -0
  667. ogx_open_client/lib/cli/models/__init__.py +9 -0
  668. ogx_open_client/lib/cli/models/models.py +149 -0
  669. ogx_open_client/lib/cli/ogx_client.py +111 -0
  670. ogx_open_client/lib/cli/post_training/__init__.py +9 -0
  671. ogx_open_client/lib/cli/post_training/post_training.py +114 -0
  672. ogx_open_client/lib/cli/providers/__init__.py +9 -0
  673. ogx_open_client/lib/cli/providers/inspect.py +33 -0
  674. ogx_open_client/lib/cli/providers/list.py +32 -0
  675. ogx_open_client/lib/cli/providers/providers.py +21 -0
  676. ogx_open_client/lib/cli/scoring_functions/__init__.py +9 -0
  677. ogx_open_client/lib/cli/scoring_functions/list.py +38 -0
  678. ogx_open_client/lib/cli/scoring_functions/scoring_functions.py +62 -0
  679. ogx_open_client/lib/cli/toolgroups/__init__.py +9 -0
  680. ogx_open_client/lib/cli/toolgroups/toolgroups.py +129 -0
  681. ogx_open_client/lib/cli/vector_stores/__init__.py +9 -0
  682. ogx_open_client/lib/cli/vector_stores/vector_stores.py +138 -0
  683. ogx_open_client/lib/inference/__init__.py +5 -0
  684. ogx_open_client/lib/inference/event_logger.py +58 -0
  685. ogx_open_client/lib/inference/utils.py +21 -0
  686. ogx_open_client/lib/stream_printer.py +30 -0
  687. ogx_open_client/lib/tools/__init__.py +9 -0
  688. ogx_open_client/lib/tools/mcp_oauth.py +303 -0
  689. ogx_open_client/models/__init__.py +521 -0
  690. ogx_open_client/models/add_items_request.py +148 -0
  691. ogx_open_client/models/allowed_tools_config.py +145 -0
  692. ogx_open_client/models/allowed_tools_filter.py +141 -0
  693. ogx_open_client/models/anthropic_base64_image_source.py +140 -0
  694. ogx_open_client/models/anthropic_base64_image_source_anthropic_url_image_source.py +396 -0
  695. ogx_open_client/models/anthropic_bash_tool.py +161 -0
  696. ogx_open_client/models/anthropic_cache_control.py +129 -0
  697. ogx_open_client/models/anthropic_count_tokens_request.py +170 -0
  698. ogx_open_client/models/anthropic_count_tokens_response.py +119 -0
  699. ogx_open_client/models/anthropic_create_message_request.py +217 -0
  700. ogx_open_client/models/anthropic_custom_tool_def.py +160 -0
  701. ogx_open_client/models/anthropic_custom_tool_def4_variants.py +510 -0
  702. ogx_open_client/models/anthropic_image_block.py +164 -0
  703. ogx_open_client/models/anthropic_list_models_response.py +163 -0
  704. ogx_open_client/models/anthropic_message.py +141 -0
  705. ogx_open_client/models/anthropic_message_response.py +187 -0
  706. ogx_open_client/models/anthropic_model_info.py +149 -0
  707. ogx_open_client/models/anthropic_redacted_thinking_block.py +131 -0
  708. ogx_open_client/models/anthropic_text_block.py +151 -0
  709. ogx_open_client/models/anthropic_text_block5_variants.py +549 -0
  710. ogx_open_client/models/anthropic_text_block5_variants1.py +549 -0
  711. ogx_open_client/models/anthropic_text_block6_variants.py +600 -0
  712. ogx_open_client/models/anthropic_text_block6_variants1.py +600 -0
  713. ogx_open_client/models/anthropic_text_block_anthropic_image_block.py +203 -0
  714. ogx_open_client/models/anthropic_text_editor_tool.py +155 -0
  715. ogx_open_client/models/anthropic_thinking_block.py +158 -0
  716. ogx_open_client/models/anthropic_thinking_config.py +137 -0
  717. ogx_open_client/models/anthropic_tool_def.py +128 -0
  718. ogx_open_client/models/anthropic_tool_result_block_input.py +173 -0
  719. ogx_open_client/models/anthropic_tool_result_block_output.py +173 -0
  720. ogx_open_client/models/anthropic_tool_use_block.py +155 -0
  721. ogx_open_client/models/anthropic_url_image_source.py +131 -0
  722. ogx_open_client/models/anthropic_usage.py +135 -0
  723. ogx_open_client/models/anthropic_web_search_tool.py +202 -0
  724. ogx_open_client/models/api.py +59 -0
  725. ogx_open_client/models/approval_filter.py +148 -0
  726. ogx_open_client/models/array_type.py +129 -0
  727. ogx_open_client/models/batch.py +302 -0
  728. ogx_open_client/models/batch_error.py +158 -0
  729. ogx_open_client/models/batch_request_counts.py +136 -0
  730. ogx_open_client/models/batch_usage.py +166 -0
  731. ogx_open_client/models/bf16_quantization_config.py +129 -0
  732. ogx_open_client/models/boolean_type.py +129 -0
  733. ogx_open_client/models/cancel_batch_request.py +119 -0
  734. ogx_open_client/models/chat_completion_input_type.py +129 -0
  735. ogx_open_client/models/chat_completion_message.py +216 -0
  736. ogx_open_client/models/chat_completion_message_custom_tool_call.py +143 -0
  737. ogx_open_client/models/chat_completion_message_custom_tool_call_custom.py +121 -0
  738. ogx_open_client/models/chat_completion_message_function_call.py +121 -0
  739. ogx_open_client/models/chat_completion_message_list.py +165 -0
  740. ogx_open_client/models/chat_completion_message_tool_call.py +143 -0
  741. ogx_open_client/models/chat_completion_message_tool_call_chat_completion_message_custom_tool_call.py +203 -0
  742. ogx_open_client/models/chat_completion_message_tool_call_chat_completion_message_custom_tool_call1.py +206 -0
  743. ogx_open_client/models/chat_completion_message_tool_call_function.py +121 -0
  744. ogx_open_client/models/chunk.py +151 -0
  745. ogx_open_client/models/chunk_for_deletion.py +121 -0
  746. ogx_open_client/models/chunk_metadata.py +180 -0
  747. ogx_open_client/models/compact_response_request.py +239 -0
  748. ogx_open_client/models/comparison_filter.py +135 -0
  749. ogx_open_client/models/completion_input_type.py +129 -0
  750. ogx_open_client/models/compound_filter.py +128 -0
  751. ogx_open_client/models/connector.py +152 -0
  752. ogx_open_client/models/connector_input.py +131 -0
  753. ogx_open_client/models/connector_type.py +42 -0
  754. ogx_open_client/models/context_management.py +133 -0
  755. ogx_open_client/models/conversation.py +140 -0
  756. ogx_open_client/models/conversation_deleted_resource.py +133 -0
  757. ogx_open_client/models/conversation_item.py +855 -0
  758. ogx_open_client/models/conversation_item_create_request.py +148 -0
  759. ogx_open_client/models/conversation_item_deleted_resource.py +133 -0
  760. ogx_open_client/models/conversation_item_include.py +48 -0
  761. ogx_open_client/models/conversation_item_list.py +158 -0
  762. ogx_open_client/models/conversation_message.py +149 -0
  763. ogx_open_client/models/create_batch_request.py +144 -0
  764. ogx_open_client/models/create_conversation_request.py +159 -0
  765. ogx_open_client/models/create_message_batch_request.py +148 -0
  766. ogx_open_client/models/create_prompt_request.py +126 -0
  767. ogx_open_client/models/create_response_request.py +402 -0
  768. ogx_open_client/models/custom_tool_config.py +119 -0
  769. ogx_open_client/models/delete_chunks_request.py +132 -0
  770. ogx_open_client/models/delete_conversation_request.py +119 -0
  771. ogx_open_client/models/delete_file_request.py +119 -0
  772. ogx_open_client/models/delete_item_request.py +121 -0
  773. ogx_open_client/models/delete_prompt_request.py +119 -0
  774. ogx_open_client/models/dialog_type.py +129 -0
  775. ogx_open_client/models/embedded_chunk.py +157 -0
  776. ogx_open_client/models/embedded_chunk_input.py +157 -0
  777. ogx_open_client/models/embedded_chunk_output.py +157 -0
  778. ogx_open_client/models/embeddings_response.py +136 -0
  779. ogx_open_client/models/error.py +143 -0
  780. ogx_open_client/models/error_detail.py +313 -0
  781. ogx_open_client/models/errors.py +172 -0
  782. ogx_open_client/models/expires_after.py +129 -0
  783. ogx_open_client/models/fp8_quantization_config.py +129 -0
  784. ogx_open_client/models/function_tool_config.py +119 -0
  785. ogx_open_client/models/get_chat_completion_request.py +119 -0
  786. ogx_open_client/models/get_connector_request.py +119 -0
  787. ogx_open_client/models/get_connector_tool_request.py +121 -0
  788. ogx_open_client/models/get_conversation_request.py +119 -0
  789. ogx_open_client/models/get_model_request.py +119 -0
  790. ogx_open_client/models/get_model_v1_models_model_id_get200_response.py +414 -0
  791. ogx_open_client/models/get_prompt_request.py +126 -0
  792. ogx_open_client/models/google_create_interaction_request.py +213 -0
  793. ogx_open_client/models/google_function_call_content.py +153 -0
  794. ogx_open_client/models/google_function_call_output.py +153 -0
  795. ogx_open_client/models/google_function_declaration.py +146 -0
  796. ogx_open_client/models/google_function_response_content.py +160 -0
  797. ogx_open_client/models/google_generation_config.py +146 -0
  798. ogx_open_client/models/google_input_turn.py +141 -0
  799. ogx_open_client/models/google_interaction_response.py +199 -0
  800. ogx_open_client/models/google_list_models_response.py +147 -0
  801. ogx_open_client/models/google_model_info.py +123 -0
  802. ogx_open_client/models/google_text_content.py +131 -0
  803. ogx_open_client/models/google_text_content_google_function_call_content_google_function_response_content.py +218 -0
  804. ogx_open_client/models/google_text_output.py +131 -0
  805. ogx_open_client/models/google_text_output_google_function_call_output_google_thought_output.py +447 -0
  806. ogx_open_client/models/google_thought_output.py +149 -0
  807. ogx_open_client/models/google_tool.py +145 -0
  808. ogx_open_client/models/google_usage.py +136 -0
  809. ogx_open_client/models/grammar_response_format.py +131 -0
  810. ogx_open_client/models/greedy_sampling_strategy.py +129 -0
  811. ogx_open_client/models/greedy_sampling_strategy_top_p_sampling_strategy_top_k_sampling_strategy.py +447 -0
  812. ogx_open_client/models/health_info.py +120 -0
  813. ogx_open_client/models/health_status.py +44 -0
  814. ogx_open_client/models/image_content_item.py +144 -0
  815. ogx_open_client/models/image_content_item_input.py +144 -0
  816. ogx_open_client/models/image_content_item_input_text_content_item.py +396 -0
  817. ogx_open_client/models/image_content_item_output.py +144 -0
  818. ogx_open_client/models/image_content_item_output_text_content_item.py +396 -0
  819. ogx_open_client/models/image_content_item_text_content_item.py +396 -0
  820. ogx_open_client/models/image_delta.py +131 -0
  821. ogx_open_client/models/inline_provider_spec.py +183 -0
  822. ogx_open_client/models/input_tokens_details.py +132 -0
  823. ogx_open_client/models/insert_chunks_request.py +139 -0
  824. ogx_open_client/models/inspect_provider_request.py +119 -0
  825. ogx_open_client/models/int4_quantization_config.py +136 -0
  826. ogx_open_client/models/integer_number.py +207 -0
  827. ogx_open_client/models/interleaved_content.py +280 -0
  828. ogx_open_client/models/interleaved_content_item.py +396 -0
  829. ogx_open_client/models/job.py +122 -0
  830. ogx_open_client/models/job_status.py +46 -0
  831. ogx_open_client/models/json_schema_response_format.py +131 -0
  832. ogx_open_client/models/json_type.py +129 -0
  833. ogx_open_client/models/list_batches_request.py +126 -0
  834. ogx_open_client/models/list_batches_response.py +158 -0
  835. ogx_open_client/models/list_chat_completion_messages_request.py +142 -0
  836. ogx_open_client/models/list_chat_completions_request.py +147 -0
  837. ogx_open_client/models/list_connector_tools_request.py +119 -0
  838. ogx_open_client/models/list_connectors_response.py +147 -0
  839. ogx_open_client/models/list_files_request.py +147 -0
  840. ogx_open_client/models/list_items_request.py +158 -0
  841. ogx_open_client/models/list_message_batches_response.py +163 -0
  842. ogx_open_client/models/list_models_response.py +147 -0
  843. ogx_open_client/models/list_models_v1_models_get200_response.py +414 -0
  844. ogx_open_client/models/list_number_string.py +265 -0
  845. ogx_open_client/models/list_open_ai_chat_completion_response.py +165 -0
  846. ogx_open_client/models/list_open_ai_file_response.py +165 -0
  847. ogx_open_client/models/list_open_ai_response_input_item.py +159 -0
  848. ogx_open_client/models/list_open_ai_response_object.py +165 -0
  849. ogx_open_client/models/list_prompt_versions_request.py +119 -0
  850. ogx_open_client/models/list_prompts_response.py +147 -0
  851. ogx_open_client/models/list_providers_response.py +147 -0
  852. ogx_open_client/models/list_routes_request.py +134 -0
  853. ogx_open_client/models/list_routes_response.py +147 -0
  854. ogx_open_client/models/list_string_allowed_tools_filter.py +269 -0
  855. ogx_open_client/models/list_tool_defs_response.py +147 -0
  856. ogx_open_client/models/list_tool_groups_response.py +147 -0
  857. ogx_open_client/models/list_tools_request.py +124 -0
  858. ogx_open_client/models/list_tools_response.py +147 -0
  859. ogx_open_client/models/mcp_list_tools_tool.py +128 -0
  860. ogx_open_client/models/message_batch.py +187 -0
  861. ogx_open_client/models/message_batch_request_counts.py +127 -0
  862. ogx_open_client/models/message_batch_request_params.py +142 -0
  863. ogx_open_client/models/metric_in_response.py +141 -0
  864. ogx_open_client/models/model.py +171 -0
  865. ogx_open_client/models/model_type.py +44 -0
  866. ogx_open_client/models/number_type.py +129 -0
  867. ogx_open_client/models/object_type.py +129 -0
  868. ogx_open_client/models/open_ai_assistant_message_param.py +187 -0
  869. ogx_open_client/models/open_ai_assistant_message_param_input.py +187 -0
  870. ogx_open_client/models/open_ai_assistant_message_param_output.py +187 -0
  871. ogx_open_client/models/open_ai_attach_file_request.py +164 -0
  872. ogx_open_client/models/open_ai_chat_completion.py +173 -0
  873. ogx_open_client/models/open_ai_chat_completion_chunk.py +173 -0
  874. ogx_open_client/models/open_ai_chat_completion_content_part_image_param.py +144 -0
  875. ogx_open_client/models/open_ai_chat_completion_content_part_param.py +447 -0
  876. ogx_open_client/models/open_ai_chat_completion_content_part_text_param.py +131 -0
  877. ogx_open_client/models/open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param.py +203 -0
  878. ogx_open_client/models/open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param_open_ai_file.py +447 -0
  879. ogx_open_client/models/open_ai_chat_completion_custom_tool_call_function.py +121 -0
  880. ogx_open_client/models/open_ai_chat_completion_request_with_extra_body.py +377 -0
  881. ogx_open_client/models/open_ai_chat_completion_response_message.py +180 -0
  882. ogx_open_client/models/open_ai_chat_completion_tool_call_function.py +121 -0
  883. ogx_open_client/models/open_ai_chat_completion_tool_choice.py +447 -0
  884. ogx_open_client/models/open_ai_chat_completion_tool_choice_allowed_tools.py +144 -0
  885. ogx_open_client/models/open_ai_chat_completion_tool_choice_custom_tool.py +144 -0
  886. ogx_open_client/models/open_ai_chat_completion_tool_choice_function_tool.py +144 -0
  887. ogx_open_client/models/open_ai_chat_completion_usage.py +154 -0
  888. ogx_open_client/models/open_ai_chat_completion_usage_completion_tokens_details.py +120 -0
  889. ogx_open_client/models/open_ai_chat_completion_usage_prompt_tokens_details.py +120 -0
  890. ogx_open_client/models/open_ai_choice.py +167 -0
  891. ogx_open_client/models/open_ai_choice_delta.py +163 -0
  892. ogx_open_client/models/open_ai_choice_logprobs.py +169 -0
  893. ogx_open_client/models/open_ai_chunk_choice.py +162 -0
  894. ogx_open_client/models/open_ai_chunk_choice_logprobs.py +169 -0
  895. ogx_open_client/models/open_ai_compacted_response.py +161 -0
  896. ogx_open_client/models/open_ai_completion.py +149 -0
  897. ogx_open_client/models/open_ai_completion_choice.py +154 -0
  898. ogx_open_client/models/open_ai_completion_logprobs.py +162 -0
  899. ogx_open_client/models/open_ai_completion_request_with_extra_body.py +273 -0
  900. ogx_open_client/models/open_ai_completion_with_input_messages.py +186 -0
  901. ogx_open_client/models/open_ai_create_vector_store_file_batch_request_with_extra_body.py +212 -0
  902. ogx_open_client/models/open_ai_create_vector_store_request_with_extra_body.py +198 -0
  903. ogx_open_client/models/open_ai_delete_response_object.py +133 -0
  904. ogx_open_client/models/open_ai_developer_message_param.py +151 -0
  905. ogx_open_client/models/open_ai_embedding_data.py +147 -0
  906. ogx_open_client/models/open_ai_embedding_usage.py +121 -0
  907. ogx_open_client/models/open_ai_embeddings_request_with_extra_body.py +164 -0
  908. ogx_open_client/models/open_ai_embeddings_response.py +160 -0
  909. ogx_open_client/models/open_ai_file.py +144 -0
  910. ogx_open_client/models/open_ai_file_delete_response.py +133 -0
  911. ogx_open_client/models/open_ai_file_file.py +138 -0
  912. ogx_open_client/models/open_ai_file_object.py +153 -0
  913. ogx_open_client/models/open_ai_file_purpose.py +50 -0
  914. ogx_open_client/models/open_ai_file_upload_purpose.py +47 -0
  915. ogx_open_client/models/open_ai_finish_reason.py +46 -0
  916. ogx_open_client/models/open_ai_image_url.py +136 -0
  917. ogx_open_client/models/open_ai_list_models_response.py +142 -0
  918. ogx_open_client/models/open_ai_message_param.py +549 -0
  919. ogx_open_client/models/open_ai_model.py +142 -0
  920. ogx_open_client/models/open_ai_response_annotation_citation.py +137 -0
  921. ogx_open_client/models/open_ai_response_annotation_container_file_citation.py +139 -0
  922. ogx_open_client/models/open_ai_response_annotation_file_citation.py +135 -0
  923. ogx_open_client/models/open_ai_response_annotation_file_citation4_variants.py +498 -0
  924. ogx_open_client/models/open_ai_response_annotation_file_path.py +133 -0
  925. ogx_open_client/models/open_ai_response_annotations.py +498 -0
  926. ogx_open_client/models/open_ai_response_compaction.py +138 -0
  927. ogx_open_client/models/open_ai_response_content_part.py +447 -0
  928. ogx_open_client/models/open_ai_response_content_part_output_text.py +162 -0
  929. ogx_open_client/models/open_ai_response_content_part_output_text_open_ai_response_content_part_refusal_open_ai_response_content_part_reasoning_text.py +447 -0
  930. ogx_open_client/models/open_ai_response_content_part_reasoning_summary.py +131 -0
  931. ogx_open_client/models/open_ai_response_content_part_reasoning_text.py +131 -0
  932. ogx_open_client/models/open_ai_response_content_part_refusal.py +131 -0
  933. ogx_open_client/models/open_ai_response_error.py +121 -0
  934. ogx_open_client/models/open_ai_response_format_json_object.py +129 -0
  935. ogx_open_client/models/open_ai_response_format_json_schema.py +144 -0
  936. ogx_open_client/models/open_ai_response_format_param.py +447 -0
  937. ogx_open_client/models/open_ai_response_format_text.py +129 -0
  938. ogx_open_client/models/open_ai_response_format_text_open_ai_response_format_json_schema_open_ai_response_format_json_object.py +453 -0
  939. ogx_open_client/models/open_ai_response_incomplete_details.py +119 -0
  940. ogx_open_client/models/open_ai_response_input.py +251 -0
  941. ogx_open_client/models/open_ai_response_input_function_tool_call_output.py +160 -0
  942. ogx_open_client/models/open_ai_response_input_function_tool_call_output_open_ai_response_mcp_approval_response_open_ai_response_compaction.py +233 -0
  943. ogx_open_client/models/open_ai_response_input_message_content.py +447 -0
  944. ogx_open_client/models/open_ai_response_input_message_content_file.py +157 -0
  945. ogx_open_client/models/open_ai_response_input_message_content_image.py +155 -0
  946. ogx_open_client/models/open_ai_response_input_message_content_text.py +131 -0
  947. ogx_open_client/models/open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file.py +447 -0
  948. ogx_open_client/models/open_ai_response_input_tool.py +516 -0
  949. ogx_open_client/models/open_ai_response_input_tool_choice.py +203 -0
  950. ogx_open_client/models/open_ai_response_input_tool_choice_allowed_tools.py +143 -0
  951. ogx_open_client/models/open_ai_response_input_tool_choice_allowed_tools6_variants.py +618 -0
  952. ogx_open_client/models/open_ai_response_input_tool_choice_custom_tool.py +131 -0
  953. ogx_open_client/models/open_ai_response_input_tool_choice_file_search.py +129 -0
  954. ogx_open_client/models/open_ai_response_input_tool_choice_function_tool.py +131 -0
  955. ogx_open_client/models/open_ai_response_input_tool_choice_mcp_tool.py +138 -0
  956. ogx_open_client/models/open_ai_response_input_tool_choice_mode.py +44 -0
  957. ogx_open_client/models/open_ai_response_input_tool_choice_mode1.py +209 -0
  958. ogx_open_client/models/open_ai_response_input_tool_choice_mode2.py +209 -0
  959. ogx_open_client/models/open_ai_response_input_tool_choice_web_search.py +129 -0
  960. ogx_open_client/models/open_ai_response_input_tool_file_search.py +166 -0
  961. ogx_open_client/models/open_ai_response_input_tool_function.py +152 -0
  962. ogx_open_client/models/open_ai_response_input_tool_mcp.py +194 -0
  963. ogx_open_client/models/open_ai_response_input_tool_web_search.py +186 -0
  964. ogx_open_client/models/open_ai_response_input_tool_web_search4_variants.py +516 -0
  965. ogx_open_client/models/open_ai_response_input_tool_web_search4_variants1.py +516 -0
  966. ogx_open_client/models/open_ai_response_mcp_approval_request.py +137 -0
  967. ogx_open_client/models/open_ai_response_mcp_approval_response.py +147 -0
  968. ogx_open_client/models/open_ai_response_message.py +167 -0
  969. ogx_open_client/models/open_ai_response_message11_variants.py +855 -0
  970. ogx_open_client/models/open_ai_response_message8_variants.py +702 -0
  971. ogx_open_client/models/open_ai_response_message_input.py +167 -0
  972. ogx_open_client/models/open_ai_response_message_input11_variants.py +855 -0
  973. ogx_open_client/models/open_ai_response_message_input8_variants.py +702 -0
  974. ogx_open_client/models/open_ai_response_message_output.py +167 -0
  975. ogx_open_client/models/open_ai_response_message_output11_variants.py +855 -0
  976. ogx_open_client/models/open_ai_response_message_output8_variants.py +702 -0
  977. ogx_open_client/models/open_ai_response_message_output_union.py +233 -0
  978. ogx_open_client/models/open_ai_response_object.py +407 -0
  979. ogx_open_client/models/open_ai_response_object_stream.py +2181 -0
  980. ogx_open_client/models/open_ai_response_object_stream_error.py +147 -0
  981. ogx_open_client/models/open_ai_response_object_stream_response_completed.py +146 -0
  982. ogx_open_client/models/open_ai_response_object_stream_response_content_part_added.py +154 -0
  983. ogx_open_client/models/open_ai_response_object_stream_response_content_part_done.py +154 -0
  984. ogx_open_client/models/open_ai_response_object_stream_response_created.py +146 -0
  985. ogx_open_client/models/open_ai_response_object_stream_response_failed.py +146 -0
  986. ogx_open_client/models/open_ai_response_object_stream_response_file_search_call_completed.py +135 -0
  987. ogx_open_client/models/open_ai_response_object_stream_response_file_search_call_in_progress.py +135 -0
  988. ogx_open_client/models/open_ai_response_object_stream_response_file_search_call_searching.py +135 -0
  989. ogx_open_client/models/open_ai_response_object_stream_response_function_call_arguments_delta.py +137 -0
  990. ogx_open_client/models/open_ai_response_object_stream_response_function_call_arguments_done.py +137 -0
  991. ogx_open_client/models/open_ai_response_object_stream_response_in_progress.py +146 -0
  992. ogx_open_client/models/open_ai_response_object_stream_response_incomplete.py +146 -0
  993. ogx_open_client/models/open_ai_response_object_stream_response_mcp_call_arguments_delta.py +137 -0
  994. ogx_open_client/models/open_ai_response_object_stream_response_mcp_call_arguments_done.py +137 -0
  995. ogx_open_client/models/open_ai_response_object_stream_response_mcp_call_completed.py +131 -0
  996. ogx_open_client/models/open_ai_response_object_stream_response_mcp_call_failed.py +131 -0
  997. ogx_open_client/models/open_ai_response_object_stream_response_mcp_call_in_progress.py +135 -0
  998. ogx_open_client/models/open_ai_response_object_stream_response_mcp_list_tools_completed.py +131 -0
  999. ogx_open_client/models/open_ai_response_object_stream_response_mcp_list_tools_failed.py +131 -0
  1000. ogx_open_client/models/open_ai_response_object_stream_response_mcp_list_tools_in_progress.py +131 -0
  1001. ogx_open_client/models/open_ai_response_object_stream_response_output_item_added.py +150 -0
  1002. ogx_open_client/models/open_ai_response_object_stream_response_output_item_done.py +150 -0
  1003. ogx_open_client/models/open_ai_response_object_stream_response_output_text_annotation_added.py +154 -0
  1004. ogx_open_client/models/open_ai_response_object_stream_response_output_text_delta.py +157 -0
  1005. ogx_open_client/models/open_ai_response_object_stream_response_output_text_done.py +139 -0
  1006. ogx_open_client/models/open_ai_response_object_stream_response_reasoning_summary_part_added.py +152 -0
  1007. ogx_open_client/models/open_ai_response_object_stream_response_reasoning_summary_part_done.py +152 -0
  1008. ogx_open_client/models/open_ai_response_object_stream_response_reasoning_summary_text_delta.py +139 -0
  1009. ogx_open_client/models/open_ai_response_object_stream_response_reasoning_summary_text_done.py +139 -0
  1010. ogx_open_client/models/open_ai_response_object_stream_response_reasoning_text_delta.py +139 -0
  1011. ogx_open_client/models/open_ai_response_object_stream_response_reasoning_text_done.py +139 -0
  1012. ogx_open_client/models/open_ai_response_object_stream_response_refusal_delta.py +139 -0
  1013. ogx_open_client/models/open_ai_response_object_stream_response_refusal_done.py +139 -0
  1014. ogx_open_client/models/open_ai_response_object_stream_response_web_search_call_completed.py +135 -0
  1015. ogx_open_client/models/open_ai_response_object_stream_response_web_search_call_in_progress.py +135 -0
  1016. ogx_open_client/models/open_ai_response_object_stream_response_web_search_call_searching.py +135 -0
  1017. ogx_open_client/models/open_ai_response_object_with_input.py +425 -0
  1018. ogx_open_client/models/open_ai_response_output.py +702 -0
  1019. ogx_open_client/models/open_ai_response_output_item.py +702 -0
  1020. ogx_open_client/models/open_ai_response_output_message_content.py +396 -0
  1021. ogx_open_client/models/open_ai_response_output_message_content_output_text.py +162 -0
  1022. ogx_open_client/models/open_ai_response_output_message_content_output_text_input.py +162 -0
  1023. ogx_open_client/models/open_ai_response_output_message_content_output_text_input_open_ai_response_content_part_refusal.py +396 -0
  1024. ogx_open_client/models/open_ai_response_output_message_content_output_text_open_ai_response_content_part_refusal.py +396 -0
  1025. ogx_open_client/models/open_ai_response_output_message_content_output_text_output.py +162 -0
  1026. ogx_open_client/models/open_ai_response_output_message_content_output_text_output_open_ai_response_content_part_refusal.py +396 -0
  1027. ogx_open_client/models/open_ai_response_output_message_file_search_tool_call.py +153 -0
  1028. ogx_open_client/models/open_ai_response_output_message_file_search_tool_call_results.py +127 -0
  1029. ogx_open_client/models/open_ai_response_output_message_function_tool_call.py +149 -0
  1030. ogx_open_client/models/open_ai_response_output_message_mcp_call.py +151 -0
  1031. ogx_open_client/models/open_ai_response_output_message_mcp_list_tools.py +146 -0
  1032. ogx_open_client/models/open_ai_response_output_message_reasoning_content.py +131 -0
  1033. ogx_open_client/models/open_ai_response_output_message_reasoning_item.py +179 -0
  1034. ogx_open_client/models/open_ai_response_output_message_reasoning_summary.py +131 -0
  1035. ogx_open_client/models/open_ai_response_output_message_web_search_tool_call.py +153 -0
  1036. ogx_open_client/models/open_ai_response_output_message_web_search_tool_call_input.py +153 -0
  1037. ogx_open_client/models/open_ai_response_output_message_web_search_tool_call_output.py +153 -0
  1038. ogx_open_client/models/open_ai_response_prompt.py +151 -0
  1039. ogx_open_client/models/open_ai_response_reasoning.py +168 -0
  1040. ogx_open_client/models/open_ai_response_text.py +154 -0
  1041. ogx_open_client/models/open_ai_response_text_format.py +157 -0
  1042. ogx_open_client/models/open_ai_response_tool.py +516 -0
  1043. ogx_open_client/models/open_ai_response_tool_mcp.py +151 -0
  1044. ogx_open_client/models/open_ai_response_usage.py +153 -0
  1045. ogx_open_client/models/open_ai_response_usage_input_tokens_details.py +119 -0
  1046. ogx_open_client/models/open_ai_response_usage_output_tokens_details.py +119 -0
  1047. ogx_open_client/models/open_ai_search_vector_store_request.py +171 -0
  1048. ogx_open_client/models/open_ai_system_message_param.py +151 -0
  1049. ogx_open_client/models/open_ai_token_log_prob.py +146 -0
  1050. ogx_open_client/models/open_ai_tool_message_param.py +146 -0
  1051. ogx_open_client/models/open_ai_top_log_prob.py +128 -0
  1052. ogx_open_client/models/open_ai_update_vector_store_file_request.py +119 -0
  1053. ogx_open_client/models/open_ai_update_vector_store_request.py +151 -0
  1054. ogx_open_client/models/open_ai_user_message_param.py +151 -0
  1055. ogx_open_client/models/open_ai_user_message_param_input.py +151 -0
  1056. ogx_open_client/models/open_ai_user_message_param_input5_variants.py +549 -0
  1057. ogx_open_client/models/open_ai_user_message_param_output.py +151 -0
  1058. ogx_open_client/models/open_ai_user_message_param_output5_variants.py +549 -0
  1059. ogx_open_client/models/open_aijson_schema.py +140 -0
  1060. ogx_open_client/models/order.py +43 -0
  1061. ogx_open_client/models/output_tokens_details.py +132 -0
  1062. ogx_open_client/models/paginated_response.py +145 -0
  1063. ogx_open_client/models/param_type.py +753 -0
  1064. ogx_open_client/models/process_file_request.py +151 -0
  1065. ogx_open_client/models/process_file_response.py +149 -0
  1066. ogx_open_client/models/prompt.py +133 -0
  1067. ogx_open_client/models/provider_info.py +127 -0
  1068. ogx_open_client/models/provider_spec.py +169 -0
  1069. ogx_open_client/models/query_chunks_request.py +141 -0
  1070. ogx_open_client/models/query_chunks_response.py +149 -0
  1071. ogx_open_client/models/register_model_request.py +155 -0
  1072. ogx_open_client/models/remote_provider_spec.py +178 -0
  1073. ogx_open_client/models/rerank_data.py +122 -0
  1074. ogx_open_client/models/rerank_request.py +155 -0
  1075. ogx_open_client/models/rerank_response.py +147 -0
  1076. ogx_open_client/models/response_format.py +396 -0
  1077. ogx_open_client/models/response_item_include.py +48 -0
  1078. ogx_open_client/models/response_retrieve_item_v1_conversations_conversation_id_items_item_id_get.py +849 -0
  1079. ogx_open_client/models/response_stream_options.py +119 -0
  1080. ogx_open_client/models/response_truncation.py +43 -0
  1081. ogx_open_client/models/retrieve_batch_request.py +119 -0
  1082. ogx_open_client/models/retrieve_file_content_request.py +119 -0
  1083. ogx_open_client/models/retrieve_file_request.py +119 -0
  1084. ogx_open_client/models/retrieve_item_request.py +121 -0
  1085. ogx_open_client/models/route_info.py +123 -0
  1086. ogx_open_client/models/sampling_params.py +154 -0
  1087. ogx_open_client/models/sampling_strategy.py +447 -0
  1088. ogx_open_client/models/score_request.py +136 -0
  1089. ogx_open_client/models/scoring_result.py +124 -0
  1090. ogx_open_client/models/search_ranking_options.py +160 -0
  1091. ogx_open_client/models/service_tier.py +45 -0
  1092. ogx_open_client/models/set_default_version_body_request.py +119 -0
  1093. ogx_open_client/models/set_default_version_request.py +121 -0
  1094. ogx_open_client/models/string4_variants.py +415 -0
  1095. ogx_open_client/models/string4_variants1.py +416 -0
  1096. ogx_open_client/models/string_approval_filter.py +222 -0
  1097. ogx_open_client/models/string_list_anthropic_text_block.py +272 -0
  1098. ogx_open_client/models/string_list_anthropic_text_block1.py +272 -0
  1099. ogx_open_client/models/string_list_anthropic_text_block_anthropic_image_block.py +266 -0
  1100. ogx_open_client/models/string_list_google_input_turn.py +266 -0
  1101. ogx_open_client/models/string_list_google_text_content_google_function_call_content_google_function_response_content.py +266 -0
  1102. ogx_open_client/models/string_list_image_content_item_input_text_content_item.py +280 -0
  1103. ogx_open_client/models/string_list_image_content_item_input_text_content_item1.py +280 -0
  1104. ogx_open_client/models/string_list_image_content_item_output_text_content_item.py +280 -0
  1105. ogx_open_client/models/string_list_image_content_item_text_content_item.py +286 -0
  1106. ogx_open_client/models/string_list_image_content_item_text_content_item1.py +280 -0
  1107. ogx_open_client/models/string_list_image_content_item_text_content_item2.py +286 -0
  1108. ogx_open_client/models/string_list_image_content_item_text_content_item3.py +280 -0
  1109. ogx_open_client/models/string_list_image_content_item_text_content_item4.py +280 -0
  1110. ogx_open_client/models/string_list_image_content_item_text_content_item5.py +280 -0
  1111. ogx_open_client/models/string_list_open_ai_chat_completion_content_part_text_param.py +272 -0
  1112. ogx_open_client/models/string_list_open_ai_chat_completion_content_part_text_param1.py +266 -0
  1113. ogx_open_client/models/string_list_open_ai_chat_completion_content_part_text_param2.py +266 -0
  1114. ogx_open_client/models/string_list_open_ai_chat_completion_content_part_text_param3.py +266 -0
  1115. ogx_open_client/models/string_list_open_ai_chat_completion_content_part_text_param4.py +272 -0
  1116. ogx_open_client/models/string_list_open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param_open_ai_file.py +266 -0
  1117. ogx_open_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file.py +266 -0
  1118. ogx_open_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file_list_open_ai_response_output_message_content_output_text_input_open_ai_response_content_part_refusal.py +342 -0
  1119. ogx_open_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file_list_open_ai_response_output_message_content_output_text_open_ai_response_content_part_refusal.py +342 -0
  1120. ogx_open_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file_list_open_ai_response_output_message_content_output_text_output_open_ai_response_content_part_refusal.py +342 -0
  1121. ogx_open_client/models/string_list_open_ai_response_message_union_open_ai_response_input_function_tool_call_output.py +272 -0
  1122. ogx_open_client/models/string_list_open_ai_response_message_union_open_ai_response_input_function_tool_call_output1.py +266 -0
  1123. ogx_open_client/models/string_list_string.py +271 -0
  1124. ogx_open_client/models/string_list_string1.py +265 -0
  1125. ogx_open_client/models/string_list_string2.py +265 -0
  1126. ogx_open_client/models/string_number_boolean.py +225 -0
  1127. ogx_open_client/models/string_number_boolean1.py +224 -0
  1128. ogx_open_client/models/string_object.py +271 -0
  1129. ogx_open_client/models/string_object1.py +271 -0
  1130. ogx_open_client/models/string_open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param.py +220 -0
  1131. ogx_open_client/models/string_open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param1.py +220 -0
  1132. ogx_open_client/models/string_type.py +129 -0
  1133. ogx_open_client/models/system_message.py +144 -0
  1134. ogx_open_client/models/text_content_item.py +131 -0
  1135. ogx_open_client/models/text_delta.py +131 -0
  1136. ogx_open_client/models/token_log_probs.py +119 -0
  1137. ogx_open_client/models/tool_config.py +119 -0
  1138. ogx_open_client/models/tool_def.py +154 -0
  1139. ogx_open_client/models/tool_group.py +167 -0
  1140. ogx_open_client/models/tool_group_input.py +148 -0
  1141. ogx_open_client/models/tool_invocation_result.py +158 -0
  1142. ogx_open_client/models/tool_response_message.py +146 -0
  1143. ogx_open_client/models/top_k_sampling_strategy.py +132 -0
  1144. ogx_open_client/models/top_p_sampling_strategy.py +134 -0
  1145. ogx_open_client/models/union_type.py +129 -0
  1146. ogx_open_client/models/unregister_model_request.py +119 -0
  1147. ogx_open_client/models/update_conversation_request.py +119 -0
  1148. ogx_open_client/models/update_prompt_body_request.py +130 -0
  1149. ogx_open_client/models/update_prompt_request.py +132 -0
  1150. ogx_open_client/models/upload_file_request.py +140 -0
  1151. ogx_open_client/models/url.py +119 -0
  1152. ogx_open_client/models/urlor_data.py +144 -0
  1153. ogx_open_client/models/user_message.py +164 -0
  1154. ogx_open_client/models/vector_store_chunking_strategy.py +453 -0
  1155. ogx_open_client/models/vector_store_chunking_strategy_auto.py +129 -0
  1156. ogx_open_client/models/vector_store_chunking_strategy_auto_vector_store_chunking_strategy_static_vector_store_chunking_strategy_contextual.py +453 -0
  1157. ogx_open_client/models/vector_store_chunking_strategy_auto_vector_store_chunking_strategy_static_vector_store_chunking_strategy_contextual1.py +447 -0
  1158. ogx_open_client/models/vector_store_chunking_strategy_contextual.py +144 -0
  1159. ogx_open_client/models/vector_store_chunking_strategy_contextual_config.py +145 -0
  1160. ogx_open_client/models/vector_store_chunking_strategy_static.py +144 -0
  1161. ogx_open_client/models/vector_store_chunking_strategy_static_config.py +122 -0
  1162. ogx_open_client/models/vector_store_content.py +162 -0
  1163. ogx_open_client/models/vector_store_create_request.py +167 -0
  1164. ogx_open_client/models/vector_store_delete_response.py +133 -0
  1165. ogx_open_client/models/vector_store_expiration_after.py +129 -0
  1166. ogx_open_client/models/vector_store_file_batch_file_entry.py +164 -0
  1167. ogx_open_client/models/vector_store_file_batch_object.py +159 -0
  1168. ogx_open_client/models/vector_store_file_content_response.py +151 -0
  1169. ogx_open_client/models/vector_store_file_counts.py +127 -0
  1170. ogx_open_client/models/vector_store_file_delete_response.py +133 -0
  1171. ogx_open_client/models/vector_store_file_last_error.py +128 -0
  1172. ogx_open_client/models/vector_store_file_object.py +206 -0
  1173. ogx_open_client/models/vector_store_file_status.py +45 -0
  1174. ogx_open_client/models/vector_store_files_list_in_batch_response.py +148 -0
  1175. ogx_open_client/models/vector_store_list_files_response.py +148 -0
  1176. ogx_open_client/models/vector_store_list_response.py +148 -0
  1177. ogx_open_client/models/vector_store_modify_request.py +151 -0
  1178. ogx_open_client/models/vector_store_object.py +202 -0
  1179. ogx_open_client/models/vector_store_search_request.py +151 -0
  1180. ogx_open_client/models/vector_store_search_response.py +161 -0
  1181. ogx_open_client/models/vector_store_search_response_page.py +153 -0
  1182. ogx_open_client/models/vector_store_status.py +44 -0
  1183. ogx_open_client/models/version_info.py +119 -0
  1184. ogx_open_client/models/web_search_action_find.py +133 -0
  1185. ogx_open_client/models/web_search_action_open_page.py +136 -0
  1186. ogx_open_client/models/web_search_action_search.py +156 -0
  1187. ogx_open_client/models/web_search_action_search_web_search_action_open_page_web_search_action_find.py +224 -0
  1188. ogx_open_client/models/web_search_action_search_web_search_action_open_page_web_search_action_find1.py +224 -0
  1189. ogx_open_client/models/web_search_filters.py +141 -0
  1190. ogx_open_client/models/web_search_source.py +131 -0
  1191. ogx_open_client/models/web_search_user_location.py +157 -0
  1192. ogx_open_client/ogx_client.py +309 -0
  1193. ogx_open_client/py.typed +0 -0
  1194. ogx_open_client/rest.py +255 -0
  1195. ogx_open_client/stream.py +183 -0
  1196. ogx_open_client-1.0.3.dev0.dist-info/METADATA +723 -0
  1197. ogx_open_client-1.0.3.dev0.dist-info/RECORD +1199 -0
  1198. ogx_open_client-1.0.3.dev0.dist-info/WHEEL +5 -0
  1199. ogx_open_client-1.0.3.dev0.dist-info/top_level.txt +2 -0
@@ -0,0 +1,2181 @@
1
+ # coding: utf-8
2
+
3
+ # Copyright (c) The OGX Contributors.
4
+ # All rights reserved.
5
+ #
6
+ # This source code is licensed under the terms described in the LICENSE file in
7
+ # the root directory of this source tree.
8
+
9
+ """
10
+ OGX Specification - Stable & Experimental APIs
11
+
12
+ This is the specification of the OGX that provides a set of endpoints and their corresponding interfaces that are tailored to best leverage Llama Models. **🔗 COMBINED**: This specification includes both stable production-ready APIs and experimental pre-release APIs. Use stable APIs for production deployments and experimental APIs for testing new features.
13
+
14
+ The version of the OpenAPI document: v1
15
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
16
+
17
+ Do not edit the class manually.
18
+ """ # noqa: E501
19
+
20
+
21
+ from __future__ import annotations
22
+ import json
23
+ import pprint
24
+ import re
25
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
26
+ from typing import Any, List, Optional
27
+ from ogx_open_client.models.open_ai_response_object_stream_error import OpenAIResponseObjectStreamError
28
+ from ogx_open_client.models.open_ai_response_object_stream_response_completed import OpenAIResponseObjectStreamResponseCompleted
29
+ from ogx_open_client.models.open_ai_response_object_stream_response_content_part_added import OpenAIResponseObjectStreamResponseContentPartAdded
30
+ from ogx_open_client.models.open_ai_response_object_stream_response_content_part_done import OpenAIResponseObjectStreamResponseContentPartDone
31
+ from ogx_open_client.models.open_ai_response_object_stream_response_created import OpenAIResponseObjectStreamResponseCreated
32
+ from ogx_open_client.models.open_ai_response_object_stream_response_failed import OpenAIResponseObjectStreamResponseFailed
33
+ from ogx_open_client.models.open_ai_response_object_stream_response_file_search_call_completed import OpenAIResponseObjectStreamResponseFileSearchCallCompleted
34
+ from ogx_open_client.models.open_ai_response_object_stream_response_file_search_call_in_progress import OpenAIResponseObjectStreamResponseFileSearchCallInProgress
35
+ from ogx_open_client.models.open_ai_response_object_stream_response_file_search_call_searching import OpenAIResponseObjectStreamResponseFileSearchCallSearching
36
+ from ogx_open_client.models.open_ai_response_object_stream_response_function_call_arguments_delta import OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta
37
+ from ogx_open_client.models.open_ai_response_object_stream_response_function_call_arguments_done import OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone
38
+ from ogx_open_client.models.open_ai_response_object_stream_response_in_progress import OpenAIResponseObjectStreamResponseInProgress
39
+ from ogx_open_client.models.open_ai_response_object_stream_response_incomplete import OpenAIResponseObjectStreamResponseIncomplete
40
+ from ogx_open_client.models.open_ai_response_object_stream_response_mcp_call_arguments_delta import OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta
41
+ from ogx_open_client.models.open_ai_response_object_stream_response_mcp_call_arguments_done import OpenAIResponseObjectStreamResponseMcpCallArgumentsDone
42
+ from ogx_open_client.models.open_ai_response_object_stream_response_mcp_call_completed import OpenAIResponseObjectStreamResponseMcpCallCompleted
43
+ from ogx_open_client.models.open_ai_response_object_stream_response_mcp_call_failed import OpenAIResponseObjectStreamResponseMcpCallFailed
44
+ from ogx_open_client.models.open_ai_response_object_stream_response_mcp_call_in_progress import OpenAIResponseObjectStreamResponseMcpCallInProgress
45
+ from ogx_open_client.models.open_ai_response_object_stream_response_mcp_list_tools_completed import OpenAIResponseObjectStreamResponseMcpListToolsCompleted
46
+ from ogx_open_client.models.open_ai_response_object_stream_response_mcp_list_tools_failed import OpenAIResponseObjectStreamResponseMcpListToolsFailed
47
+ from ogx_open_client.models.open_ai_response_object_stream_response_mcp_list_tools_in_progress import OpenAIResponseObjectStreamResponseMcpListToolsInProgress
48
+ from ogx_open_client.models.open_ai_response_object_stream_response_output_item_added import OpenAIResponseObjectStreamResponseOutputItemAdded
49
+ from ogx_open_client.models.open_ai_response_object_stream_response_output_item_done import OpenAIResponseObjectStreamResponseOutputItemDone
50
+ from ogx_open_client.models.open_ai_response_object_stream_response_output_text_annotation_added import OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded
51
+ from ogx_open_client.models.open_ai_response_object_stream_response_output_text_delta import OpenAIResponseObjectStreamResponseOutputTextDelta
52
+ from ogx_open_client.models.open_ai_response_object_stream_response_output_text_done import OpenAIResponseObjectStreamResponseOutputTextDone
53
+ from ogx_open_client.models.open_ai_response_object_stream_response_reasoning_summary_part_added import OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded
54
+ from ogx_open_client.models.open_ai_response_object_stream_response_reasoning_summary_part_done import OpenAIResponseObjectStreamResponseReasoningSummaryPartDone
55
+ from ogx_open_client.models.open_ai_response_object_stream_response_reasoning_summary_text_delta import OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta
56
+ from ogx_open_client.models.open_ai_response_object_stream_response_reasoning_summary_text_done import OpenAIResponseObjectStreamResponseReasoningSummaryTextDone
57
+ from ogx_open_client.models.open_ai_response_object_stream_response_reasoning_text_delta import OpenAIResponseObjectStreamResponseReasoningTextDelta
58
+ from ogx_open_client.models.open_ai_response_object_stream_response_reasoning_text_done import OpenAIResponseObjectStreamResponseReasoningTextDone
59
+ from ogx_open_client.models.open_ai_response_object_stream_response_refusal_delta import OpenAIResponseObjectStreamResponseRefusalDelta
60
+ from ogx_open_client.models.open_ai_response_object_stream_response_refusal_done import OpenAIResponseObjectStreamResponseRefusalDone
61
+ from ogx_open_client.models.open_ai_response_object_stream_response_web_search_call_completed import OpenAIResponseObjectStreamResponseWebSearchCallCompleted
62
+ from ogx_open_client.models.open_ai_response_object_stream_response_web_search_call_in_progress import OpenAIResponseObjectStreamResponseWebSearchCallInProgress
63
+ from ogx_open_client.models.open_ai_response_object_stream_response_web_search_call_searching import OpenAIResponseObjectStreamResponseWebSearchCallSearching
64
+ from pydantic import StrictStr, Field, model_serializer
65
+ from typing import Any, ClassVar
66
+ from typing_extensions import Literal, Self
67
+ from ogx_open_client.lib._utils import pascal_to_snake_case
68
+
69
+ OPENAIRESPONSEOBJECTSTREAM_ONE_OF_SCHEMAS = ["OpenAIResponseObjectStreamError", "OpenAIResponseObjectStreamResponseCompleted", "OpenAIResponseObjectStreamResponseContentPartAdded", "OpenAIResponseObjectStreamResponseContentPartDone", "OpenAIResponseObjectStreamResponseCreated", "OpenAIResponseObjectStreamResponseFailed", "OpenAIResponseObjectStreamResponseFileSearchCallCompleted", "OpenAIResponseObjectStreamResponseFileSearchCallInProgress", "OpenAIResponseObjectStreamResponseFileSearchCallSearching", "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta", "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone", "OpenAIResponseObjectStreamResponseInProgress", "OpenAIResponseObjectStreamResponseIncomplete", "OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta", "OpenAIResponseObjectStreamResponseMcpCallArgumentsDone", "OpenAIResponseObjectStreamResponseMcpCallCompleted", "OpenAIResponseObjectStreamResponseMcpCallFailed", "OpenAIResponseObjectStreamResponseMcpCallInProgress", "OpenAIResponseObjectStreamResponseMcpListToolsCompleted", "OpenAIResponseObjectStreamResponseMcpListToolsFailed", "OpenAIResponseObjectStreamResponseMcpListToolsInProgress", "OpenAIResponseObjectStreamResponseOutputItemAdded", "OpenAIResponseObjectStreamResponseOutputItemDone", "OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded", "OpenAIResponseObjectStreamResponseOutputTextDelta", "OpenAIResponseObjectStreamResponseOutputTextDone", "OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded", "OpenAIResponseObjectStreamResponseReasoningSummaryPartDone", "OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta", "OpenAIResponseObjectStreamResponseReasoningSummaryTextDone", "OpenAIResponseObjectStreamResponseReasoningTextDelta", "OpenAIResponseObjectStreamResponseReasoningTextDone", "OpenAIResponseObjectStreamResponseRefusalDelta", "OpenAIResponseObjectStreamResponseRefusalDone", "OpenAIResponseObjectStreamResponseWebSearchCallCompleted", "OpenAIResponseObjectStreamResponseWebSearchCallInProgress", "OpenAIResponseObjectStreamResponseWebSearchCallSearching"]
70
+
71
+ class OpenAIResponseObjectStream(BaseModel):
72
+ """
73
+ OpenAIResponseObjectStream
74
+ """
75
+ # data type: OpenAIResponseObjectStreamResponseCreated
76
+ oneof_schema_1_validator: Optional[OpenAIResponseObjectStreamResponseCreated] = None
77
+ # data type: OpenAIResponseObjectStreamResponseInProgress
78
+ oneof_schema_2_validator: Optional[OpenAIResponseObjectStreamResponseInProgress] = None
79
+ # data type: OpenAIResponseObjectStreamResponseOutputItemAdded
80
+ oneof_schema_3_validator: Optional[OpenAIResponseObjectStreamResponseOutputItemAdded] = None
81
+ # data type: OpenAIResponseObjectStreamResponseOutputItemDone
82
+ oneof_schema_4_validator: Optional[OpenAIResponseObjectStreamResponseOutputItemDone] = None
83
+ # data type: OpenAIResponseObjectStreamResponseOutputTextDelta
84
+ oneof_schema_5_validator: Optional[OpenAIResponseObjectStreamResponseOutputTextDelta] = None
85
+ # data type: OpenAIResponseObjectStreamResponseOutputTextDone
86
+ oneof_schema_6_validator: Optional[OpenAIResponseObjectStreamResponseOutputTextDone] = None
87
+ # data type: OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta
88
+ oneof_schema_7_validator: Optional[OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta] = None
89
+ # data type: OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone
90
+ oneof_schema_8_validator: Optional[OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone] = None
91
+ # data type: OpenAIResponseObjectStreamResponseWebSearchCallInProgress
92
+ oneof_schema_9_validator: Optional[OpenAIResponseObjectStreamResponseWebSearchCallInProgress] = None
93
+ # data type: OpenAIResponseObjectStreamResponseWebSearchCallSearching
94
+ oneof_schema_10_validator: Optional[OpenAIResponseObjectStreamResponseWebSearchCallSearching] = None
95
+ # data type: OpenAIResponseObjectStreamResponseWebSearchCallCompleted
96
+ oneof_schema_11_validator: Optional[OpenAIResponseObjectStreamResponseWebSearchCallCompleted] = None
97
+ # data type: OpenAIResponseObjectStreamResponseMcpListToolsInProgress
98
+ oneof_schema_12_validator: Optional[OpenAIResponseObjectStreamResponseMcpListToolsInProgress] = None
99
+ # data type: OpenAIResponseObjectStreamResponseMcpListToolsFailed
100
+ oneof_schema_13_validator: Optional[OpenAIResponseObjectStreamResponseMcpListToolsFailed] = None
101
+ # data type: OpenAIResponseObjectStreamResponseMcpListToolsCompleted
102
+ oneof_schema_14_validator: Optional[OpenAIResponseObjectStreamResponseMcpListToolsCompleted] = None
103
+ # data type: OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta
104
+ oneof_schema_15_validator: Optional[OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta] = None
105
+ # data type: OpenAIResponseObjectStreamResponseMcpCallArgumentsDone
106
+ oneof_schema_16_validator: Optional[OpenAIResponseObjectStreamResponseMcpCallArgumentsDone] = None
107
+ # data type: OpenAIResponseObjectStreamResponseMcpCallInProgress
108
+ oneof_schema_17_validator: Optional[OpenAIResponseObjectStreamResponseMcpCallInProgress] = None
109
+ # data type: OpenAIResponseObjectStreamResponseMcpCallFailed
110
+ oneof_schema_18_validator: Optional[OpenAIResponseObjectStreamResponseMcpCallFailed] = None
111
+ # data type: OpenAIResponseObjectStreamResponseMcpCallCompleted
112
+ oneof_schema_19_validator: Optional[OpenAIResponseObjectStreamResponseMcpCallCompleted] = None
113
+ # data type: OpenAIResponseObjectStreamResponseContentPartAdded
114
+ oneof_schema_20_validator: Optional[OpenAIResponseObjectStreamResponseContentPartAdded] = None
115
+ # data type: OpenAIResponseObjectStreamResponseContentPartDone
116
+ oneof_schema_21_validator: Optional[OpenAIResponseObjectStreamResponseContentPartDone] = None
117
+ # data type: OpenAIResponseObjectStreamResponseReasoningTextDelta
118
+ oneof_schema_22_validator: Optional[OpenAIResponseObjectStreamResponseReasoningTextDelta] = None
119
+ # data type: OpenAIResponseObjectStreamResponseReasoningTextDone
120
+ oneof_schema_23_validator: Optional[OpenAIResponseObjectStreamResponseReasoningTextDone] = None
121
+ # data type: OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded
122
+ oneof_schema_24_validator: Optional[OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded] = None
123
+ # data type: OpenAIResponseObjectStreamResponseReasoningSummaryPartDone
124
+ oneof_schema_25_validator: Optional[OpenAIResponseObjectStreamResponseReasoningSummaryPartDone] = None
125
+ # data type: OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta
126
+ oneof_schema_26_validator: Optional[OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta] = None
127
+ # data type: OpenAIResponseObjectStreamResponseReasoningSummaryTextDone
128
+ oneof_schema_27_validator: Optional[OpenAIResponseObjectStreamResponseReasoningSummaryTextDone] = None
129
+ # data type: OpenAIResponseObjectStreamResponseRefusalDelta
130
+ oneof_schema_28_validator: Optional[OpenAIResponseObjectStreamResponseRefusalDelta] = None
131
+ # data type: OpenAIResponseObjectStreamResponseRefusalDone
132
+ oneof_schema_29_validator: Optional[OpenAIResponseObjectStreamResponseRefusalDone] = None
133
+ # data type: OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded
134
+ oneof_schema_30_validator: Optional[OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded] = None
135
+ # data type: OpenAIResponseObjectStreamResponseFileSearchCallInProgress
136
+ oneof_schema_31_validator: Optional[OpenAIResponseObjectStreamResponseFileSearchCallInProgress] = None
137
+ # data type: OpenAIResponseObjectStreamResponseFileSearchCallSearching
138
+ oneof_schema_32_validator: Optional[OpenAIResponseObjectStreamResponseFileSearchCallSearching] = None
139
+ # data type: OpenAIResponseObjectStreamResponseFileSearchCallCompleted
140
+ oneof_schema_33_validator: Optional[OpenAIResponseObjectStreamResponseFileSearchCallCompleted] = None
141
+ # data type: OpenAIResponseObjectStreamResponseIncomplete
142
+ oneof_schema_34_validator: Optional[OpenAIResponseObjectStreamResponseIncomplete] = None
143
+ # data type: OpenAIResponseObjectStreamResponseFailed
144
+ oneof_schema_35_validator: Optional[OpenAIResponseObjectStreamResponseFailed] = None
145
+ # data type: OpenAIResponseObjectStreamResponseCompleted
146
+ oneof_schema_36_validator: Optional[OpenAIResponseObjectStreamResponseCompleted] = None
147
+ # data type: OpenAIResponseObjectStreamError
148
+ oneof_schema_37_validator: Optional[OpenAIResponseObjectStreamError] = None
149
+ actual_instance: OpenAIResponseObjectStreamError | OpenAIResponseObjectStreamResponseCompleted | OpenAIResponseObjectStreamResponseContentPartAdded | OpenAIResponseObjectStreamResponseContentPartDone | OpenAIResponseObjectStreamResponseCreated | OpenAIResponseObjectStreamResponseFailed | OpenAIResponseObjectStreamResponseFileSearchCallCompleted | OpenAIResponseObjectStreamResponseFileSearchCallInProgress | OpenAIResponseObjectStreamResponseFileSearchCallSearching | OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta | OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone | OpenAIResponseObjectStreamResponseInProgress | OpenAIResponseObjectStreamResponseIncomplete | OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta | OpenAIResponseObjectStreamResponseMcpCallArgumentsDone | OpenAIResponseObjectStreamResponseMcpCallCompleted | OpenAIResponseObjectStreamResponseMcpCallFailed | OpenAIResponseObjectStreamResponseMcpCallInProgress | OpenAIResponseObjectStreamResponseMcpListToolsCompleted | OpenAIResponseObjectStreamResponseMcpListToolsFailed | OpenAIResponseObjectStreamResponseMcpListToolsInProgress | OpenAIResponseObjectStreamResponseOutputItemAdded | OpenAIResponseObjectStreamResponseOutputItemDone | OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded | OpenAIResponseObjectStreamResponseOutputTextDelta | OpenAIResponseObjectStreamResponseOutputTextDone | OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded | OpenAIResponseObjectStreamResponseReasoningSummaryPartDone | OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta | OpenAIResponseObjectStreamResponseReasoningSummaryTextDone | OpenAIResponseObjectStreamResponseReasoningTextDelta | OpenAIResponseObjectStreamResponseReasoningTextDone | OpenAIResponseObjectStreamResponseRefusalDelta | OpenAIResponseObjectStreamResponseRefusalDone | OpenAIResponseObjectStreamResponseWebSearchCallCompleted | OpenAIResponseObjectStreamResponseWebSearchCallInProgress | OpenAIResponseObjectStreamResponseWebSearchCallSearching | None = None
150
+ one_of_schemas: ClassVar[set[str]] = { "OpenAIResponseObjectStreamError", "OpenAIResponseObjectStreamResponseCompleted", "OpenAIResponseObjectStreamResponseContentPartAdded", "OpenAIResponseObjectStreamResponseContentPartDone", "OpenAIResponseObjectStreamResponseCreated", "OpenAIResponseObjectStreamResponseFailed", "OpenAIResponseObjectStreamResponseFileSearchCallCompleted", "OpenAIResponseObjectStreamResponseFileSearchCallInProgress", "OpenAIResponseObjectStreamResponseFileSearchCallSearching", "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta", "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone", "OpenAIResponseObjectStreamResponseInProgress", "OpenAIResponseObjectStreamResponseIncomplete", "OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta", "OpenAIResponseObjectStreamResponseMcpCallArgumentsDone", "OpenAIResponseObjectStreamResponseMcpCallCompleted", "OpenAIResponseObjectStreamResponseMcpCallFailed", "OpenAIResponseObjectStreamResponseMcpCallInProgress", "OpenAIResponseObjectStreamResponseMcpListToolsCompleted", "OpenAIResponseObjectStreamResponseMcpListToolsFailed", "OpenAIResponseObjectStreamResponseMcpListToolsInProgress", "OpenAIResponseObjectStreamResponseOutputItemAdded", "OpenAIResponseObjectStreamResponseOutputItemDone", "OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded", "OpenAIResponseObjectStreamResponseOutputTextDelta", "OpenAIResponseObjectStreamResponseOutputTextDone", "OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded", "OpenAIResponseObjectStreamResponseReasoningSummaryPartDone", "OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta", "OpenAIResponseObjectStreamResponseReasoningSummaryTextDone", "OpenAIResponseObjectStreamResponseReasoningTextDelta", "OpenAIResponseObjectStreamResponseReasoningTextDone", "OpenAIResponseObjectStreamResponseRefusalDelta", "OpenAIResponseObjectStreamResponseRefusalDone", "OpenAIResponseObjectStreamResponseWebSearchCallCompleted", "OpenAIResponseObjectStreamResponseWebSearchCallInProgress", "OpenAIResponseObjectStreamResponseWebSearchCallSearching" }
151
+
152
+ model_config = ConfigDict(
153
+ validate_assignment=True,
154
+ protected_namespaces=(),
155
+ )
156
+
157
+
158
+ discriminator_value_class_map: ClassVar[dict[str, str]] = {
159
+ 'error': 'OpenAIResponseObjectStreamError',
160
+ 'response.completed': 'OpenAIResponseObjectStreamResponseCompleted',
161
+ 'response.content_part.added': 'OpenAIResponseObjectStreamResponseContentPartAdded',
162
+ 'response.content_part.done': 'OpenAIResponseObjectStreamResponseContentPartDone',
163
+ 'response.created': 'OpenAIResponseObjectStreamResponseCreated',
164
+ 'response.failed': 'OpenAIResponseObjectStreamResponseFailed',
165
+ 'response.file_search_call.completed': 'OpenAIResponseObjectStreamResponseFileSearchCallCompleted',
166
+ 'response.file_search_call.in_progress': 'OpenAIResponseObjectStreamResponseFileSearchCallInProgress',
167
+ 'response.file_search_call.searching': 'OpenAIResponseObjectStreamResponseFileSearchCallSearching',
168
+ 'response.function_call_arguments.delta': 'OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta',
169
+ 'response.function_call_arguments.done': 'OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone',
170
+ 'response.in_progress': 'OpenAIResponseObjectStreamResponseInProgress',
171
+ 'response.incomplete': 'OpenAIResponseObjectStreamResponseIncomplete',
172
+ 'response.mcp_call.arguments.delta': 'OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta',
173
+ 'response.mcp_call.arguments.done': 'OpenAIResponseObjectStreamResponseMcpCallArgumentsDone',
174
+ 'response.mcp_call.completed': 'OpenAIResponseObjectStreamResponseMcpCallCompleted',
175
+ 'response.mcp_call.failed': 'OpenAIResponseObjectStreamResponseMcpCallFailed',
176
+ 'response.mcp_call.in_progress': 'OpenAIResponseObjectStreamResponseMcpCallInProgress',
177
+ 'response.mcp_list_tools.completed': 'OpenAIResponseObjectStreamResponseMcpListToolsCompleted',
178
+ 'response.mcp_list_tools.failed': 'OpenAIResponseObjectStreamResponseMcpListToolsFailed',
179
+ 'response.mcp_list_tools.in_progress': 'OpenAIResponseObjectStreamResponseMcpListToolsInProgress',
180
+ 'response.output_item.added': 'OpenAIResponseObjectStreamResponseOutputItemAdded',
181
+ 'response.output_item.done': 'OpenAIResponseObjectStreamResponseOutputItemDone',
182
+ 'response.output_text.annotation.added': 'OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded',
183
+ 'response.output_text.delta': 'OpenAIResponseObjectStreamResponseOutputTextDelta',
184
+ 'response.output_text.done': 'OpenAIResponseObjectStreamResponseOutputTextDone',
185
+ 'response.reasoning_summary_part.added': 'OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded',
186
+ 'response.reasoning_summary_part.done': 'OpenAIResponseObjectStreamResponseReasoningSummaryPartDone',
187
+ 'response.reasoning_summary_text.delta': 'OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta',
188
+ 'response.reasoning_summary_text.done': 'OpenAIResponseObjectStreamResponseReasoningSummaryTextDone',
189
+ 'response.reasoning_text.delta': 'OpenAIResponseObjectStreamResponseReasoningTextDelta',
190
+ 'response.reasoning_text.done': 'OpenAIResponseObjectStreamResponseReasoningTextDone',
191
+ 'response.refusal.delta': 'OpenAIResponseObjectStreamResponseRefusalDelta',
192
+ 'response.refusal.done': 'OpenAIResponseObjectStreamResponseRefusalDone',
193
+ 'response.web_search_call.completed': 'OpenAIResponseObjectStreamResponseWebSearchCallCompleted',
194
+ 'response.web_search_call.in_progress': 'OpenAIResponseObjectStreamResponseWebSearchCallInProgress',
195
+ 'response.web_search_call.searching': 'OpenAIResponseObjectStreamResponseWebSearchCallSearching',
196
+ '': 'ERRORUNKNOWN'
197
+ }
198
+ discriminator_property_name: ClassVar[str] = 'type'
199
+
200
+ def __init__(self, *args, **kwargs) -> None:
201
+ if args:
202
+ if len(args) > 1:
203
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
204
+ if kwargs:
205
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
206
+
207
+ # Preprocess the value to handle lists of dicts
208
+ value = args[0]
209
+ if isinstance(value, list):
210
+ # Try to construct model instances from dicts in the list
211
+ # This ensures default values are applied
212
+ from pydantic import ValidationError as PydanticValidationError
213
+ validated = None
214
+ if validated is not None:
215
+ value = validated
216
+
217
+ super().__init__(actual_instance=value)
218
+ else:
219
+ super().__init__(**kwargs)
220
+
221
+ def __getattr__(self, name: str):
222
+ """Proxy attribute access to actual_instance for transparency."""
223
+ # Avoid infinite recursion for private attributes and model fields
224
+ if name.startswith('_') or name in ('actual_instance', 'one_of_schemas', 'model_config', 'model_fields'):
225
+ raise AttributeError(f"'{type(self).__name__}' object has no attribute '{name}'")
226
+
227
+ actual = super().__getattribute__('actual_instance')
228
+ if actual is None:
229
+ raise AttributeError(f"'{type(self).__name__}' object has no attribute '{name}' (actual_instance is None)")
230
+
231
+ return getattr(actual, name)
232
+
233
+ def __iter__(self):
234
+ """Iterate over items if actual_instance is iterable."""
235
+ if hasattr(self.actual_instance, '__iter__'):
236
+ return iter(self.actual_instance)
237
+ raise TypeError(f"'{type(self.actual_instance).__name__}' object is not iterable")
238
+
239
+ def __getitem__(self, index):
240
+ """Get item by index if actual_instance supports indexing."""
241
+ if hasattr(self.actual_instance, '__getitem__'):
242
+ return self.actual_instance[index]
243
+ raise TypeError(f"'{type(self.actual_instance).__name__}' object is not subscriptable")
244
+
245
+ def __len__(self):
246
+ """Get length if actual_instance supports len()."""
247
+ if hasattr(self.actual_instance, '__len__'):
248
+ return len(self.actual_instance)
249
+ raise TypeError(f"object of type '{type(self.actual_instance).__name__}' has no len()")
250
+
251
+ def __bool__(self):
252
+ """Handle truthiness checks - wrapper is truthy if actual_instance is not None."""
253
+ return self.actual_instance is not None
254
+
255
+ def __eq__(self, other):
256
+ """Handle equality comparisons transparently."""
257
+ if hasattr(self, 'actual_instance') and self.actual_instance is not None:
258
+ other_value = other.actual_instance if hasattr(other, 'actual_instance') else other
259
+ return self.actual_instance == other_value
260
+ return super().__eq__(other)
261
+
262
+ def __hash__(self):
263
+ """Handle hashing - use actual_instance's hash if available."""
264
+ if hasattr(self, 'actual_instance') and self.actual_instance is not None:
265
+ try:
266
+ return hash(self.actual_instance)
267
+ except TypeError:
268
+ return id(self)
269
+ return super().__hash__()
270
+
271
+ def __repr__(self):
272
+ """Return repr of actual_instance for debugging."""
273
+ if hasattr(self, 'actual_instance') and self.actual_instance is not None:
274
+ return repr(self.actual_instance)
275
+ return super().__repr__()
276
+
277
+ def to_json(self) -> str:
278
+ """Returns the JSON representation of the actual instance"""
279
+ if self.actual_instance is None:
280
+ return "null"
281
+
282
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
283
+ return self.actual_instance.to_json()
284
+ else:
285
+ return json.dumps(self.actual_instance)
286
+
287
+ def to_str(self) -> str:
288
+ """Returns the string representation of the actual instance"""
289
+ return pprint.pformat(self.model_dump())
290
+
291
+ @model_serializer(mode='wrap')
292
+ def serialize_model(self, serializer):
293
+ """Custom serializer that delegates to actual_instance for proper JSON serialization."""
294
+ # If actual_instance is None, serialize the wrapper normally
295
+ if not hasattr(self, 'actual_instance') or self.actual_instance is None:
296
+ return serializer(self)
297
+
298
+ # If actual_instance is a Pydantic model, serialize it using the default serializer
299
+ # This ensures nested models are also serialized correctly
300
+ if hasattr(self.actual_instance, '__pydantic_serializer__'):
301
+ # Use Pydantic's serializer infrastructure to ensure proper serialization
302
+ from pydantic_core import to_jsonable_python
303
+ return to_jsonable_python(
304
+ self.actual_instance,
305
+ by_alias=True,
306
+ exclude_none=True,
307
+ fallback=lambda x: x if isinstance(x, str | int | float | bool | type(None)) else str(x)
308
+ )
309
+ # If it's a list of Pydantic models, serialize each one
310
+ elif isinstance(self.actual_instance, list):
311
+ from pydantic_core import to_jsonable_python
312
+ return [
313
+ to_jsonable_python(
314
+ item,
315
+ by_alias=True,
316
+ exclude_none=True,
317
+ fallback=lambda x: x if isinstance(x, str | int | float | bool | type(None)) else str(x)
318
+ )
319
+ if hasattr(item, '__pydantic_serializer__')
320
+ else item
321
+ for item in self.actual_instance
322
+ ]
323
+ # Otherwise return as-is (primitives, dicts, etc.)
324
+ else:
325
+ return self.actual_instance
326
+
327
+ @field_validator('actual_instance')
328
+ def actual_instance_must_validate_oneof(cls, v):
329
+ instance = OpenAIResponseObjectStream.model_construct()
330
+ error_messages = []
331
+ match = 0
332
+ # validate data type: OpenAIResponseObjectStreamResponseCreated
333
+ # Check if we should skip this variant based on discriminator
334
+ _should_skip_discriminator = False
335
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
336
+ _disc_value = v.get(cls.discriminator_property_name)
337
+ if _disc_value is None and cls.discriminator_property_name != 'type':
338
+ _disc_value = v.get('type')
339
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
340
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
341
+ if _expected_class != 'OpenAIResponseObjectStreamResponseCreated':
342
+ _should_skip_discriminator = True
343
+
344
+ if _should_skip_discriminator:
345
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseCreated due to discriminator mismatch")
346
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseCreated):
347
+ # Try to construct from dict if it's a dict - this applies default values
348
+ if isinstance(v, dict):
349
+ try:
350
+ constructed = OpenAIResponseObjectStreamResponseCreated.model_validate(v)
351
+ match += 1
352
+ # Return the constructed instance to use it instead of raw dict
353
+ return constructed
354
+ except (ValidationError, ValueError) as e:
355
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseCreated` from dict: {str(e)}")
356
+ else:
357
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseCreated`")
358
+ else:
359
+ match += 1
360
+ # validate data type: OpenAIResponseObjectStreamResponseInProgress
361
+ # Check if we should skip this variant based on discriminator
362
+ _should_skip_discriminator = False
363
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
364
+ _disc_value = v.get(cls.discriminator_property_name)
365
+ if _disc_value is None and cls.discriminator_property_name != 'type':
366
+ _disc_value = v.get('type')
367
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
368
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
369
+ if _expected_class != 'OpenAIResponseObjectStreamResponseInProgress':
370
+ _should_skip_discriminator = True
371
+
372
+ if _should_skip_discriminator:
373
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseInProgress due to discriminator mismatch")
374
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseInProgress):
375
+ # Try to construct from dict if it's a dict - this applies default values
376
+ if isinstance(v, dict):
377
+ try:
378
+ constructed = OpenAIResponseObjectStreamResponseInProgress.model_validate(v)
379
+ match += 1
380
+ # Return the constructed instance to use it instead of raw dict
381
+ return constructed
382
+ except (ValidationError, ValueError) as e:
383
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseInProgress` from dict: {str(e)}")
384
+ else:
385
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseInProgress`")
386
+ else:
387
+ match += 1
388
+ # validate data type: OpenAIResponseObjectStreamResponseOutputItemAdded
389
+ # Check if we should skip this variant based on discriminator
390
+ _should_skip_discriminator = False
391
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
392
+ _disc_value = v.get(cls.discriminator_property_name)
393
+ if _disc_value is None and cls.discriminator_property_name != 'type':
394
+ _disc_value = v.get('type')
395
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
396
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
397
+ if _expected_class != 'OpenAIResponseObjectStreamResponseOutputItemAdded':
398
+ _should_skip_discriminator = True
399
+
400
+ if _should_skip_discriminator:
401
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseOutputItemAdded due to discriminator mismatch")
402
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseOutputItemAdded):
403
+ # Try to construct from dict if it's a dict - this applies default values
404
+ if isinstance(v, dict):
405
+ try:
406
+ constructed = OpenAIResponseObjectStreamResponseOutputItemAdded.model_validate(v)
407
+ match += 1
408
+ # Return the constructed instance to use it instead of raw dict
409
+ return constructed
410
+ except (ValidationError, ValueError) as e:
411
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseOutputItemAdded` from dict: {str(e)}")
412
+ else:
413
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseOutputItemAdded`")
414
+ else:
415
+ match += 1
416
+ # validate data type: OpenAIResponseObjectStreamResponseOutputItemDone
417
+ # Check if we should skip this variant based on discriminator
418
+ _should_skip_discriminator = False
419
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
420
+ _disc_value = v.get(cls.discriminator_property_name)
421
+ if _disc_value is None and cls.discriminator_property_name != 'type':
422
+ _disc_value = v.get('type')
423
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
424
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
425
+ if _expected_class != 'OpenAIResponseObjectStreamResponseOutputItemDone':
426
+ _should_skip_discriminator = True
427
+
428
+ if _should_skip_discriminator:
429
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseOutputItemDone due to discriminator mismatch")
430
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseOutputItemDone):
431
+ # Try to construct from dict if it's a dict - this applies default values
432
+ if isinstance(v, dict):
433
+ try:
434
+ constructed = OpenAIResponseObjectStreamResponseOutputItemDone.model_validate(v)
435
+ match += 1
436
+ # Return the constructed instance to use it instead of raw dict
437
+ return constructed
438
+ except (ValidationError, ValueError) as e:
439
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseOutputItemDone` from dict: {str(e)}")
440
+ else:
441
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseOutputItemDone`")
442
+ else:
443
+ match += 1
444
+ # validate data type: OpenAIResponseObjectStreamResponseOutputTextDelta
445
+ # Check if we should skip this variant based on discriminator
446
+ _should_skip_discriminator = False
447
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
448
+ _disc_value = v.get(cls.discriminator_property_name)
449
+ if _disc_value is None and cls.discriminator_property_name != 'type':
450
+ _disc_value = v.get('type')
451
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
452
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
453
+ if _expected_class != 'OpenAIResponseObjectStreamResponseOutputTextDelta':
454
+ _should_skip_discriminator = True
455
+
456
+ if _should_skip_discriminator:
457
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseOutputTextDelta due to discriminator mismatch")
458
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseOutputTextDelta):
459
+ # Try to construct from dict if it's a dict - this applies default values
460
+ if isinstance(v, dict):
461
+ try:
462
+ constructed = OpenAIResponseObjectStreamResponseOutputTextDelta.model_validate(v)
463
+ match += 1
464
+ # Return the constructed instance to use it instead of raw dict
465
+ return constructed
466
+ except (ValidationError, ValueError) as e:
467
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseOutputTextDelta` from dict: {str(e)}")
468
+ else:
469
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseOutputTextDelta`")
470
+ else:
471
+ match += 1
472
+ # validate data type: OpenAIResponseObjectStreamResponseOutputTextDone
473
+ # Check if we should skip this variant based on discriminator
474
+ _should_skip_discriminator = False
475
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
476
+ _disc_value = v.get(cls.discriminator_property_name)
477
+ if _disc_value is None and cls.discriminator_property_name != 'type':
478
+ _disc_value = v.get('type')
479
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
480
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
481
+ if _expected_class != 'OpenAIResponseObjectStreamResponseOutputTextDone':
482
+ _should_skip_discriminator = True
483
+
484
+ if _should_skip_discriminator:
485
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseOutputTextDone due to discriminator mismatch")
486
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseOutputTextDone):
487
+ # Try to construct from dict if it's a dict - this applies default values
488
+ if isinstance(v, dict):
489
+ try:
490
+ constructed = OpenAIResponseObjectStreamResponseOutputTextDone.model_validate(v)
491
+ match += 1
492
+ # Return the constructed instance to use it instead of raw dict
493
+ return constructed
494
+ except (ValidationError, ValueError) as e:
495
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseOutputTextDone` from dict: {str(e)}")
496
+ else:
497
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseOutputTextDone`")
498
+ else:
499
+ match += 1
500
+ # validate data type: OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta
501
+ # Check if we should skip this variant based on discriminator
502
+ _should_skip_discriminator = False
503
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
504
+ _disc_value = v.get(cls.discriminator_property_name)
505
+ if _disc_value is None and cls.discriminator_property_name != 'type':
506
+ _disc_value = v.get('type')
507
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
508
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
509
+ if _expected_class != 'OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta':
510
+ _should_skip_discriminator = True
511
+
512
+ if _should_skip_discriminator:
513
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta due to discriminator mismatch")
514
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta):
515
+ # Try to construct from dict if it's a dict - this applies default values
516
+ if isinstance(v, dict):
517
+ try:
518
+ constructed = OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta.model_validate(v)
519
+ match += 1
520
+ # Return the constructed instance to use it instead of raw dict
521
+ return constructed
522
+ except (ValidationError, ValueError) as e:
523
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta` from dict: {str(e)}")
524
+ else:
525
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta`")
526
+ else:
527
+ match += 1
528
+ # validate data type: OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone
529
+ # Check if we should skip this variant based on discriminator
530
+ _should_skip_discriminator = False
531
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
532
+ _disc_value = v.get(cls.discriminator_property_name)
533
+ if _disc_value is None and cls.discriminator_property_name != 'type':
534
+ _disc_value = v.get('type')
535
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
536
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
537
+ if _expected_class != 'OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone':
538
+ _should_skip_discriminator = True
539
+
540
+ if _should_skip_discriminator:
541
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone due to discriminator mismatch")
542
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone):
543
+ # Try to construct from dict if it's a dict - this applies default values
544
+ if isinstance(v, dict):
545
+ try:
546
+ constructed = OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone.model_validate(v)
547
+ match += 1
548
+ # Return the constructed instance to use it instead of raw dict
549
+ return constructed
550
+ except (ValidationError, ValueError) as e:
551
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone` from dict: {str(e)}")
552
+ else:
553
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone`")
554
+ else:
555
+ match += 1
556
+ # validate data type: OpenAIResponseObjectStreamResponseWebSearchCallInProgress
557
+ # Check if we should skip this variant based on discriminator
558
+ _should_skip_discriminator = False
559
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
560
+ _disc_value = v.get(cls.discriminator_property_name)
561
+ if _disc_value is None and cls.discriminator_property_name != 'type':
562
+ _disc_value = v.get('type')
563
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
564
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
565
+ if _expected_class != 'OpenAIResponseObjectStreamResponseWebSearchCallInProgress':
566
+ _should_skip_discriminator = True
567
+
568
+ if _should_skip_discriminator:
569
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseWebSearchCallInProgress due to discriminator mismatch")
570
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseWebSearchCallInProgress):
571
+ # Try to construct from dict if it's a dict - this applies default values
572
+ if isinstance(v, dict):
573
+ try:
574
+ constructed = OpenAIResponseObjectStreamResponseWebSearchCallInProgress.model_validate(v)
575
+ match += 1
576
+ # Return the constructed instance to use it instead of raw dict
577
+ return constructed
578
+ except (ValidationError, ValueError) as e:
579
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseWebSearchCallInProgress` from dict: {str(e)}")
580
+ else:
581
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseWebSearchCallInProgress`")
582
+ else:
583
+ match += 1
584
+ # validate data type: OpenAIResponseObjectStreamResponseWebSearchCallSearching
585
+ # Check if we should skip this variant based on discriminator
586
+ _should_skip_discriminator = False
587
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
588
+ _disc_value = v.get(cls.discriminator_property_name)
589
+ if _disc_value is None and cls.discriminator_property_name != 'type':
590
+ _disc_value = v.get('type')
591
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
592
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
593
+ if _expected_class != 'OpenAIResponseObjectStreamResponseWebSearchCallSearching':
594
+ _should_skip_discriminator = True
595
+
596
+ if _should_skip_discriminator:
597
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseWebSearchCallSearching due to discriminator mismatch")
598
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseWebSearchCallSearching):
599
+ # Try to construct from dict if it's a dict - this applies default values
600
+ if isinstance(v, dict):
601
+ try:
602
+ constructed = OpenAIResponseObjectStreamResponseWebSearchCallSearching.model_validate(v)
603
+ match += 1
604
+ # Return the constructed instance to use it instead of raw dict
605
+ return constructed
606
+ except (ValidationError, ValueError) as e:
607
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseWebSearchCallSearching` from dict: {str(e)}")
608
+ else:
609
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseWebSearchCallSearching`")
610
+ else:
611
+ match += 1
612
+ # validate data type: OpenAIResponseObjectStreamResponseWebSearchCallCompleted
613
+ # Check if we should skip this variant based on discriminator
614
+ _should_skip_discriminator = False
615
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
616
+ _disc_value = v.get(cls.discriminator_property_name)
617
+ if _disc_value is None and cls.discriminator_property_name != 'type':
618
+ _disc_value = v.get('type')
619
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
620
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
621
+ if _expected_class != 'OpenAIResponseObjectStreamResponseWebSearchCallCompleted':
622
+ _should_skip_discriminator = True
623
+
624
+ if _should_skip_discriminator:
625
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseWebSearchCallCompleted due to discriminator mismatch")
626
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseWebSearchCallCompleted):
627
+ # Try to construct from dict if it's a dict - this applies default values
628
+ if isinstance(v, dict):
629
+ try:
630
+ constructed = OpenAIResponseObjectStreamResponseWebSearchCallCompleted.model_validate(v)
631
+ match += 1
632
+ # Return the constructed instance to use it instead of raw dict
633
+ return constructed
634
+ except (ValidationError, ValueError) as e:
635
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseWebSearchCallCompleted` from dict: {str(e)}")
636
+ else:
637
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseWebSearchCallCompleted`")
638
+ else:
639
+ match += 1
640
+ # validate data type: OpenAIResponseObjectStreamResponseMcpListToolsInProgress
641
+ # Check if we should skip this variant based on discriminator
642
+ _should_skip_discriminator = False
643
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
644
+ _disc_value = v.get(cls.discriminator_property_name)
645
+ if _disc_value is None and cls.discriminator_property_name != 'type':
646
+ _disc_value = v.get('type')
647
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
648
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
649
+ if _expected_class != 'OpenAIResponseObjectStreamResponseMcpListToolsInProgress':
650
+ _should_skip_discriminator = True
651
+
652
+ if _should_skip_discriminator:
653
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseMcpListToolsInProgress due to discriminator mismatch")
654
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseMcpListToolsInProgress):
655
+ # Try to construct from dict if it's a dict - this applies default values
656
+ if isinstance(v, dict):
657
+ try:
658
+ constructed = OpenAIResponseObjectStreamResponseMcpListToolsInProgress.model_validate(v)
659
+ match += 1
660
+ # Return the constructed instance to use it instead of raw dict
661
+ return constructed
662
+ except (ValidationError, ValueError) as e:
663
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseMcpListToolsInProgress` from dict: {str(e)}")
664
+ else:
665
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseMcpListToolsInProgress`")
666
+ else:
667
+ match += 1
668
+ # validate data type: OpenAIResponseObjectStreamResponseMcpListToolsFailed
669
+ # Check if we should skip this variant based on discriminator
670
+ _should_skip_discriminator = False
671
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
672
+ _disc_value = v.get(cls.discriminator_property_name)
673
+ if _disc_value is None and cls.discriminator_property_name != 'type':
674
+ _disc_value = v.get('type')
675
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
676
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
677
+ if _expected_class != 'OpenAIResponseObjectStreamResponseMcpListToolsFailed':
678
+ _should_skip_discriminator = True
679
+
680
+ if _should_skip_discriminator:
681
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseMcpListToolsFailed due to discriminator mismatch")
682
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseMcpListToolsFailed):
683
+ # Try to construct from dict if it's a dict - this applies default values
684
+ if isinstance(v, dict):
685
+ try:
686
+ constructed = OpenAIResponseObjectStreamResponseMcpListToolsFailed.model_validate(v)
687
+ match += 1
688
+ # Return the constructed instance to use it instead of raw dict
689
+ return constructed
690
+ except (ValidationError, ValueError) as e:
691
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseMcpListToolsFailed` from dict: {str(e)}")
692
+ else:
693
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseMcpListToolsFailed`")
694
+ else:
695
+ match += 1
696
+ # validate data type: OpenAIResponseObjectStreamResponseMcpListToolsCompleted
697
+ # Check if we should skip this variant based on discriminator
698
+ _should_skip_discriminator = False
699
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
700
+ _disc_value = v.get(cls.discriminator_property_name)
701
+ if _disc_value is None and cls.discriminator_property_name != 'type':
702
+ _disc_value = v.get('type')
703
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
704
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
705
+ if _expected_class != 'OpenAIResponseObjectStreamResponseMcpListToolsCompleted':
706
+ _should_skip_discriminator = True
707
+
708
+ if _should_skip_discriminator:
709
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseMcpListToolsCompleted due to discriminator mismatch")
710
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseMcpListToolsCompleted):
711
+ # Try to construct from dict if it's a dict - this applies default values
712
+ if isinstance(v, dict):
713
+ try:
714
+ constructed = OpenAIResponseObjectStreamResponseMcpListToolsCompleted.model_validate(v)
715
+ match += 1
716
+ # Return the constructed instance to use it instead of raw dict
717
+ return constructed
718
+ except (ValidationError, ValueError) as e:
719
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseMcpListToolsCompleted` from dict: {str(e)}")
720
+ else:
721
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseMcpListToolsCompleted`")
722
+ else:
723
+ match += 1
724
+ # validate data type: OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta
725
+ # Check if we should skip this variant based on discriminator
726
+ _should_skip_discriminator = False
727
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
728
+ _disc_value = v.get(cls.discriminator_property_name)
729
+ if _disc_value is None and cls.discriminator_property_name != 'type':
730
+ _disc_value = v.get('type')
731
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
732
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
733
+ if _expected_class != 'OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta':
734
+ _should_skip_discriminator = True
735
+
736
+ if _should_skip_discriminator:
737
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta due to discriminator mismatch")
738
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta):
739
+ # Try to construct from dict if it's a dict - this applies default values
740
+ if isinstance(v, dict):
741
+ try:
742
+ constructed = OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta.model_validate(v)
743
+ match += 1
744
+ # Return the constructed instance to use it instead of raw dict
745
+ return constructed
746
+ except (ValidationError, ValueError) as e:
747
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta` from dict: {str(e)}")
748
+ else:
749
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta`")
750
+ else:
751
+ match += 1
752
+ # validate data type: OpenAIResponseObjectStreamResponseMcpCallArgumentsDone
753
+ # Check if we should skip this variant based on discriminator
754
+ _should_skip_discriminator = False
755
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
756
+ _disc_value = v.get(cls.discriminator_property_name)
757
+ if _disc_value is None and cls.discriminator_property_name != 'type':
758
+ _disc_value = v.get('type')
759
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
760
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
761
+ if _expected_class != 'OpenAIResponseObjectStreamResponseMcpCallArgumentsDone':
762
+ _should_skip_discriminator = True
763
+
764
+ if _should_skip_discriminator:
765
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseMcpCallArgumentsDone due to discriminator mismatch")
766
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseMcpCallArgumentsDone):
767
+ # Try to construct from dict if it's a dict - this applies default values
768
+ if isinstance(v, dict):
769
+ try:
770
+ constructed = OpenAIResponseObjectStreamResponseMcpCallArgumentsDone.model_validate(v)
771
+ match += 1
772
+ # Return the constructed instance to use it instead of raw dict
773
+ return constructed
774
+ except (ValidationError, ValueError) as e:
775
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseMcpCallArgumentsDone` from dict: {str(e)}")
776
+ else:
777
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseMcpCallArgumentsDone`")
778
+ else:
779
+ match += 1
780
+ # validate data type: OpenAIResponseObjectStreamResponseMcpCallInProgress
781
+ # Check if we should skip this variant based on discriminator
782
+ _should_skip_discriminator = False
783
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
784
+ _disc_value = v.get(cls.discriminator_property_name)
785
+ if _disc_value is None and cls.discriminator_property_name != 'type':
786
+ _disc_value = v.get('type')
787
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
788
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
789
+ if _expected_class != 'OpenAIResponseObjectStreamResponseMcpCallInProgress':
790
+ _should_skip_discriminator = True
791
+
792
+ if _should_skip_discriminator:
793
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseMcpCallInProgress due to discriminator mismatch")
794
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseMcpCallInProgress):
795
+ # Try to construct from dict if it's a dict - this applies default values
796
+ if isinstance(v, dict):
797
+ try:
798
+ constructed = OpenAIResponseObjectStreamResponseMcpCallInProgress.model_validate(v)
799
+ match += 1
800
+ # Return the constructed instance to use it instead of raw dict
801
+ return constructed
802
+ except (ValidationError, ValueError) as e:
803
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseMcpCallInProgress` from dict: {str(e)}")
804
+ else:
805
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseMcpCallInProgress`")
806
+ else:
807
+ match += 1
808
+ # validate data type: OpenAIResponseObjectStreamResponseMcpCallFailed
809
+ # Check if we should skip this variant based on discriminator
810
+ _should_skip_discriminator = False
811
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
812
+ _disc_value = v.get(cls.discriminator_property_name)
813
+ if _disc_value is None and cls.discriminator_property_name != 'type':
814
+ _disc_value = v.get('type')
815
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
816
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
817
+ if _expected_class != 'OpenAIResponseObjectStreamResponseMcpCallFailed':
818
+ _should_skip_discriminator = True
819
+
820
+ if _should_skip_discriminator:
821
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseMcpCallFailed due to discriminator mismatch")
822
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseMcpCallFailed):
823
+ # Try to construct from dict if it's a dict - this applies default values
824
+ if isinstance(v, dict):
825
+ try:
826
+ constructed = OpenAIResponseObjectStreamResponseMcpCallFailed.model_validate(v)
827
+ match += 1
828
+ # Return the constructed instance to use it instead of raw dict
829
+ return constructed
830
+ except (ValidationError, ValueError) as e:
831
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseMcpCallFailed` from dict: {str(e)}")
832
+ else:
833
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseMcpCallFailed`")
834
+ else:
835
+ match += 1
836
+ # validate data type: OpenAIResponseObjectStreamResponseMcpCallCompleted
837
+ # Check if we should skip this variant based on discriminator
838
+ _should_skip_discriminator = False
839
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
840
+ _disc_value = v.get(cls.discriminator_property_name)
841
+ if _disc_value is None and cls.discriminator_property_name != 'type':
842
+ _disc_value = v.get('type')
843
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
844
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
845
+ if _expected_class != 'OpenAIResponseObjectStreamResponseMcpCallCompleted':
846
+ _should_skip_discriminator = True
847
+
848
+ if _should_skip_discriminator:
849
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseMcpCallCompleted due to discriminator mismatch")
850
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseMcpCallCompleted):
851
+ # Try to construct from dict if it's a dict - this applies default values
852
+ if isinstance(v, dict):
853
+ try:
854
+ constructed = OpenAIResponseObjectStreamResponseMcpCallCompleted.model_validate(v)
855
+ match += 1
856
+ # Return the constructed instance to use it instead of raw dict
857
+ return constructed
858
+ except (ValidationError, ValueError) as e:
859
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseMcpCallCompleted` from dict: {str(e)}")
860
+ else:
861
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseMcpCallCompleted`")
862
+ else:
863
+ match += 1
864
+ # validate data type: OpenAIResponseObjectStreamResponseContentPartAdded
865
+ # Check if we should skip this variant based on discriminator
866
+ _should_skip_discriminator = False
867
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
868
+ _disc_value = v.get(cls.discriminator_property_name)
869
+ if _disc_value is None and cls.discriminator_property_name != 'type':
870
+ _disc_value = v.get('type')
871
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
872
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
873
+ if _expected_class != 'OpenAIResponseObjectStreamResponseContentPartAdded':
874
+ _should_skip_discriminator = True
875
+
876
+ if _should_skip_discriminator:
877
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseContentPartAdded due to discriminator mismatch")
878
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseContentPartAdded):
879
+ # Try to construct from dict if it's a dict - this applies default values
880
+ if isinstance(v, dict):
881
+ try:
882
+ constructed = OpenAIResponseObjectStreamResponseContentPartAdded.model_validate(v)
883
+ match += 1
884
+ # Return the constructed instance to use it instead of raw dict
885
+ return constructed
886
+ except (ValidationError, ValueError) as e:
887
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseContentPartAdded` from dict: {str(e)}")
888
+ else:
889
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseContentPartAdded`")
890
+ else:
891
+ match += 1
892
+ # validate data type: OpenAIResponseObjectStreamResponseContentPartDone
893
+ # Check if we should skip this variant based on discriminator
894
+ _should_skip_discriminator = False
895
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
896
+ _disc_value = v.get(cls.discriminator_property_name)
897
+ if _disc_value is None and cls.discriminator_property_name != 'type':
898
+ _disc_value = v.get('type')
899
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
900
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
901
+ if _expected_class != 'OpenAIResponseObjectStreamResponseContentPartDone':
902
+ _should_skip_discriminator = True
903
+
904
+ if _should_skip_discriminator:
905
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseContentPartDone due to discriminator mismatch")
906
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseContentPartDone):
907
+ # Try to construct from dict if it's a dict - this applies default values
908
+ if isinstance(v, dict):
909
+ try:
910
+ constructed = OpenAIResponseObjectStreamResponseContentPartDone.model_validate(v)
911
+ match += 1
912
+ # Return the constructed instance to use it instead of raw dict
913
+ return constructed
914
+ except (ValidationError, ValueError) as e:
915
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseContentPartDone` from dict: {str(e)}")
916
+ else:
917
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseContentPartDone`")
918
+ else:
919
+ match += 1
920
+ # validate data type: OpenAIResponseObjectStreamResponseReasoningTextDelta
921
+ # Check if we should skip this variant based on discriminator
922
+ _should_skip_discriminator = False
923
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
924
+ _disc_value = v.get(cls.discriminator_property_name)
925
+ if _disc_value is None and cls.discriminator_property_name != 'type':
926
+ _disc_value = v.get('type')
927
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
928
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
929
+ if _expected_class != 'OpenAIResponseObjectStreamResponseReasoningTextDelta':
930
+ _should_skip_discriminator = True
931
+
932
+ if _should_skip_discriminator:
933
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseReasoningTextDelta due to discriminator mismatch")
934
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseReasoningTextDelta):
935
+ # Try to construct from dict if it's a dict - this applies default values
936
+ if isinstance(v, dict):
937
+ try:
938
+ constructed = OpenAIResponseObjectStreamResponseReasoningTextDelta.model_validate(v)
939
+ match += 1
940
+ # Return the constructed instance to use it instead of raw dict
941
+ return constructed
942
+ except (ValidationError, ValueError) as e:
943
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseReasoningTextDelta` from dict: {str(e)}")
944
+ else:
945
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseReasoningTextDelta`")
946
+ else:
947
+ match += 1
948
+ # validate data type: OpenAIResponseObjectStreamResponseReasoningTextDone
949
+ # Check if we should skip this variant based on discriminator
950
+ _should_skip_discriminator = False
951
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
952
+ _disc_value = v.get(cls.discriminator_property_name)
953
+ if _disc_value is None and cls.discriminator_property_name != 'type':
954
+ _disc_value = v.get('type')
955
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
956
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
957
+ if _expected_class != 'OpenAIResponseObjectStreamResponseReasoningTextDone':
958
+ _should_skip_discriminator = True
959
+
960
+ if _should_skip_discriminator:
961
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseReasoningTextDone due to discriminator mismatch")
962
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseReasoningTextDone):
963
+ # Try to construct from dict if it's a dict - this applies default values
964
+ if isinstance(v, dict):
965
+ try:
966
+ constructed = OpenAIResponseObjectStreamResponseReasoningTextDone.model_validate(v)
967
+ match += 1
968
+ # Return the constructed instance to use it instead of raw dict
969
+ return constructed
970
+ except (ValidationError, ValueError) as e:
971
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseReasoningTextDone` from dict: {str(e)}")
972
+ else:
973
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseReasoningTextDone`")
974
+ else:
975
+ match += 1
976
+ # validate data type: OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded
977
+ # Check if we should skip this variant based on discriminator
978
+ _should_skip_discriminator = False
979
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
980
+ _disc_value = v.get(cls.discriminator_property_name)
981
+ if _disc_value is None and cls.discriminator_property_name != 'type':
982
+ _disc_value = v.get('type')
983
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
984
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
985
+ if _expected_class != 'OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded':
986
+ _should_skip_discriminator = True
987
+
988
+ if _should_skip_discriminator:
989
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded due to discriminator mismatch")
990
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded):
991
+ # Try to construct from dict if it's a dict - this applies default values
992
+ if isinstance(v, dict):
993
+ try:
994
+ constructed = OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded.model_validate(v)
995
+ match += 1
996
+ # Return the constructed instance to use it instead of raw dict
997
+ return constructed
998
+ except (ValidationError, ValueError) as e:
999
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded` from dict: {str(e)}")
1000
+ else:
1001
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded`")
1002
+ else:
1003
+ match += 1
1004
+ # validate data type: OpenAIResponseObjectStreamResponseReasoningSummaryPartDone
1005
+ # Check if we should skip this variant based on discriminator
1006
+ _should_skip_discriminator = False
1007
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1008
+ _disc_value = v.get(cls.discriminator_property_name)
1009
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1010
+ _disc_value = v.get('type')
1011
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1012
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1013
+ if _expected_class != 'OpenAIResponseObjectStreamResponseReasoningSummaryPartDone':
1014
+ _should_skip_discriminator = True
1015
+
1016
+ if _should_skip_discriminator:
1017
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseReasoningSummaryPartDone due to discriminator mismatch")
1018
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseReasoningSummaryPartDone):
1019
+ # Try to construct from dict if it's a dict - this applies default values
1020
+ if isinstance(v, dict):
1021
+ try:
1022
+ constructed = OpenAIResponseObjectStreamResponseReasoningSummaryPartDone.model_validate(v)
1023
+ match += 1
1024
+ # Return the constructed instance to use it instead of raw dict
1025
+ return constructed
1026
+ except (ValidationError, ValueError) as e:
1027
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseReasoningSummaryPartDone` from dict: {str(e)}")
1028
+ else:
1029
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseReasoningSummaryPartDone`")
1030
+ else:
1031
+ match += 1
1032
+ # validate data type: OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta
1033
+ # Check if we should skip this variant based on discriminator
1034
+ _should_skip_discriminator = False
1035
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1036
+ _disc_value = v.get(cls.discriminator_property_name)
1037
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1038
+ _disc_value = v.get('type')
1039
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1040
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1041
+ if _expected_class != 'OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta':
1042
+ _should_skip_discriminator = True
1043
+
1044
+ if _should_skip_discriminator:
1045
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta due to discriminator mismatch")
1046
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta):
1047
+ # Try to construct from dict if it's a dict - this applies default values
1048
+ if isinstance(v, dict):
1049
+ try:
1050
+ constructed = OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta.model_validate(v)
1051
+ match += 1
1052
+ # Return the constructed instance to use it instead of raw dict
1053
+ return constructed
1054
+ except (ValidationError, ValueError) as e:
1055
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta` from dict: {str(e)}")
1056
+ else:
1057
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta`")
1058
+ else:
1059
+ match += 1
1060
+ # validate data type: OpenAIResponseObjectStreamResponseReasoningSummaryTextDone
1061
+ # Check if we should skip this variant based on discriminator
1062
+ _should_skip_discriminator = False
1063
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1064
+ _disc_value = v.get(cls.discriminator_property_name)
1065
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1066
+ _disc_value = v.get('type')
1067
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1068
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1069
+ if _expected_class != 'OpenAIResponseObjectStreamResponseReasoningSummaryTextDone':
1070
+ _should_skip_discriminator = True
1071
+
1072
+ if _should_skip_discriminator:
1073
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseReasoningSummaryTextDone due to discriminator mismatch")
1074
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseReasoningSummaryTextDone):
1075
+ # Try to construct from dict if it's a dict - this applies default values
1076
+ if isinstance(v, dict):
1077
+ try:
1078
+ constructed = OpenAIResponseObjectStreamResponseReasoningSummaryTextDone.model_validate(v)
1079
+ match += 1
1080
+ # Return the constructed instance to use it instead of raw dict
1081
+ return constructed
1082
+ except (ValidationError, ValueError) as e:
1083
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseReasoningSummaryTextDone` from dict: {str(e)}")
1084
+ else:
1085
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseReasoningSummaryTextDone`")
1086
+ else:
1087
+ match += 1
1088
+ # validate data type: OpenAIResponseObjectStreamResponseRefusalDelta
1089
+ # Check if we should skip this variant based on discriminator
1090
+ _should_skip_discriminator = False
1091
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1092
+ _disc_value = v.get(cls.discriminator_property_name)
1093
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1094
+ _disc_value = v.get('type')
1095
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1096
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1097
+ if _expected_class != 'OpenAIResponseObjectStreamResponseRefusalDelta':
1098
+ _should_skip_discriminator = True
1099
+
1100
+ if _should_skip_discriminator:
1101
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseRefusalDelta due to discriminator mismatch")
1102
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseRefusalDelta):
1103
+ # Try to construct from dict if it's a dict - this applies default values
1104
+ if isinstance(v, dict):
1105
+ try:
1106
+ constructed = OpenAIResponseObjectStreamResponseRefusalDelta.model_validate(v)
1107
+ match += 1
1108
+ # Return the constructed instance to use it instead of raw dict
1109
+ return constructed
1110
+ except (ValidationError, ValueError) as e:
1111
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseRefusalDelta` from dict: {str(e)}")
1112
+ else:
1113
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseRefusalDelta`")
1114
+ else:
1115
+ match += 1
1116
+ # validate data type: OpenAIResponseObjectStreamResponseRefusalDone
1117
+ # Check if we should skip this variant based on discriminator
1118
+ _should_skip_discriminator = False
1119
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1120
+ _disc_value = v.get(cls.discriminator_property_name)
1121
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1122
+ _disc_value = v.get('type')
1123
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1124
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1125
+ if _expected_class != 'OpenAIResponseObjectStreamResponseRefusalDone':
1126
+ _should_skip_discriminator = True
1127
+
1128
+ if _should_skip_discriminator:
1129
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseRefusalDone due to discriminator mismatch")
1130
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseRefusalDone):
1131
+ # Try to construct from dict if it's a dict - this applies default values
1132
+ if isinstance(v, dict):
1133
+ try:
1134
+ constructed = OpenAIResponseObjectStreamResponseRefusalDone.model_validate(v)
1135
+ match += 1
1136
+ # Return the constructed instance to use it instead of raw dict
1137
+ return constructed
1138
+ except (ValidationError, ValueError) as e:
1139
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseRefusalDone` from dict: {str(e)}")
1140
+ else:
1141
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseRefusalDone`")
1142
+ else:
1143
+ match += 1
1144
+ # validate data type: OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded
1145
+ # Check if we should skip this variant based on discriminator
1146
+ _should_skip_discriminator = False
1147
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1148
+ _disc_value = v.get(cls.discriminator_property_name)
1149
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1150
+ _disc_value = v.get('type')
1151
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1152
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1153
+ if _expected_class != 'OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded':
1154
+ _should_skip_discriminator = True
1155
+
1156
+ if _should_skip_discriminator:
1157
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded due to discriminator mismatch")
1158
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded):
1159
+ # Try to construct from dict if it's a dict - this applies default values
1160
+ if isinstance(v, dict):
1161
+ try:
1162
+ constructed = OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded.model_validate(v)
1163
+ match += 1
1164
+ # Return the constructed instance to use it instead of raw dict
1165
+ return constructed
1166
+ except (ValidationError, ValueError) as e:
1167
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded` from dict: {str(e)}")
1168
+ else:
1169
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded`")
1170
+ else:
1171
+ match += 1
1172
+ # validate data type: OpenAIResponseObjectStreamResponseFileSearchCallInProgress
1173
+ # Check if we should skip this variant based on discriminator
1174
+ _should_skip_discriminator = False
1175
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1176
+ _disc_value = v.get(cls.discriminator_property_name)
1177
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1178
+ _disc_value = v.get('type')
1179
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1180
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1181
+ if _expected_class != 'OpenAIResponseObjectStreamResponseFileSearchCallInProgress':
1182
+ _should_skip_discriminator = True
1183
+
1184
+ if _should_skip_discriminator:
1185
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseFileSearchCallInProgress due to discriminator mismatch")
1186
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseFileSearchCallInProgress):
1187
+ # Try to construct from dict if it's a dict - this applies default values
1188
+ if isinstance(v, dict):
1189
+ try:
1190
+ constructed = OpenAIResponseObjectStreamResponseFileSearchCallInProgress.model_validate(v)
1191
+ match += 1
1192
+ # Return the constructed instance to use it instead of raw dict
1193
+ return constructed
1194
+ except (ValidationError, ValueError) as e:
1195
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseFileSearchCallInProgress` from dict: {str(e)}")
1196
+ else:
1197
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseFileSearchCallInProgress`")
1198
+ else:
1199
+ match += 1
1200
+ # validate data type: OpenAIResponseObjectStreamResponseFileSearchCallSearching
1201
+ # Check if we should skip this variant based on discriminator
1202
+ _should_skip_discriminator = False
1203
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1204
+ _disc_value = v.get(cls.discriminator_property_name)
1205
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1206
+ _disc_value = v.get('type')
1207
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1208
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1209
+ if _expected_class != 'OpenAIResponseObjectStreamResponseFileSearchCallSearching':
1210
+ _should_skip_discriminator = True
1211
+
1212
+ if _should_skip_discriminator:
1213
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseFileSearchCallSearching due to discriminator mismatch")
1214
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseFileSearchCallSearching):
1215
+ # Try to construct from dict if it's a dict - this applies default values
1216
+ if isinstance(v, dict):
1217
+ try:
1218
+ constructed = OpenAIResponseObjectStreamResponseFileSearchCallSearching.model_validate(v)
1219
+ match += 1
1220
+ # Return the constructed instance to use it instead of raw dict
1221
+ return constructed
1222
+ except (ValidationError, ValueError) as e:
1223
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseFileSearchCallSearching` from dict: {str(e)}")
1224
+ else:
1225
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseFileSearchCallSearching`")
1226
+ else:
1227
+ match += 1
1228
+ # validate data type: OpenAIResponseObjectStreamResponseFileSearchCallCompleted
1229
+ # Check if we should skip this variant based on discriminator
1230
+ _should_skip_discriminator = False
1231
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1232
+ _disc_value = v.get(cls.discriminator_property_name)
1233
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1234
+ _disc_value = v.get('type')
1235
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1236
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1237
+ if _expected_class != 'OpenAIResponseObjectStreamResponseFileSearchCallCompleted':
1238
+ _should_skip_discriminator = True
1239
+
1240
+ if _should_skip_discriminator:
1241
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseFileSearchCallCompleted due to discriminator mismatch")
1242
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseFileSearchCallCompleted):
1243
+ # Try to construct from dict if it's a dict - this applies default values
1244
+ if isinstance(v, dict):
1245
+ try:
1246
+ constructed = OpenAIResponseObjectStreamResponseFileSearchCallCompleted.model_validate(v)
1247
+ match += 1
1248
+ # Return the constructed instance to use it instead of raw dict
1249
+ return constructed
1250
+ except (ValidationError, ValueError) as e:
1251
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseFileSearchCallCompleted` from dict: {str(e)}")
1252
+ else:
1253
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseFileSearchCallCompleted`")
1254
+ else:
1255
+ match += 1
1256
+ # validate data type: OpenAIResponseObjectStreamResponseIncomplete
1257
+ # Check if we should skip this variant based on discriminator
1258
+ _should_skip_discriminator = False
1259
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1260
+ _disc_value = v.get(cls.discriminator_property_name)
1261
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1262
+ _disc_value = v.get('type')
1263
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1264
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1265
+ if _expected_class != 'OpenAIResponseObjectStreamResponseIncomplete':
1266
+ _should_skip_discriminator = True
1267
+
1268
+ if _should_skip_discriminator:
1269
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseIncomplete due to discriminator mismatch")
1270
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseIncomplete):
1271
+ # Try to construct from dict if it's a dict - this applies default values
1272
+ if isinstance(v, dict):
1273
+ try:
1274
+ constructed = OpenAIResponseObjectStreamResponseIncomplete.model_validate(v)
1275
+ match += 1
1276
+ # Return the constructed instance to use it instead of raw dict
1277
+ return constructed
1278
+ except (ValidationError, ValueError) as e:
1279
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseIncomplete` from dict: {str(e)}")
1280
+ else:
1281
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseIncomplete`")
1282
+ else:
1283
+ match += 1
1284
+ # validate data type: OpenAIResponseObjectStreamResponseFailed
1285
+ # Check if we should skip this variant based on discriminator
1286
+ _should_skip_discriminator = False
1287
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1288
+ _disc_value = v.get(cls.discriminator_property_name)
1289
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1290
+ _disc_value = v.get('type')
1291
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1292
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1293
+ if _expected_class != 'OpenAIResponseObjectStreamResponseFailed':
1294
+ _should_skip_discriminator = True
1295
+
1296
+ if _should_skip_discriminator:
1297
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseFailed due to discriminator mismatch")
1298
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseFailed):
1299
+ # Try to construct from dict if it's a dict - this applies default values
1300
+ if isinstance(v, dict):
1301
+ try:
1302
+ constructed = OpenAIResponseObjectStreamResponseFailed.model_validate(v)
1303
+ match += 1
1304
+ # Return the constructed instance to use it instead of raw dict
1305
+ return constructed
1306
+ except (ValidationError, ValueError) as e:
1307
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseFailed` from dict: {str(e)}")
1308
+ else:
1309
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseFailed`")
1310
+ else:
1311
+ match += 1
1312
+ # validate data type: OpenAIResponseObjectStreamResponseCompleted
1313
+ # Check if we should skip this variant based on discriminator
1314
+ _should_skip_discriminator = False
1315
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1316
+ _disc_value = v.get(cls.discriminator_property_name)
1317
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1318
+ _disc_value = v.get('type')
1319
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1320
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1321
+ if _expected_class != 'OpenAIResponseObjectStreamResponseCompleted':
1322
+ _should_skip_discriminator = True
1323
+
1324
+ if _should_skip_discriminator:
1325
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamResponseCompleted due to discriminator mismatch")
1326
+ elif not isinstance(v, OpenAIResponseObjectStreamResponseCompleted):
1327
+ # Try to construct from dict if it's a dict - this applies default values
1328
+ if isinstance(v, dict):
1329
+ try:
1330
+ constructed = OpenAIResponseObjectStreamResponseCompleted.model_validate(v)
1331
+ match += 1
1332
+ # Return the constructed instance to use it instead of raw dict
1333
+ return constructed
1334
+ except (ValidationError, ValueError) as e:
1335
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamResponseCompleted` from dict: {str(e)}")
1336
+ else:
1337
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamResponseCompleted`")
1338
+ else:
1339
+ match += 1
1340
+ # validate data type: OpenAIResponseObjectStreamError
1341
+ # Check if we should skip this variant based on discriminator
1342
+ _should_skip_discriminator = False
1343
+ if isinstance(v, dict) and hasattr(cls, 'discriminator_value_class_map'):
1344
+ _disc_value = v.get(cls.discriminator_property_name)
1345
+ if _disc_value is None and cls.discriminator_property_name != 'type':
1346
+ _disc_value = v.get('type')
1347
+ if _disc_value and _disc_value in cls.discriminator_value_class_map:
1348
+ _expected_class = cls.discriminator_value_class_map[_disc_value]
1349
+ if _expected_class != 'OpenAIResponseObjectStreamError':
1350
+ _should_skip_discriminator = True
1351
+
1352
+ if _should_skip_discriminator:
1353
+ error_messages.append(f"Skipping OpenAIResponseObjectStreamError due to discriminator mismatch")
1354
+ elif not isinstance(v, OpenAIResponseObjectStreamError):
1355
+ # Try to construct from dict if it's a dict - this applies default values
1356
+ if isinstance(v, dict):
1357
+ try:
1358
+ constructed = OpenAIResponseObjectStreamError.model_validate(v)
1359
+ match += 1
1360
+ # Return the constructed instance to use it instead of raw dict
1361
+ return constructed
1362
+ except (ValidationError, ValueError) as e:
1363
+ error_messages.append(f"Error! Cannot construct `OpenAIResponseObjectStreamError` from dict: {str(e)}")
1364
+ else:
1365
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OpenAIResponseObjectStreamError`")
1366
+ else:
1367
+ match += 1
1368
+ if match > 1:
1369
+ # Special case: empty lists can match multiple List[...] schemas in oneOf
1370
+ # This is common in streaming where content starts empty
1371
+ # In this case, just accept the first match (they're functionally equivalent for empty lists)
1372
+ if isinstance(v, list) and len(v) == 0:
1373
+ return v
1374
+ # more than 1 match
1375
+ raise ValueError("Multiple matches found when setting `actual_instance` in OpenAIResponseObjectStream with oneOf schemas: OpenAIResponseObjectStreamError, OpenAIResponseObjectStreamResponseCompleted, OpenAIResponseObjectStreamResponseContentPartAdded, OpenAIResponseObjectStreamResponseContentPartDone, OpenAIResponseObjectStreamResponseCreated, OpenAIResponseObjectStreamResponseFailed, OpenAIResponseObjectStreamResponseFileSearchCallCompleted, OpenAIResponseObjectStreamResponseFileSearchCallInProgress, OpenAIResponseObjectStreamResponseFileSearchCallSearching, OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta, OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone, OpenAIResponseObjectStreamResponseInProgress, OpenAIResponseObjectStreamResponseIncomplete, OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta, OpenAIResponseObjectStreamResponseMcpCallArgumentsDone, OpenAIResponseObjectStreamResponseMcpCallCompleted, OpenAIResponseObjectStreamResponseMcpCallFailed, OpenAIResponseObjectStreamResponseMcpCallInProgress, OpenAIResponseObjectStreamResponseMcpListToolsCompleted, OpenAIResponseObjectStreamResponseMcpListToolsFailed, OpenAIResponseObjectStreamResponseMcpListToolsInProgress, OpenAIResponseObjectStreamResponseOutputItemAdded, OpenAIResponseObjectStreamResponseOutputItemDone, OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded, OpenAIResponseObjectStreamResponseOutputTextDelta, OpenAIResponseObjectStreamResponseOutputTextDone, OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded, OpenAIResponseObjectStreamResponseReasoningSummaryPartDone, OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta, OpenAIResponseObjectStreamResponseReasoningSummaryTextDone, OpenAIResponseObjectStreamResponseReasoningTextDelta, OpenAIResponseObjectStreamResponseReasoningTextDone, OpenAIResponseObjectStreamResponseRefusalDelta, OpenAIResponseObjectStreamResponseRefusalDone, OpenAIResponseObjectStreamResponseWebSearchCallCompleted, OpenAIResponseObjectStreamResponseWebSearchCallInProgress, OpenAIResponseObjectStreamResponseWebSearchCallSearching. Details: " + ", ".join(error_messages))
1376
+ elif match == 0:
1377
+ # no match
1378
+ raise ValueError("No match found when setting `actual_instance` in OpenAIResponseObjectStream with oneOf schemas: OpenAIResponseObjectStreamError, OpenAIResponseObjectStreamResponseCompleted, OpenAIResponseObjectStreamResponseContentPartAdded, OpenAIResponseObjectStreamResponseContentPartDone, OpenAIResponseObjectStreamResponseCreated, OpenAIResponseObjectStreamResponseFailed, OpenAIResponseObjectStreamResponseFileSearchCallCompleted, OpenAIResponseObjectStreamResponseFileSearchCallInProgress, OpenAIResponseObjectStreamResponseFileSearchCallSearching, OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta, OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone, OpenAIResponseObjectStreamResponseInProgress, OpenAIResponseObjectStreamResponseIncomplete, OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta, OpenAIResponseObjectStreamResponseMcpCallArgumentsDone, OpenAIResponseObjectStreamResponseMcpCallCompleted, OpenAIResponseObjectStreamResponseMcpCallFailed, OpenAIResponseObjectStreamResponseMcpCallInProgress, OpenAIResponseObjectStreamResponseMcpListToolsCompleted, OpenAIResponseObjectStreamResponseMcpListToolsFailed, OpenAIResponseObjectStreamResponseMcpListToolsInProgress, OpenAIResponseObjectStreamResponseOutputItemAdded, OpenAIResponseObjectStreamResponseOutputItemDone, OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded, OpenAIResponseObjectStreamResponseOutputTextDelta, OpenAIResponseObjectStreamResponseOutputTextDone, OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded, OpenAIResponseObjectStreamResponseReasoningSummaryPartDone, OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta, OpenAIResponseObjectStreamResponseReasoningSummaryTextDone, OpenAIResponseObjectStreamResponseReasoningTextDelta, OpenAIResponseObjectStreamResponseReasoningTextDone, OpenAIResponseObjectStreamResponseRefusalDelta, OpenAIResponseObjectStreamResponseRefusalDone, OpenAIResponseObjectStreamResponseWebSearchCallCompleted, OpenAIResponseObjectStreamResponseWebSearchCallInProgress, OpenAIResponseObjectStreamResponseWebSearchCallSearching. Details: " + ", ".join(error_messages))
1379
+ else:
1380
+ return v
1381
+
1382
+ @classmethod
1383
+ def from_dict(cls, obj: str | dict[str, Any]) -> Self:
1384
+ # Handle primitives and lists directly - don't double-serialize them
1385
+ if isinstance(obj, (str, int, float, bool, type(None), list)):
1386
+ # For non-dict content, bypass from_json and use actual_instance_must_validate_oneof
1387
+ instance = cls.model_construct()
1388
+ instance.actual_instance = cls.actual_instance_must_validate_oneof(obj)
1389
+ return instance
1390
+ return cls.from_json(json.dumps(obj))
1391
+
1392
+ @classmethod
1393
+ def from_json(cls, json_str: str) -> Self:
1394
+ """Returns the object represented by the json string"""
1395
+ instance = cls.model_construct()
1396
+ error_messages = []
1397
+ match = 0
1398
+
1399
+ # use oneOf discriminator to lookup the data type
1400
+ _data_type = json.loads(json_str).get("type")
1401
+ if not _data_type:
1402
+ raise ValueError("Failed to lookup data type from the field `type` in the input.")
1403
+
1404
+ # check if data type is `OpenAIResponseObjectStreamError`
1405
+ if _data_type == "error":
1406
+ instance.actual_instance = OpenAIResponseObjectStreamError.from_json(json_str)
1407
+ return instance
1408
+
1409
+ # check if data type is `OpenAIResponseObjectStreamResponseCompleted`
1410
+ if _data_type == "response.completed":
1411
+ instance.actual_instance = OpenAIResponseObjectStreamResponseCompleted.from_json(json_str)
1412
+ return instance
1413
+
1414
+ # check if data type is `OpenAIResponseObjectStreamResponseContentPartAdded`
1415
+ if _data_type == "response.content_part.added":
1416
+ instance.actual_instance = OpenAIResponseObjectStreamResponseContentPartAdded.from_json(json_str)
1417
+ return instance
1418
+
1419
+ # check if data type is `OpenAIResponseObjectStreamResponseContentPartDone`
1420
+ if _data_type == "response.content_part.done":
1421
+ instance.actual_instance = OpenAIResponseObjectStreamResponseContentPartDone.from_json(json_str)
1422
+ return instance
1423
+
1424
+ # check if data type is `OpenAIResponseObjectStreamResponseCreated`
1425
+ if _data_type == "response.created":
1426
+ instance.actual_instance = OpenAIResponseObjectStreamResponseCreated.from_json(json_str)
1427
+ return instance
1428
+
1429
+ # check if data type is `OpenAIResponseObjectStreamResponseFailed`
1430
+ if _data_type == "response.failed":
1431
+ instance.actual_instance = OpenAIResponseObjectStreamResponseFailed.from_json(json_str)
1432
+ return instance
1433
+
1434
+ # check if data type is `OpenAIResponseObjectStreamResponseFileSearchCallCompleted`
1435
+ if _data_type == "response.file_search_call.completed":
1436
+ instance.actual_instance = OpenAIResponseObjectStreamResponseFileSearchCallCompleted.from_json(json_str)
1437
+ return instance
1438
+
1439
+ # check if data type is `OpenAIResponseObjectStreamResponseFileSearchCallInProgress`
1440
+ if _data_type == "response.file_search_call.in_progress":
1441
+ instance.actual_instance = OpenAIResponseObjectStreamResponseFileSearchCallInProgress.from_json(json_str)
1442
+ return instance
1443
+
1444
+ # check if data type is `OpenAIResponseObjectStreamResponseFileSearchCallSearching`
1445
+ if _data_type == "response.file_search_call.searching":
1446
+ instance.actual_instance = OpenAIResponseObjectStreamResponseFileSearchCallSearching.from_json(json_str)
1447
+ return instance
1448
+
1449
+ # check if data type is `OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta`
1450
+ if _data_type == "response.function_call_arguments.delta":
1451
+ instance.actual_instance = OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta.from_json(json_str)
1452
+ return instance
1453
+
1454
+ # check if data type is `OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone`
1455
+ if _data_type == "response.function_call_arguments.done":
1456
+ instance.actual_instance = OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone.from_json(json_str)
1457
+ return instance
1458
+
1459
+ # check if data type is `OpenAIResponseObjectStreamResponseInProgress`
1460
+ if _data_type == "response.in_progress":
1461
+ instance.actual_instance = OpenAIResponseObjectStreamResponseInProgress.from_json(json_str)
1462
+ return instance
1463
+
1464
+ # check if data type is `OpenAIResponseObjectStreamResponseIncomplete`
1465
+ if _data_type == "response.incomplete":
1466
+ instance.actual_instance = OpenAIResponseObjectStreamResponseIncomplete.from_json(json_str)
1467
+ return instance
1468
+
1469
+ # check if data type is `OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta`
1470
+ if _data_type == "response.mcp_call.arguments.delta":
1471
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta.from_json(json_str)
1472
+ return instance
1473
+
1474
+ # check if data type is `OpenAIResponseObjectStreamResponseMcpCallArgumentsDone`
1475
+ if _data_type == "response.mcp_call.arguments.done":
1476
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpCallArgumentsDone.from_json(json_str)
1477
+ return instance
1478
+
1479
+ # check if data type is `OpenAIResponseObjectStreamResponseMcpCallCompleted`
1480
+ if _data_type == "response.mcp_call.completed":
1481
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpCallCompleted.from_json(json_str)
1482
+ return instance
1483
+
1484
+ # check if data type is `OpenAIResponseObjectStreamResponseMcpCallFailed`
1485
+ if _data_type == "response.mcp_call.failed":
1486
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpCallFailed.from_json(json_str)
1487
+ return instance
1488
+
1489
+ # check if data type is `OpenAIResponseObjectStreamResponseMcpCallInProgress`
1490
+ if _data_type == "response.mcp_call.in_progress":
1491
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpCallInProgress.from_json(json_str)
1492
+ return instance
1493
+
1494
+ # check if data type is `OpenAIResponseObjectStreamResponseMcpListToolsCompleted`
1495
+ if _data_type == "response.mcp_list_tools.completed":
1496
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpListToolsCompleted.from_json(json_str)
1497
+ return instance
1498
+
1499
+ # check if data type is `OpenAIResponseObjectStreamResponseMcpListToolsFailed`
1500
+ if _data_type == "response.mcp_list_tools.failed":
1501
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpListToolsFailed.from_json(json_str)
1502
+ return instance
1503
+
1504
+ # check if data type is `OpenAIResponseObjectStreamResponseMcpListToolsInProgress`
1505
+ if _data_type == "response.mcp_list_tools.in_progress":
1506
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpListToolsInProgress.from_json(json_str)
1507
+ return instance
1508
+
1509
+ # check if data type is `OpenAIResponseObjectStreamResponseOutputItemAdded`
1510
+ if _data_type == "response.output_item.added":
1511
+ instance.actual_instance = OpenAIResponseObjectStreamResponseOutputItemAdded.from_json(json_str)
1512
+ return instance
1513
+
1514
+ # check if data type is `OpenAIResponseObjectStreamResponseOutputItemDone`
1515
+ if _data_type == "response.output_item.done":
1516
+ instance.actual_instance = OpenAIResponseObjectStreamResponseOutputItemDone.from_json(json_str)
1517
+ return instance
1518
+
1519
+ # check if data type is `OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded`
1520
+ if _data_type == "response.output_text.annotation.added":
1521
+ instance.actual_instance = OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded.from_json(json_str)
1522
+ return instance
1523
+
1524
+ # check if data type is `OpenAIResponseObjectStreamResponseOutputTextDelta`
1525
+ if _data_type == "response.output_text.delta":
1526
+ instance.actual_instance = OpenAIResponseObjectStreamResponseOutputTextDelta.from_json(json_str)
1527
+ return instance
1528
+
1529
+ # check if data type is `OpenAIResponseObjectStreamResponseOutputTextDone`
1530
+ if _data_type == "response.output_text.done":
1531
+ instance.actual_instance = OpenAIResponseObjectStreamResponseOutputTextDone.from_json(json_str)
1532
+ return instance
1533
+
1534
+ # check if data type is `OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded`
1535
+ if _data_type == "response.reasoning_summary_part.added":
1536
+ instance.actual_instance = OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded.from_json(json_str)
1537
+ return instance
1538
+
1539
+ # check if data type is `OpenAIResponseObjectStreamResponseReasoningSummaryPartDone`
1540
+ if _data_type == "response.reasoning_summary_part.done":
1541
+ instance.actual_instance = OpenAIResponseObjectStreamResponseReasoningSummaryPartDone.from_json(json_str)
1542
+ return instance
1543
+
1544
+ # check if data type is `OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta`
1545
+ if _data_type == "response.reasoning_summary_text.delta":
1546
+ instance.actual_instance = OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta.from_json(json_str)
1547
+ return instance
1548
+
1549
+ # check if data type is `OpenAIResponseObjectStreamResponseReasoningSummaryTextDone`
1550
+ if _data_type == "response.reasoning_summary_text.done":
1551
+ instance.actual_instance = OpenAIResponseObjectStreamResponseReasoningSummaryTextDone.from_json(json_str)
1552
+ return instance
1553
+
1554
+ # check if data type is `OpenAIResponseObjectStreamResponseReasoningTextDelta`
1555
+ if _data_type == "response.reasoning_text.delta":
1556
+ instance.actual_instance = OpenAIResponseObjectStreamResponseReasoningTextDelta.from_json(json_str)
1557
+ return instance
1558
+
1559
+ # check if data type is `OpenAIResponseObjectStreamResponseReasoningTextDone`
1560
+ if _data_type == "response.reasoning_text.done":
1561
+ instance.actual_instance = OpenAIResponseObjectStreamResponseReasoningTextDone.from_json(json_str)
1562
+ return instance
1563
+
1564
+ # check if data type is `OpenAIResponseObjectStreamResponseRefusalDelta`
1565
+ if _data_type == "response.refusal.delta":
1566
+ instance.actual_instance = OpenAIResponseObjectStreamResponseRefusalDelta.from_json(json_str)
1567
+ return instance
1568
+
1569
+ # check if data type is `OpenAIResponseObjectStreamResponseRefusalDone`
1570
+ if _data_type == "response.refusal.done":
1571
+ instance.actual_instance = OpenAIResponseObjectStreamResponseRefusalDone.from_json(json_str)
1572
+ return instance
1573
+
1574
+ # check if data type is `OpenAIResponseObjectStreamResponseWebSearchCallCompleted`
1575
+ if _data_type == "response.web_search_call.completed":
1576
+ instance.actual_instance = OpenAIResponseObjectStreamResponseWebSearchCallCompleted.from_json(json_str)
1577
+ return instance
1578
+
1579
+ # check if data type is `OpenAIResponseObjectStreamResponseWebSearchCallInProgress`
1580
+ if _data_type == "response.web_search_call.in_progress":
1581
+ instance.actual_instance = OpenAIResponseObjectStreamResponseWebSearchCallInProgress.from_json(json_str)
1582
+ return instance
1583
+
1584
+ # check if data type is `OpenAIResponseObjectStreamResponseWebSearchCallSearching`
1585
+ if _data_type == "response.web_search_call.searching":
1586
+ instance.actual_instance = OpenAIResponseObjectStreamResponseWebSearchCallSearching.from_json(json_str)
1587
+ return instance
1588
+
1589
+ # check if data type is `ERRORUNKNOWN`
1590
+ if _data_type == "":
1591
+ instance.actual_instance = ERRORUNKNOWN.from_json(json_str)
1592
+ return instance
1593
+
1594
+ # deserialize data into OpenAIResponseObjectStreamResponseCreated
1595
+ try:
1596
+ instance.actual_instance = OpenAIResponseObjectStreamResponseCreated.from_json(json_str)
1597
+ match += 1
1598
+ except (ValidationError, ValueError) as e:
1599
+ error_messages.append(str(e))
1600
+ # deserialize data into OpenAIResponseObjectStreamResponseInProgress
1601
+ try:
1602
+ instance.actual_instance = OpenAIResponseObjectStreamResponseInProgress.from_json(json_str)
1603
+ match += 1
1604
+ except (ValidationError, ValueError) as e:
1605
+ error_messages.append(str(e))
1606
+ # deserialize data into OpenAIResponseObjectStreamResponseOutputItemAdded
1607
+ try:
1608
+ instance.actual_instance = OpenAIResponseObjectStreamResponseOutputItemAdded.from_json(json_str)
1609
+ match += 1
1610
+ except (ValidationError, ValueError) as e:
1611
+ error_messages.append(str(e))
1612
+ # deserialize data into OpenAIResponseObjectStreamResponseOutputItemDone
1613
+ try:
1614
+ instance.actual_instance = OpenAIResponseObjectStreamResponseOutputItemDone.from_json(json_str)
1615
+ match += 1
1616
+ except (ValidationError, ValueError) as e:
1617
+ error_messages.append(str(e))
1618
+ # deserialize data into OpenAIResponseObjectStreamResponseOutputTextDelta
1619
+ try:
1620
+ instance.actual_instance = OpenAIResponseObjectStreamResponseOutputTextDelta.from_json(json_str)
1621
+ match += 1
1622
+ except (ValidationError, ValueError) as e:
1623
+ error_messages.append(str(e))
1624
+ # deserialize data into OpenAIResponseObjectStreamResponseOutputTextDone
1625
+ try:
1626
+ instance.actual_instance = OpenAIResponseObjectStreamResponseOutputTextDone.from_json(json_str)
1627
+ match += 1
1628
+ except (ValidationError, ValueError) as e:
1629
+ error_messages.append(str(e))
1630
+ # deserialize data into OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta
1631
+ try:
1632
+ instance.actual_instance = OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta.from_json(json_str)
1633
+ match += 1
1634
+ except (ValidationError, ValueError) as e:
1635
+ error_messages.append(str(e))
1636
+ # deserialize data into OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone
1637
+ try:
1638
+ instance.actual_instance = OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone.from_json(json_str)
1639
+ match += 1
1640
+ except (ValidationError, ValueError) as e:
1641
+ error_messages.append(str(e))
1642
+ # deserialize data into OpenAIResponseObjectStreamResponseWebSearchCallInProgress
1643
+ try:
1644
+ instance.actual_instance = OpenAIResponseObjectStreamResponseWebSearchCallInProgress.from_json(json_str)
1645
+ match += 1
1646
+ except (ValidationError, ValueError) as e:
1647
+ error_messages.append(str(e))
1648
+ # deserialize data into OpenAIResponseObjectStreamResponseWebSearchCallSearching
1649
+ try:
1650
+ instance.actual_instance = OpenAIResponseObjectStreamResponseWebSearchCallSearching.from_json(json_str)
1651
+ match += 1
1652
+ except (ValidationError, ValueError) as e:
1653
+ error_messages.append(str(e))
1654
+ # deserialize data into OpenAIResponseObjectStreamResponseWebSearchCallCompleted
1655
+ try:
1656
+ instance.actual_instance = OpenAIResponseObjectStreamResponseWebSearchCallCompleted.from_json(json_str)
1657
+ match += 1
1658
+ except (ValidationError, ValueError) as e:
1659
+ error_messages.append(str(e))
1660
+ # deserialize data into OpenAIResponseObjectStreamResponseMcpListToolsInProgress
1661
+ try:
1662
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpListToolsInProgress.from_json(json_str)
1663
+ match += 1
1664
+ except (ValidationError, ValueError) as e:
1665
+ error_messages.append(str(e))
1666
+ # deserialize data into OpenAIResponseObjectStreamResponseMcpListToolsFailed
1667
+ try:
1668
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpListToolsFailed.from_json(json_str)
1669
+ match += 1
1670
+ except (ValidationError, ValueError) as e:
1671
+ error_messages.append(str(e))
1672
+ # deserialize data into OpenAIResponseObjectStreamResponseMcpListToolsCompleted
1673
+ try:
1674
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpListToolsCompleted.from_json(json_str)
1675
+ match += 1
1676
+ except (ValidationError, ValueError) as e:
1677
+ error_messages.append(str(e))
1678
+ # deserialize data into OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta
1679
+ try:
1680
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta.from_json(json_str)
1681
+ match += 1
1682
+ except (ValidationError, ValueError) as e:
1683
+ error_messages.append(str(e))
1684
+ # deserialize data into OpenAIResponseObjectStreamResponseMcpCallArgumentsDone
1685
+ try:
1686
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpCallArgumentsDone.from_json(json_str)
1687
+ match += 1
1688
+ except (ValidationError, ValueError) as e:
1689
+ error_messages.append(str(e))
1690
+ # deserialize data into OpenAIResponseObjectStreamResponseMcpCallInProgress
1691
+ try:
1692
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpCallInProgress.from_json(json_str)
1693
+ match += 1
1694
+ except (ValidationError, ValueError) as e:
1695
+ error_messages.append(str(e))
1696
+ # deserialize data into OpenAIResponseObjectStreamResponseMcpCallFailed
1697
+ try:
1698
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpCallFailed.from_json(json_str)
1699
+ match += 1
1700
+ except (ValidationError, ValueError) as e:
1701
+ error_messages.append(str(e))
1702
+ # deserialize data into OpenAIResponseObjectStreamResponseMcpCallCompleted
1703
+ try:
1704
+ instance.actual_instance = OpenAIResponseObjectStreamResponseMcpCallCompleted.from_json(json_str)
1705
+ match += 1
1706
+ except (ValidationError, ValueError) as e:
1707
+ error_messages.append(str(e))
1708
+ # deserialize data into OpenAIResponseObjectStreamResponseContentPartAdded
1709
+ try:
1710
+ instance.actual_instance = OpenAIResponseObjectStreamResponseContentPartAdded.from_json(json_str)
1711
+ match += 1
1712
+ except (ValidationError, ValueError) as e:
1713
+ error_messages.append(str(e))
1714
+ # deserialize data into OpenAIResponseObjectStreamResponseContentPartDone
1715
+ try:
1716
+ instance.actual_instance = OpenAIResponseObjectStreamResponseContentPartDone.from_json(json_str)
1717
+ match += 1
1718
+ except (ValidationError, ValueError) as e:
1719
+ error_messages.append(str(e))
1720
+ # deserialize data into OpenAIResponseObjectStreamResponseReasoningTextDelta
1721
+ try:
1722
+ instance.actual_instance = OpenAIResponseObjectStreamResponseReasoningTextDelta.from_json(json_str)
1723
+ match += 1
1724
+ except (ValidationError, ValueError) as e:
1725
+ error_messages.append(str(e))
1726
+ # deserialize data into OpenAIResponseObjectStreamResponseReasoningTextDone
1727
+ try:
1728
+ instance.actual_instance = OpenAIResponseObjectStreamResponseReasoningTextDone.from_json(json_str)
1729
+ match += 1
1730
+ except (ValidationError, ValueError) as e:
1731
+ error_messages.append(str(e))
1732
+ # deserialize data into OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded
1733
+ try:
1734
+ instance.actual_instance = OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded.from_json(json_str)
1735
+ match += 1
1736
+ except (ValidationError, ValueError) as e:
1737
+ error_messages.append(str(e))
1738
+ # deserialize data into OpenAIResponseObjectStreamResponseReasoningSummaryPartDone
1739
+ try:
1740
+ instance.actual_instance = OpenAIResponseObjectStreamResponseReasoningSummaryPartDone.from_json(json_str)
1741
+ match += 1
1742
+ except (ValidationError, ValueError) as e:
1743
+ error_messages.append(str(e))
1744
+ # deserialize data into OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta
1745
+ try:
1746
+ instance.actual_instance = OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta.from_json(json_str)
1747
+ match += 1
1748
+ except (ValidationError, ValueError) as e:
1749
+ error_messages.append(str(e))
1750
+ # deserialize data into OpenAIResponseObjectStreamResponseReasoningSummaryTextDone
1751
+ try:
1752
+ instance.actual_instance = OpenAIResponseObjectStreamResponseReasoningSummaryTextDone.from_json(json_str)
1753
+ match += 1
1754
+ except (ValidationError, ValueError) as e:
1755
+ error_messages.append(str(e))
1756
+ # deserialize data into OpenAIResponseObjectStreamResponseRefusalDelta
1757
+ try:
1758
+ instance.actual_instance = OpenAIResponseObjectStreamResponseRefusalDelta.from_json(json_str)
1759
+ match += 1
1760
+ except (ValidationError, ValueError) as e:
1761
+ error_messages.append(str(e))
1762
+ # deserialize data into OpenAIResponseObjectStreamResponseRefusalDone
1763
+ try:
1764
+ instance.actual_instance = OpenAIResponseObjectStreamResponseRefusalDone.from_json(json_str)
1765
+ match += 1
1766
+ except (ValidationError, ValueError) as e:
1767
+ error_messages.append(str(e))
1768
+ # deserialize data into OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded
1769
+ try:
1770
+ instance.actual_instance = OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded.from_json(json_str)
1771
+ match += 1
1772
+ except (ValidationError, ValueError) as e:
1773
+ error_messages.append(str(e))
1774
+ # deserialize data into OpenAIResponseObjectStreamResponseFileSearchCallInProgress
1775
+ try:
1776
+ instance.actual_instance = OpenAIResponseObjectStreamResponseFileSearchCallInProgress.from_json(json_str)
1777
+ match += 1
1778
+ except (ValidationError, ValueError) as e:
1779
+ error_messages.append(str(e))
1780
+ # deserialize data into OpenAIResponseObjectStreamResponseFileSearchCallSearching
1781
+ try:
1782
+ instance.actual_instance = OpenAIResponseObjectStreamResponseFileSearchCallSearching.from_json(json_str)
1783
+ match += 1
1784
+ except (ValidationError, ValueError) as e:
1785
+ error_messages.append(str(e))
1786
+ # deserialize data into OpenAIResponseObjectStreamResponseFileSearchCallCompleted
1787
+ try:
1788
+ instance.actual_instance = OpenAIResponseObjectStreamResponseFileSearchCallCompleted.from_json(json_str)
1789
+ match += 1
1790
+ except (ValidationError, ValueError) as e:
1791
+ error_messages.append(str(e))
1792
+ # deserialize data into OpenAIResponseObjectStreamResponseIncomplete
1793
+ try:
1794
+ instance.actual_instance = OpenAIResponseObjectStreamResponseIncomplete.from_json(json_str)
1795
+ match += 1
1796
+ except (ValidationError, ValueError) as e:
1797
+ error_messages.append(str(e))
1798
+ # deserialize data into OpenAIResponseObjectStreamResponseFailed
1799
+ try:
1800
+ instance.actual_instance = OpenAIResponseObjectStreamResponseFailed.from_json(json_str)
1801
+ match += 1
1802
+ except (ValidationError, ValueError) as e:
1803
+ error_messages.append(str(e))
1804
+ # deserialize data into OpenAIResponseObjectStreamResponseCompleted
1805
+ try:
1806
+ instance.actual_instance = OpenAIResponseObjectStreamResponseCompleted.from_json(json_str)
1807
+ match += 1
1808
+ except (ValidationError, ValueError) as e:
1809
+ error_messages.append(str(e))
1810
+ # deserialize data into OpenAIResponseObjectStreamError
1811
+ try:
1812
+ instance.actual_instance = OpenAIResponseObjectStreamError.from_json(json_str)
1813
+ match += 1
1814
+ except (ValidationError, ValueError) as e:
1815
+ error_messages.append(str(e))
1816
+
1817
+ if match > 1:
1818
+ # Special case: empty lists can match multiple List[...] schemas in oneOf
1819
+ # This is common in streaming where content starts empty
1820
+ # In this case, just accept the first match (they're functionally equivalent for empty lists)
1821
+ data = json.loads(json_str)
1822
+ if isinstance(data, list) and len(data) == 0:
1823
+ return instance # First match already set in instance
1824
+ # more than 1 match
1825
+ raise ValueError("Multiple matches found when deserializing the JSON string into OpenAIResponseObjectStream with oneOf schemas: OpenAIResponseObjectStreamError, OpenAIResponseObjectStreamResponseCompleted, OpenAIResponseObjectStreamResponseContentPartAdded, OpenAIResponseObjectStreamResponseContentPartDone, OpenAIResponseObjectStreamResponseCreated, OpenAIResponseObjectStreamResponseFailed, OpenAIResponseObjectStreamResponseFileSearchCallCompleted, OpenAIResponseObjectStreamResponseFileSearchCallInProgress, OpenAIResponseObjectStreamResponseFileSearchCallSearching, OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta, OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone, OpenAIResponseObjectStreamResponseInProgress, OpenAIResponseObjectStreamResponseIncomplete, OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta, OpenAIResponseObjectStreamResponseMcpCallArgumentsDone, OpenAIResponseObjectStreamResponseMcpCallCompleted, OpenAIResponseObjectStreamResponseMcpCallFailed, OpenAIResponseObjectStreamResponseMcpCallInProgress, OpenAIResponseObjectStreamResponseMcpListToolsCompleted, OpenAIResponseObjectStreamResponseMcpListToolsFailed, OpenAIResponseObjectStreamResponseMcpListToolsInProgress, OpenAIResponseObjectStreamResponseOutputItemAdded, OpenAIResponseObjectStreamResponseOutputItemDone, OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded, OpenAIResponseObjectStreamResponseOutputTextDelta, OpenAIResponseObjectStreamResponseOutputTextDone, OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded, OpenAIResponseObjectStreamResponseReasoningSummaryPartDone, OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta, OpenAIResponseObjectStreamResponseReasoningSummaryTextDone, OpenAIResponseObjectStreamResponseReasoningTextDelta, OpenAIResponseObjectStreamResponseReasoningTextDone, OpenAIResponseObjectStreamResponseRefusalDelta, OpenAIResponseObjectStreamResponseRefusalDone, OpenAIResponseObjectStreamResponseWebSearchCallCompleted, OpenAIResponseObjectStreamResponseWebSearchCallInProgress, OpenAIResponseObjectStreamResponseWebSearchCallSearching. Details: " + ", ".join(error_messages))
1826
+ elif match == 0:
1827
+ # no match - try lenient fallback for streaming chunks
1828
+ data = json.loads(json_str)
1829
+
1830
+ # Helper to remove None values recursively for streaming chunks
1831
+ def remove_none_values(obj):
1832
+ if isinstance(obj, dict):
1833
+ return {k: remove_none_values(v) for k, v in obj.items() if v is not None}
1834
+ elif isinstance(obj, list):
1835
+ return [remove_none_values(item) for item in obj if item is not None]
1836
+ return obj
1837
+
1838
+ # Helper to add default values for commonly missing required fields in streaming
1839
+ def add_streaming_defaults(obj):
1840
+ if isinstance(obj, dict):
1841
+ result = dict(obj)
1842
+ # Add empty string for finish_reason if missing (common in streaming chunks)
1843
+ if 'choices' in result and isinstance(result['choices'], list):
1844
+ for choice in result['choices']:
1845
+ if isinstance(choice, dict) and 'finish_reason' not in choice:
1846
+ choice['finish_reason'] = ''
1847
+ return result
1848
+ return obj
1849
+
1850
+ # Try each variant with None values removed and defaults added
1851
+ try:
1852
+ cleaned_data = remove_none_values(data)
1853
+ cleaned_data = add_streaming_defaults(cleaned_data)
1854
+ variant = OpenAIResponseObjectStreamResponseCreated.model_validate(cleaned_data)
1855
+ instance.actual_instance = variant
1856
+ return instance
1857
+ except Exception:
1858
+ pass
1859
+ try:
1860
+ cleaned_data = remove_none_values(data)
1861
+ cleaned_data = add_streaming_defaults(cleaned_data)
1862
+ variant = OpenAIResponseObjectStreamResponseInProgress.model_validate(cleaned_data)
1863
+ instance.actual_instance = variant
1864
+ return instance
1865
+ except Exception:
1866
+ pass
1867
+ try:
1868
+ cleaned_data = remove_none_values(data)
1869
+ cleaned_data = add_streaming_defaults(cleaned_data)
1870
+ variant = OpenAIResponseObjectStreamResponseOutputItemAdded.model_validate(cleaned_data)
1871
+ instance.actual_instance = variant
1872
+ return instance
1873
+ except Exception:
1874
+ pass
1875
+ try:
1876
+ cleaned_data = remove_none_values(data)
1877
+ cleaned_data = add_streaming_defaults(cleaned_data)
1878
+ variant = OpenAIResponseObjectStreamResponseOutputItemDone.model_validate(cleaned_data)
1879
+ instance.actual_instance = variant
1880
+ return instance
1881
+ except Exception:
1882
+ pass
1883
+ try:
1884
+ cleaned_data = remove_none_values(data)
1885
+ cleaned_data = add_streaming_defaults(cleaned_data)
1886
+ variant = OpenAIResponseObjectStreamResponseOutputTextDelta.model_validate(cleaned_data)
1887
+ instance.actual_instance = variant
1888
+ return instance
1889
+ except Exception:
1890
+ pass
1891
+ try:
1892
+ cleaned_data = remove_none_values(data)
1893
+ cleaned_data = add_streaming_defaults(cleaned_data)
1894
+ variant = OpenAIResponseObjectStreamResponseOutputTextDone.model_validate(cleaned_data)
1895
+ instance.actual_instance = variant
1896
+ return instance
1897
+ except Exception:
1898
+ pass
1899
+ try:
1900
+ cleaned_data = remove_none_values(data)
1901
+ cleaned_data = add_streaming_defaults(cleaned_data)
1902
+ variant = OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta.model_validate(cleaned_data)
1903
+ instance.actual_instance = variant
1904
+ return instance
1905
+ except Exception:
1906
+ pass
1907
+ try:
1908
+ cleaned_data = remove_none_values(data)
1909
+ cleaned_data = add_streaming_defaults(cleaned_data)
1910
+ variant = OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone.model_validate(cleaned_data)
1911
+ instance.actual_instance = variant
1912
+ return instance
1913
+ except Exception:
1914
+ pass
1915
+ try:
1916
+ cleaned_data = remove_none_values(data)
1917
+ cleaned_data = add_streaming_defaults(cleaned_data)
1918
+ variant = OpenAIResponseObjectStreamResponseWebSearchCallInProgress.model_validate(cleaned_data)
1919
+ instance.actual_instance = variant
1920
+ return instance
1921
+ except Exception:
1922
+ pass
1923
+ try:
1924
+ cleaned_data = remove_none_values(data)
1925
+ cleaned_data = add_streaming_defaults(cleaned_data)
1926
+ variant = OpenAIResponseObjectStreamResponseWebSearchCallSearching.model_validate(cleaned_data)
1927
+ instance.actual_instance = variant
1928
+ return instance
1929
+ except Exception:
1930
+ pass
1931
+ try:
1932
+ cleaned_data = remove_none_values(data)
1933
+ cleaned_data = add_streaming_defaults(cleaned_data)
1934
+ variant = OpenAIResponseObjectStreamResponseWebSearchCallCompleted.model_validate(cleaned_data)
1935
+ instance.actual_instance = variant
1936
+ return instance
1937
+ except Exception:
1938
+ pass
1939
+ try:
1940
+ cleaned_data = remove_none_values(data)
1941
+ cleaned_data = add_streaming_defaults(cleaned_data)
1942
+ variant = OpenAIResponseObjectStreamResponseMcpListToolsInProgress.model_validate(cleaned_data)
1943
+ instance.actual_instance = variant
1944
+ return instance
1945
+ except Exception:
1946
+ pass
1947
+ try:
1948
+ cleaned_data = remove_none_values(data)
1949
+ cleaned_data = add_streaming_defaults(cleaned_data)
1950
+ variant = OpenAIResponseObjectStreamResponseMcpListToolsFailed.model_validate(cleaned_data)
1951
+ instance.actual_instance = variant
1952
+ return instance
1953
+ except Exception:
1954
+ pass
1955
+ try:
1956
+ cleaned_data = remove_none_values(data)
1957
+ cleaned_data = add_streaming_defaults(cleaned_data)
1958
+ variant = OpenAIResponseObjectStreamResponseMcpListToolsCompleted.model_validate(cleaned_data)
1959
+ instance.actual_instance = variant
1960
+ return instance
1961
+ except Exception:
1962
+ pass
1963
+ try:
1964
+ cleaned_data = remove_none_values(data)
1965
+ cleaned_data = add_streaming_defaults(cleaned_data)
1966
+ variant = OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta.model_validate(cleaned_data)
1967
+ instance.actual_instance = variant
1968
+ return instance
1969
+ except Exception:
1970
+ pass
1971
+ try:
1972
+ cleaned_data = remove_none_values(data)
1973
+ cleaned_data = add_streaming_defaults(cleaned_data)
1974
+ variant = OpenAIResponseObjectStreamResponseMcpCallArgumentsDone.model_validate(cleaned_data)
1975
+ instance.actual_instance = variant
1976
+ return instance
1977
+ except Exception:
1978
+ pass
1979
+ try:
1980
+ cleaned_data = remove_none_values(data)
1981
+ cleaned_data = add_streaming_defaults(cleaned_data)
1982
+ variant = OpenAIResponseObjectStreamResponseMcpCallInProgress.model_validate(cleaned_data)
1983
+ instance.actual_instance = variant
1984
+ return instance
1985
+ except Exception:
1986
+ pass
1987
+ try:
1988
+ cleaned_data = remove_none_values(data)
1989
+ cleaned_data = add_streaming_defaults(cleaned_data)
1990
+ variant = OpenAIResponseObjectStreamResponseMcpCallFailed.model_validate(cleaned_data)
1991
+ instance.actual_instance = variant
1992
+ return instance
1993
+ except Exception:
1994
+ pass
1995
+ try:
1996
+ cleaned_data = remove_none_values(data)
1997
+ cleaned_data = add_streaming_defaults(cleaned_data)
1998
+ variant = OpenAIResponseObjectStreamResponseMcpCallCompleted.model_validate(cleaned_data)
1999
+ instance.actual_instance = variant
2000
+ return instance
2001
+ except Exception:
2002
+ pass
2003
+ try:
2004
+ cleaned_data = remove_none_values(data)
2005
+ cleaned_data = add_streaming_defaults(cleaned_data)
2006
+ variant = OpenAIResponseObjectStreamResponseContentPartAdded.model_validate(cleaned_data)
2007
+ instance.actual_instance = variant
2008
+ return instance
2009
+ except Exception:
2010
+ pass
2011
+ try:
2012
+ cleaned_data = remove_none_values(data)
2013
+ cleaned_data = add_streaming_defaults(cleaned_data)
2014
+ variant = OpenAIResponseObjectStreamResponseContentPartDone.model_validate(cleaned_data)
2015
+ instance.actual_instance = variant
2016
+ return instance
2017
+ except Exception:
2018
+ pass
2019
+ try:
2020
+ cleaned_data = remove_none_values(data)
2021
+ cleaned_data = add_streaming_defaults(cleaned_data)
2022
+ variant = OpenAIResponseObjectStreamResponseReasoningTextDelta.model_validate(cleaned_data)
2023
+ instance.actual_instance = variant
2024
+ return instance
2025
+ except Exception:
2026
+ pass
2027
+ try:
2028
+ cleaned_data = remove_none_values(data)
2029
+ cleaned_data = add_streaming_defaults(cleaned_data)
2030
+ variant = OpenAIResponseObjectStreamResponseReasoningTextDone.model_validate(cleaned_data)
2031
+ instance.actual_instance = variant
2032
+ return instance
2033
+ except Exception:
2034
+ pass
2035
+ try:
2036
+ cleaned_data = remove_none_values(data)
2037
+ cleaned_data = add_streaming_defaults(cleaned_data)
2038
+ variant = OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded.model_validate(cleaned_data)
2039
+ instance.actual_instance = variant
2040
+ return instance
2041
+ except Exception:
2042
+ pass
2043
+ try:
2044
+ cleaned_data = remove_none_values(data)
2045
+ cleaned_data = add_streaming_defaults(cleaned_data)
2046
+ variant = OpenAIResponseObjectStreamResponseReasoningSummaryPartDone.model_validate(cleaned_data)
2047
+ instance.actual_instance = variant
2048
+ return instance
2049
+ except Exception:
2050
+ pass
2051
+ try:
2052
+ cleaned_data = remove_none_values(data)
2053
+ cleaned_data = add_streaming_defaults(cleaned_data)
2054
+ variant = OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta.model_validate(cleaned_data)
2055
+ instance.actual_instance = variant
2056
+ return instance
2057
+ except Exception:
2058
+ pass
2059
+ try:
2060
+ cleaned_data = remove_none_values(data)
2061
+ cleaned_data = add_streaming_defaults(cleaned_data)
2062
+ variant = OpenAIResponseObjectStreamResponseReasoningSummaryTextDone.model_validate(cleaned_data)
2063
+ instance.actual_instance = variant
2064
+ return instance
2065
+ except Exception:
2066
+ pass
2067
+ try:
2068
+ cleaned_data = remove_none_values(data)
2069
+ cleaned_data = add_streaming_defaults(cleaned_data)
2070
+ variant = OpenAIResponseObjectStreamResponseRefusalDelta.model_validate(cleaned_data)
2071
+ instance.actual_instance = variant
2072
+ return instance
2073
+ except Exception:
2074
+ pass
2075
+ try:
2076
+ cleaned_data = remove_none_values(data)
2077
+ cleaned_data = add_streaming_defaults(cleaned_data)
2078
+ variant = OpenAIResponseObjectStreamResponseRefusalDone.model_validate(cleaned_data)
2079
+ instance.actual_instance = variant
2080
+ return instance
2081
+ except Exception:
2082
+ pass
2083
+ try:
2084
+ cleaned_data = remove_none_values(data)
2085
+ cleaned_data = add_streaming_defaults(cleaned_data)
2086
+ variant = OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded.model_validate(cleaned_data)
2087
+ instance.actual_instance = variant
2088
+ return instance
2089
+ except Exception:
2090
+ pass
2091
+ try:
2092
+ cleaned_data = remove_none_values(data)
2093
+ cleaned_data = add_streaming_defaults(cleaned_data)
2094
+ variant = OpenAIResponseObjectStreamResponseFileSearchCallInProgress.model_validate(cleaned_data)
2095
+ instance.actual_instance = variant
2096
+ return instance
2097
+ except Exception:
2098
+ pass
2099
+ try:
2100
+ cleaned_data = remove_none_values(data)
2101
+ cleaned_data = add_streaming_defaults(cleaned_data)
2102
+ variant = OpenAIResponseObjectStreamResponseFileSearchCallSearching.model_validate(cleaned_data)
2103
+ instance.actual_instance = variant
2104
+ return instance
2105
+ except Exception:
2106
+ pass
2107
+ try:
2108
+ cleaned_data = remove_none_values(data)
2109
+ cleaned_data = add_streaming_defaults(cleaned_data)
2110
+ variant = OpenAIResponseObjectStreamResponseFileSearchCallCompleted.model_validate(cleaned_data)
2111
+ instance.actual_instance = variant
2112
+ return instance
2113
+ except Exception:
2114
+ pass
2115
+ try:
2116
+ cleaned_data = remove_none_values(data)
2117
+ cleaned_data = add_streaming_defaults(cleaned_data)
2118
+ variant = OpenAIResponseObjectStreamResponseIncomplete.model_validate(cleaned_data)
2119
+ instance.actual_instance = variant
2120
+ return instance
2121
+ except Exception:
2122
+ pass
2123
+ try:
2124
+ cleaned_data = remove_none_values(data)
2125
+ cleaned_data = add_streaming_defaults(cleaned_data)
2126
+ variant = OpenAIResponseObjectStreamResponseFailed.model_validate(cleaned_data)
2127
+ instance.actual_instance = variant
2128
+ return instance
2129
+ except Exception:
2130
+ pass
2131
+ try:
2132
+ cleaned_data = remove_none_values(data)
2133
+ cleaned_data = add_streaming_defaults(cleaned_data)
2134
+ variant = OpenAIResponseObjectStreamResponseCompleted.model_validate(cleaned_data)
2135
+ instance.actual_instance = variant
2136
+ return instance
2137
+ except Exception:
2138
+ pass
2139
+ try:
2140
+ cleaned_data = remove_none_values(data)
2141
+ cleaned_data = add_streaming_defaults(cleaned_data)
2142
+ variant = OpenAIResponseObjectStreamError.model_validate(cleaned_data)
2143
+ instance.actual_instance = variant
2144
+ return instance
2145
+ except Exception:
2146
+ pass
2147
+
2148
+ # All variants failed
2149
+ raise ValueError("No match found when deserializing the JSON string into OpenAIResponseObjectStream with oneOf schemas: OpenAIResponseObjectStreamError, OpenAIResponseObjectStreamResponseCompleted, OpenAIResponseObjectStreamResponseContentPartAdded, OpenAIResponseObjectStreamResponseContentPartDone, OpenAIResponseObjectStreamResponseCreated, OpenAIResponseObjectStreamResponseFailed, OpenAIResponseObjectStreamResponseFileSearchCallCompleted, OpenAIResponseObjectStreamResponseFileSearchCallInProgress, OpenAIResponseObjectStreamResponseFileSearchCallSearching, OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta, OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone, OpenAIResponseObjectStreamResponseInProgress, OpenAIResponseObjectStreamResponseIncomplete, OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta, OpenAIResponseObjectStreamResponseMcpCallArgumentsDone, OpenAIResponseObjectStreamResponseMcpCallCompleted, OpenAIResponseObjectStreamResponseMcpCallFailed, OpenAIResponseObjectStreamResponseMcpCallInProgress, OpenAIResponseObjectStreamResponseMcpListToolsCompleted, OpenAIResponseObjectStreamResponseMcpListToolsFailed, OpenAIResponseObjectStreamResponseMcpListToolsInProgress, OpenAIResponseObjectStreamResponseOutputItemAdded, OpenAIResponseObjectStreamResponseOutputItemDone, OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded, OpenAIResponseObjectStreamResponseOutputTextDelta, OpenAIResponseObjectStreamResponseOutputTextDone, OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded, OpenAIResponseObjectStreamResponseReasoningSummaryPartDone, OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta, OpenAIResponseObjectStreamResponseReasoningSummaryTextDone, OpenAIResponseObjectStreamResponseReasoningTextDelta, OpenAIResponseObjectStreamResponseReasoningTextDone, OpenAIResponseObjectStreamResponseRefusalDelta, OpenAIResponseObjectStreamResponseRefusalDone, OpenAIResponseObjectStreamResponseWebSearchCallCompleted, OpenAIResponseObjectStreamResponseWebSearchCallInProgress, OpenAIResponseObjectStreamResponseWebSearchCallSearching. Details: " + ", ".join(error_messages))
2150
+ else:
2151
+ return instance
2152
+
2153
+ def to_dict(self) -> dict[str, Any] | OpenAIResponseObjectStreamError | OpenAIResponseObjectStreamResponseCompleted | OpenAIResponseObjectStreamResponseContentPartAdded | OpenAIResponseObjectStreamResponseContentPartDone | OpenAIResponseObjectStreamResponseCreated | OpenAIResponseObjectStreamResponseFailed | OpenAIResponseObjectStreamResponseFileSearchCallCompleted | OpenAIResponseObjectStreamResponseFileSearchCallInProgress | OpenAIResponseObjectStreamResponseFileSearchCallSearching | OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta | OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone | OpenAIResponseObjectStreamResponseInProgress | OpenAIResponseObjectStreamResponseIncomplete | OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta | OpenAIResponseObjectStreamResponseMcpCallArgumentsDone | OpenAIResponseObjectStreamResponseMcpCallCompleted | OpenAIResponseObjectStreamResponseMcpCallFailed | OpenAIResponseObjectStreamResponseMcpCallInProgress | OpenAIResponseObjectStreamResponseMcpListToolsCompleted | OpenAIResponseObjectStreamResponseMcpListToolsFailed | OpenAIResponseObjectStreamResponseMcpListToolsInProgress | OpenAIResponseObjectStreamResponseOutputItemAdded | OpenAIResponseObjectStreamResponseOutputItemDone | OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded | OpenAIResponseObjectStreamResponseOutputTextDelta | OpenAIResponseObjectStreamResponseOutputTextDone | OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded | OpenAIResponseObjectStreamResponseReasoningSummaryPartDone | OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta | OpenAIResponseObjectStreamResponseReasoningSummaryTextDone | OpenAIResponseObjectStreamResponseReasoningTextDelta | OpenAIResponseObjectStreamResponseReasoningTextDone | OpenAIResponseObjectStreamResponseRefusalDelta | OpenAIResponseObjectStreamResponseRefusalDone | OpenAIResponseObjectStreamResponseWebSearchCallCompleted | OpenAIResponseObjectStreamResponseWebSearchCallInProgress | OpenAIResponseObjectStreamResponseWebSearchCallSearching | None:
2154
+ """Returns the dict representation of the actual instance"""
2155
+ if self.actual_instance is None:
2156
+ return None
2157
+
2158
+ # Handle lists specially - call to_dict() on each item if it has the method
2159
+ if isinstance(self.actual_instance, list):
2160
+ return [
2161
+ item.to_dict() if hasattr(item, 'to_dict') and callable(item.to_dict)
2162
+ else item
2163
+ for item in self.actual_instance
2164
+ ]
2165
+ # Handle Pydantic models
2166
+ elif hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
2167
+ return self.actual_instance.to_dict()
2168
+ # Handle other Pydantic models that don't have to_dict
2169
+ elif hasattr(self.actual_instance, '__pydantic_serializer__'):
2170
+ from pydantic_core import to_jsonable_python
2171
+ return to_jsonable_python(
2172
+ self.actual_instance,
2173
+ by_alias=True,
2174
+ exclude_none=True,
2175
+ fallback=lambda x: x if isinstance(x, str | int | float | bool | type(None)) else str(x)
2176
+ )
2177
+ else:
2178
+ # primitive type
2179
+ return self.actual_instance
2180
+
2181
+