aimlapi-sdk-python 2.8.1b0__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 (1958) hide show
  1. aimlapi/__init__.py +243 -0
  2. aimlapi/__main__.py +3 -0
  3. aimlapi/_client.py +368 -0
  4. aimlapi/_utils/__init__.py +3 -0
  5. aimlapi/_utils/_compat.py +3 -0
  6. aimlapi/_utils/_datetime_parse.py +3 -0
  7. aimlapi/_utils/_logs.py +3 -0
  8. aimlapi/_utils/_proxy.py +3 -0
  9. aimlapi/_utils/_reflection.py +3 -0
  10. aimlapi/_utils/_resources_proxy.py +3 -0
  11. aimlapi/_utils/_streams.py +3 -0
  12. aimlapi/_utils/_sync.py +3 -0
  13. aimlapi/_utils/_transform.py +3 -0
  14. aimlapi/_utils/_typing.py +3 -0
  15. aimlapi/_utils/_utils.py +3 -0
  16. aimlapi/_version.py +9 -0
  17. aimlapi/cli/__init__.py +3 -0
  18. aimlapi/cli/_api/__init__.py +3 -0
  19. aimlapi/cli/_api/_main.py +3 -0
  20. aimlapi/cli/_api/audio.py +3 -0
  21. aimlapi/cli/_api/chat/__init__.py +3 -0
  22. aimlapi/cli/_api/chat/completions.py +3 -0
  23. aimlapi/cli/_api/completions.py +3 -0
  24. aimlapi/cli/_api/files.py +3 -0
  25. aimlapi/cli/_api/fine_tuning/__init__.py +3 -0
  26. aimlapi/cli/_api/fine_tuning/jobs.py +3 -0
  27. aimlapi/cli/_api/image.py +3 -0
  28. aimlapi/cli/_api/models.py +3 -0
  29. aimlapi/cli/_cli.py +3 -0
  30. aimlapi/cli/_errors.py +3 -0
  31. aimlapi/cli/_models.py +3 -0
  32. aimlapi/cli/_progress.py +3 -0
  33. aimlapi/cli/_tools/__init__.py +3 -0
  34. aimlapi/cli/_tools/_main.py +3 -0
  35. aimlapi/cli/_tools/fine_tunes.py +3 -0
  36. aimlapi/cli/_tools/migrate.py +3 -0
  37. aimlapi/cli/_utils.py +3 -0
  38. aimlapi/helpers/__init__.py +3 -0
  39. aimlapi/helpers/local_audio_player.py +3 -0
  40. aimlapi/helpers/microphone.py +3 -0
  41. aimlapi/lib/__init__.py +3 -0
  42. aimlapi/lib/_old_api.py +3 -0
  43. aimlapi/lib/_parsing/__init__.py +3 -0
  44. aimlapi/lib/_parsing/_completions.py +3 -0
  45. aimlapi/lib/_parsing/_responses.py +3 -0
  46. aimlapi/lib/_pydantic.py +3 -0
  47. aimlapi/lib/_realtime.py +3 -0
  48. aimlapi/lib/_tools.py +3 -0
  49. aimlapi/lib/_validators.py +3 -0
  50. aimlapi/lib/azure.py +3 -0
  51. aimlapi/lib/streaming/__init__.py +3 -0
  52. aimlapi/lib/streaming/_assistants.py +3 -0
  53. aimlapi/lib/streaming/_deltas.py +3 -0
  54. aimlapi/lib/streaming/chat/__init__.py +3 -0
  55. aimlapi/lib/streaming/chat/_completions.py +3 -0
  56. aimlapi/lib/streaming/chat/_events.py +3 -0
  57. aimlapi/lib/streaming/chat/_types.py +3 -0
  58. aimlapi/lib/streaming/responses/__init__.py +3 -0
  59. aimlapi/lib/streaming/responses/_events.py +3 -0
  60. aimlapi/lib/streaming/responses/_responses.py +3 -0
  61. aimlapi/lib/streaming/responses/_types.py +3 -0
  62. aimlapi/pagination.py +3 -0
  63. aimlapi/resources/__init__.py +3 -0
  64. aimlapi/resources/audio/__init__.py +47 -0
  65. aimlapi/resources/audio/_polling.py +129 -0
  66. aimlapi/resources/audio/audio.py +56 -0
  67. aimlapi/resources/audio/speech.py +428 -0
  68. aimlapi/resources/audio/transcriptions.py +219 -0
  69. aimlapi/resources/audio/translations.py +3 -0
  70. aimlapi/resources/batches.py +3 -0
  71. aimlapi/resources/beta/__init__.py +3 -0
  72. aimlapi/resources/beta/assistants.py +3 -0
  73. aimlapi/resources/beta/beta.py +3 -0
  74. aimlapi/resources/beta/chatkit/__init__.py +3 -0
  75. aimlapi/resources/beta/chatkit/chatkit.py +3 -0
  76. aimlapi/resources/beta/chatkit/sessions.py +3 -0
  77. aimlapi/resources/beta/chatkit/threads.py +3 -0
  78. aimlapi/resources/beta/realtime/__init__.py +3 -0
  79. aimlapi/resources/beta/realtime/realtime.py +3 -0
  80. aimlapi/resources/beta/realtime/sessions.py +3 -0
  81. aimlapi/resources/beta/realtime/transcription_sessions.py +3 -0
  82. aimlapi/resources/beta/threads/__init__.py +3 -0
  83. aimlapi/resources/beta/threads/messages.py +3 -0
  84. aimlapi/resources/beta/threads/runs/__init__.py +3 -0
  85. aimlapi/resources/beta/threads/runs/runs.py +3 -0
  86. aimlapi/resources/beta/threads/runs/steps.py +3 -0
  87. aimlapi/resources/beta/threads/threads.py +3 -0
  88. aimlapi/resources/chat/__init__.py +3 -0
  89. aimlapi/resources/chat/chat.py +86 -0
  90. aimlapi/resources/chat/completions/__init__.py +4 -0
  91. aimlapi/resources/chat/completions/completions.py +452 -0
  92. aimlapi/resources/chat/completions/messages.py +3 -0
  93. aimlapi/resources/completions.py +3 -0
  94. aimlapi/resources/containers/__init__.py +3 -0
  95. aimlapi/resources/containers/containers.py +3 -0
  96. aimlapi/resources/containers/files/__init__.py +3 -0
  97. aimlapi/resources/containers/files/content.py +3 -0
  98. aimlapi/resources/containers/files/files.py +3 -0
  99. aimlapi/resources/conversations/__init__.py +3 -0
  100. aimlapi/resources/conversations/conversations.py +3 -0
  101. aimlapi/resources/conversations/items.py +3 -0
  102. aimlapi/resources/embeddings.py +3 -0
  103. aimlapi/resources/evals/__init__.py +3 -0
  104. aimlapi/resources/evals/evals.py +3 -0
  105. aimlapi/resources/evals/runs/__init__.py +3 -0
  106. aimlapi/resources/evals/runs/output_items.py +3 -0
  107. aimlapi/resources/evals/runs/runs.py +3 -0
  108. aimlapi/resources/files.py +3 -0
  109. aimlapi/resources/fine_tuning/__init__.py +3 -0
  110. aimlapi/resources/fine_tuning/alpha/__init__.py +3 -0
  111. aimlapi/resources/fine_tuning/alpha/alpha.py +3 -0
  112. aimlapi/resources/fine_tuning/alpha/graders.py +3 -0
  113. aimlapi/resources/fine_tuning/checkpoints/__init__.py +3 -0
  114. aimlapi/resources/fine_tuning/checkpoints/checkpoints.py +3 -0
  115. aimlapi/resources/fine_tuning/checkpoints/permissions.py +3 -0
  116. aimlapi/resources/fine_tuning/fine_tuning.py +3 -0
  117. aimlapi/resources/fine_tuning/jobs/__init__.py +3 -0
  118. aimlapi/resources/fine_tuning/jobs/checkpoints.py +3 -0
  119. aimlapi/resources/fine_tuning/jobs/jobs.py +3 -0
  120. aimlapi/resources/images.py +184 -0
  121. aimlapi/resources/models.py +3 -0
  122. aimlapi/resources/moderations.py +3 -0
  123. aimlapi/resources/realtime/__init__.py +3 -0
  124. aimlapi/resources/realtime/calls.py +3 -0
  125. aimlapi/resources/realtime/client_secrets.py +3 -0
  126. aimlapi/resources/realtime/realtime.py +3 -0
  127. aimlapi/resources/responses/__init__.py +4 -0
  128. aimlapi/resources/responses/input_items.py +3 -0
  129. aimlapi/resources/responses/input_tokens.py +3 -0
  130. aimlapi/resources/responses/responses.py +229 -0
  131. aimlapi/resources/uploads/__init__.py +19 -0
  132. aimlapi/resources/uploads/parts.py +3 -0
  133. aimlapi/resources/uploads/uploads.py +99 -0
  134. aimlapi/resources/vector_stores/__init__.py +3 -0
  135. aimlapi/resources/vector_stores/file_batches.py +3 -0
  136. aimlapi/resources/vector_stores/files.py +3 -0
  137. aimlapi/resources/vector_stores/vector_stores.py +3 -0
  138. aimlapi/resources/videos.py +267 -0
  139. aimlapi/resources/webhooks.py +3 -0
  140. aimlapi/types/__init__.py +3 -0
  141. aimlapi/types/audio/__init__.py +3 -0
  142. aimlapi/types/audio/speech_create_params.py +3 -0
  143. aimlapi/types/audio/speech_model.py +3 -0
  144. aimlapi/types/audio/transcription.py +3 -0
  145. aimlapi/types/audio/transcription_create_params.py +3 -0
  146. aimlapi/types/audio/transcription_create_response.py +3 -0
  147. aimlapi/types/audio/transcription_diarized.py +3 -0
  148. aimlapi/types/audio/transcription_diarized_segment.py +3 -0
  149. aimlapi/types/audio/transcription_include.py +3 -0
  150. aimlapi/types/audio/transcription_segment.py +3 -0
  151. aimlapi/types/audio/transcription_stream_event.py +3 -0
  152. aimlapi/types/audio/transcription_text_delta_event.py +3 -0
  153. aimlapi/types/audio/transcription_text_done_event.py +3 -0
  154. aimlapi/types/audio/transcription_text_segment_event.py +3 -0
  155. aimlapi/types/audio/transcription_verbose.py +3 -0
  156. aimlapi/types/audio/transcription_word.py +3 -0
  157. aimlapi/types/audio/translation.py +3 -0
  158. aimlapi/types/audio/translation_create_params.py +3 -0
  159. aimlapi/types/audio/translation_create_response.py +3 -0
  160. aimlapi/types/audio/translation_verbose.py +3 -0
  161. aimlapi/types/audio_model.py +3 -0
  162. aimlapi/types/audio_response_format.py +3 -0
  163. aimlapi/types/auto_file_chunking_strategy_param.py +3 -0
  164. aimlapi/types/batch.py +3 -0
  165. aimlapi/types/batch_create_params.py +3 -0
  166. aimlapi/types/batch_error.py +3 -0
  167. aimlapi/types/batch_list_params.py +3 -0
  168. aimlapi/types/batch_request_counts.py +3 -0
  169. aimlapi/types/batch_usage.py +3 -0
  170. aimlapi/types/beta/__init__.py +3 -0
  171. aimlapi/types/beta/assistant.py +3 -0
  172. aimlapi/types/beta/assistant_create_params.py +3 -0
  173. aimlapi/types/beta/assistant_deleted.py +3 -0
  174. aimlapi/types/beta/assistant_list_params.py +3 -0
  175. aimlapi/types/beta/assistant_response_format_option.py +3 -0
  176. aimlapi/types/beta/assistant_response_format_option_param.py +3 -0
  177. aimlapi/types/beta/assistant_stream_event.py +3 -0
  178. aimlapi/types/beta/assistant_tool.py +3 -0
  179. aimlapi/types/beta/assistant_tool_choice.py +3 -0
  180. aimlapi/types/beta/assistant_tool_choice_function.py +3 -0
  181. aimlapi/types/beta/assistant_tool_choice_function_param.py +3 -0
  182. aimlapi/types/beta/assistant_tool_choice_option.py +3 -0
  183. aimlapi/types/beta/assistant_tool_choice_option_param.py +3 -0
  184. aimlapi/types/beta/assistant_tool_choice_param.py +3 -0
  185. aimlapi/types/beta/assistant_tool_param.py +3 -0
  186. aimlapi/types/beta/assistant_update_params.py +3 -0
  187. aimlapi/types/beta/chat/__init__.py +3 -0
  188. aimlapi/types/beta/chatkit/__init__.py +3 -0
  189. aimlapi/types/beta/chatkit/chat_session.py +3 -0
  190. aimlapi/types/beta/chatkit/chat_session_automatic_thread_titling.py +3 -0
  191. aimlapi/types/beta/chatkit/chat_session_chatkit_configuration.py +3 -0
  192. aimlapi/types/beta/chatkit/chat_session_chatkit_configuration_param.py +3 -0
  193. aimlapi/types/beta/chatkit/chat_session_expires_after_param.py +3 -0
  194. aimlapi/types/beta/chatkit/chat_session_file_upload.py +3 -0
  195. aimlapi/types/beta/chatkit/chat_session_history.py +3 -0
  196. aimlapi/types/beta/chatkit/chat_session_rate_limits.py +3 -0
  197. aimlapi/types/beta/chatkit/chat_session_rate_limits_param.py +3 -0
  198. aimlapi/types/beta/chatkit/chat_session_status.py +3 -0
  199. aimlapi/types/beta/chatkit/chat_session_workflow_param.py +3 -0
  200. aimlapi/types/beta/chatkit/chatkit_attachment.py +3 -0
  201. aimlapi/types/beta/chatkit/chatkit_response_output_text.py +3 -0
  202. aimlapi/types/beta/chatkit/chatkit_thread.py +3 -0
  203. aimlapi/types/beta/chatkit/chatkit_thread_assistant_message_item.py +3 -0
  204. aimlapi/types/beta/chatkit/chatkit_thread_item_list.py +3 -0
  205. aimlapi/types/beta/chatkit/chatkit_thread_user_message_item.py +3 -0
  206. aimlapi/types/beta/chatkit/chatkit_widget_item.py +3 -0
  207. aimlapi/types/beta/chatkit/session_create_params.py +3 -0
  208. aimlapi/types/beta/chatkit/thread_delete_response.py +3 -0
  209. aimlapi/types/beta/chatkit/thread_list_items_params.py +3 -0
  210. aimlapi/types/beta/chatkit/thread_list_params.py +3 -0
  211. aimlapi/types/beta/chatkit_workflow.py +3 -0
  212. aimlapi/types/beta/code_interpreter_tool.py +3 -0
  213. aimlapi/types/beta/code_interpreter_tool_param.py +3 -0
  214. aimlapi/types/beta/file_search_tool.py +3 -0
  215. aimlapi/types/beta/file_search_tool_param.py +3 -0
  216. aimlapi/types/beta/function_tool.py +3 -0
  217. aimlapi/types/beta/function_tool_param.py +3 -0
  218. aimlapi/types/beta/realtime/__init__.py +3 -0
  219. aimlapi/types/beta/realtime/conversation_created_event.py +3 -0
  220. aimlapi/types/beta/realtime/conversation_item.py +3 -0
  221. aimlapi/types/beta/realtime/conversation_item_content.py +3 -0
  222. aimlapi/types/beta/realtime/conversation_item_content_param.py +3 -0
  223. aimlapi/types/beta/realtime/conversation_item_create_event.py +3 -0
  224. aimlapi/types/beta/realtime/conversation_item_create_event_param.py +3 -0
  225. aimlapi/types/beta/realtime/conversation_item_created_event.py +3 -0
  226. aimlapi/types/beta/realtime/conversation_item_delete_event.py +3 -0
  227. aimlapi/types/beta/realtime/conversation_item_delete_event_param.py +3 -0
  228. aimlapi/types/beta/realtime/conversation_item_deleted_event.py +3 -0
  229. aimlapi/types/beta/realtime/conversation_item_input_audio_transcription_completed_event.py +3 -0
  230. aimlapi/types/beta/realtime/conversation_item_input_audio_transcription_delta_event.py +3 -0
  231. aimlapi/types/beta/realtime/conversation_item_input_audio_transcription_failed_event.py +3 -0
  232. aimlapi/types/beta/realtime/conversation_item_param.py +3 -0
  233. aimlapi/types/beta/realtime/conversation_item_retrieve_event.py +3 -0
  234. aimlapi/types/beta/realtime/conversation_item_retrieve_event_param.py +3 -0
  235. aimlapi/types/beta/realtime/conversation_item_truncate_event.py +3 -0
  236. aimlapi/types/beta/realtime/conversation_item_truncate_event_param.py +3 -0
  237. aimlapi/types/beta/realtime/conversation_item_truncated_event.py +3 -0
  238. aimlapi/types/beta/realtime/conversation_item_with_reference.py +3 -0
  239. aimlapi/types/beta/realtime/conversation_item_with_reference_param.py +3 -0
  240. aimlapi/types/beta/realtime/error_event.py +3 -0
  241. aimlapi/types/beta/realtime/input_audio_buffer_append_event.py +3 -0
  242. aimlapi/types/beta/realtime/input_audio_buffer_append_event_param.py +3 -0
  243. aimlapi/types/beta/realtime/input_audio_buffer_clear_event.py +3 -0
  244. aimlapi/types/beta/realtime/input_audio_buffer_clear_event_param.py +3 -0
  245. aimlapi/types/beta/realtime/input_audio_buffer_cleared_event.py +3 -0
  246. aimlapi/types/beta/realtime/input_audio_buffer_commit_event.py +3 -0
  247. aimlapi/types/beta/realtime/input_audio_buffer_commit_event_param.py +3 -0
  248. aimlapi/types/beta/realtime/input_audio_buffer_committed_event.py +3 -0
  249. aimlapi/types/beta/realtime/input_audio_buffer_speech_started_event.py +3 -0
  250. aimlapi/types/beta/realtime/input_audio_buffer_speech_stopped_event.py +3 -0
  251. aimlapi/types/beta/realtime/rate_limits_updated_event.py +3 -0
  252. aimlapi/types/beta/realtime/realtime_client_event.py +3 -0
  253. aimlapi/types/beta/realtime/realtime_client_event_param.py +3 -0
  254. aimlapi/types/beta/realtime/realtime_connect_params.py +3 -0
  255. aimlapi/types/beta/realtime/realtime_response.py +3 -0
  256. aimlapi/types/beta/realtime/realtime_response_status.py +3 -0
  257. aimlapi/types/beta/realtime/realtime_response_usage.py +3 -0
  258. aimlapi/types/beta/realtime/realtime_server_event.py +3 -0
  259. aimlapi/types/beta/realtime/response_audio_delta_event.py +3 -0
  260. aimlapi/types/beta/realtime/response_audio_done_event.py +3 -0
  261. aimlapi/types/beta/realtime/response_audio_transcript_delta_event.py +3 -0
  262. aimlapi/types/beta/realtime/response_audio_transcript_done_event.py +3 -0
  263. aimlapi/types/beta/realtime/response_cancel_event.py +3 -0
  264. aimlapi/types/beta/realtime/response_cancel_event_param.py +3 -0
  265. aimlapi/types/beta/realtime/response_content_part_added_event.py +3 -0
  266. aimlapi/types/beta/realtime/response_content_part_done_event.py +3 -0
  267. aimlapi/types/beta/realtime/response_create_event.py +3 -0
  268. aimlapi/types/beta/realtime/response_create_event_param.py +3 -0
  269. aimlapi/types/beta/realtime/response_created_event.py +3 -0
  270. aimlapi/types/beta/realtime/response_done_event.py +3 -0
  271. aimlapi/types/beta/realtime/response_function_call_arguments_delta_event.py +3 -0
  272. aimlapi/types/beta/realtime/response_function_call_arguments_done_event.py +3 -0
  273. aimlapi/types/beta/realtime/response_output_item_added_event.py +3 -0
  274. aimlapi/types/beta/realtime/response_output_item_done_event.py +3 -0
  275. aimlapi/types/beta/realtime/response_text_delta_event.py +3 -0
  276. aimlapi/types/beta/realtime/response_text_done_event.py +3 -0
  277. aimlapi/types/beta/realtime/session.py +3 -0
  278. aimlapi/types/beta/realtime/session_create_params.py +3 -0
  279. aimlapi/types/beta/realtime/session_create_response.py +3 -0
  280. aimlapi/types/beta/realtime/session_created_event.py +3 -0
  281. aimlapi/types/beta/realtime/session_update_event.py +3 -0
  282. aimlapi/types/beta/realtime/session_update_event_param.py +3 -0
  283. aimlapi/types/beta/realtime/session_updated_event.py +3 -0
  284. aimlapi/types/beta/realtime/transcription_session.py +3 -0
  285. aimlapi/types/beta/realtime/transcription_session_create_params.py +3 -0
  286. aimlapi/types/beta/realtime/transcription_session_update.py +3 -0
  287. aimlapi/types/beta/realtime/transcription_session_update_param.py +3 -0
  288. aimlapi/types/beta/realtime/transcription_session_updated_event.py +3 -0
  289. aimlapi/types/beta/thread.py +3 -0
  290. aimlapi/types/beta/thread_create_and_run_params.py +3 -0
  291. aimlapi/types/beta/thread_create_params.py +3 -0
  292. aimlapi/types/beta/thread_deleted.py +3 -0
  293. aimlapi/types/beta/thread_update_params.py +3 -0
  294. aimlapi/types/beta/threads/__init__.py +3 -0
  295. aimlapi/types/beta/threads/annotation.py +3 -0
  296. aimlapi/types/beta/threads/annotation_delta.py +3 -0
  297. aimlapi/types/beta/threads/file_citation_annotation.py +3 -0
  298. aimlapi/types/beta/threads/file_citation_delta_annotation.py +3 -0
  299. aimlapi/types/beta/threads/file_path_annotation.py +3 -0
  300. aimlapi/types/beta/threads/file_path_delta_annotation.py +3 -0
  301. aimlapi/types/beta/threads/image_file.py +3 -0
  302. aimlapi/types/beta/threads/image_file_content_block.py +3 -0
  303. aimlapi/types/beta/threads/image_file_content_block_param.py +3 -0
  304. aimlapi/types/beta/threads/image_file_delta.py +3 -0
  305. aimlapi/types/beta/threads/image_file_delta_block.py +3 -0
  306. aimlapi/types/beta/threads/image_file_param.py +3 -0
  307. aimlapi/types/beta/threads/image_url.py +3 -0
  308. aimlapi/types/beta/threads/image_url_content_block.py +3 -0
  309. aimlapi/types/beta/threads/image_url_content_block_param.py +3 -0
  310. aimlapi/types/beta/threads/image_url_delta.py +3 -0
  311. aimlapi/types/beta/threads/image_url_delta_block.py +3 -0
  312. aimlapi/types/beta/threads/image_url_param.py +3 -0
  313. aimlapi/types/beta/threads/message.py +3 -0
  314. aimlapi/types/beta/threads/message_content.py +3 -0
  315. aimlapi/types/beta/threads/message_content_delta.py +3 -0
  316. aimlapi/types/beta/threads/message_content_part_param.py +3 -0
  317. aimlapi/types/beta/threads/message_create_params.py +3 -0
  318. aimlapi/types/beta/threads/message_deleted.py +3 -0
  319. aimlapi/types/beta/threads/message_delta.py +3 -0
  320. aimlapi/types/beta/threads/message_delta_event.py +3 -0
  321. aimlapi/types/beta/threads/message_list_params.py +3 -0
  322. aimlapi/types/beta/threads/message_update_params.py +3 -0
  323. aimlapi/types/beta/threads/refusal_content_block.py +3 -0
  324. aimlapi/types/beta/threads/refusal_delta_block.py +3 -0
  325. aimlapi/types/beta/threads/required_action_function_tool_call.py +3 -0
  326. aimlapi/types/beta/threads/run.py +3 -0
  327. aimlapi/types/beta/threads/run_create_params.py +3 -0
  328. aimlapi/types/beta/threads/run_list_params.py +3 -0
  329. aimlapi/types/beta/threads/run_status.py +3 -0
  330. aimlapi/types/beta/threads/run_submit_tool_outputs_params.py +3 -0
  331. aimlapi/types/beta/threads/run_update_params.py +3 -0
  332. aimlapi/types/beta/threads/runs/__init__.py +3 -0
  333. aimlapi/types/beta/threads/runs/code_interpreter_logs.py +3 -0
  334. aimlapi/types/beta/threads/runs/code_interpreter_output_image.py +3 -0
  335. aimlapi/types/beta/threads/runs/code_interpreter_tool_call.py +3 -0
  336. aimlapi/types/beta/threads/runs/code_interpreter_tool_call_delta.py +3 -0
  337. aimlapi/types/beta/threads/runs/file_search_tool_call.py +3 -0
  338. aimlapi/types/beta/threads/runs/file_search_tool_call_delta.py +3 -0
  339. aimlapi/types/beta/threads/runs/function_tool_call.py +3 -0
  340. aimlapi/types/beta/threads/runs/function_tool_call_delta.py +3 -0
  341. aimlapi/types/beta/threads/runs/message_creation_step_details.py +3 -0
  342. aimlapi/types/beta/threads/runs/run_step.py +3 -0
  343. aimlapi/types/beta/threads/runs/run_step_delta.py +3 -0
  344. aimlapi/types/beta/threads/runs/run_step_delta_event.py +3 -0
  345. aimlapi/types/beta/threads/runs/run_step_delta_message_delta.py +3 -0
  346. aimlapi/types/beta/threads/runs/run_step_include.py +3 -0
  347. aimlapi/types/beta/threads/runs/step_list_params.py +3 -0
  348. aimlapi/types/beta/threads/runs/step_retrieve_params.py +3 -0
  349. aimlapi/types/beta/threads/runs/tool_call.py +3 -0
  350. aimlapi/types/beta/threads/runs/tool_call_delta.py +3 -0
  351. aimlapi/types/beta/threads/runs/tool_call_delta_object.py +3 -0
  352. aimlapi/types/beta/threads/runs/tool_calls_step_details.py +3 -0
  353. aimlapi/types/beta/threads/text.py +3 -0
  354. aimlapi/types/beta/threads/text_content_block.py +3 -0
  355. aimlapi/types/beta/threads/text_content_block_param.py +3 -0
  356. aimlapi/types/beta/threads/text_delta.py +3 -0
  357. aimlapi/types/beta/threads/text_delta_block.py +3 -0
  358. aimlapi/types/chat/__init__.py +3 -0
  359. aimlapi/types/chat/chat_completion.py +3 -0
  360. aimlapi/types/chat/chat_completion_allowed_tool_choice_param.py +3 -0
  361. aimlapi/types/chat/chat_completion_allowed_tools_param.py +3 -0
  362. aimlapi/types/chat/chat_completion_assistant_message_param.py +3 -0
  363. aimlapi/types/chat/chat_completion_audio.py +3 -0
  364. aimlapi/types/chat/chat_completion_audio_param.py +3 -0
  365. aimlapi/types/chat/chat_completion_chunk.py +3 -0
  366. aimlapi/types/chat/chat_completion_content_part_image.py +3 -0
  367. aimlapi/types/chat/chat_completion_content_part_image_param.py +3 -0
  368. aimlapi/types/chat/chat_completion_content_part_input_audio_param.py +3 -0
  369. aimlapi/types/chat/chat_completion_content_part_param.py +3 -0
  370. aimlapi/types/chat/chat_completion_content_part_refusal_param.py +3 -0
  371. aimlapi/types/chat/chat_completion_content_part_text.py +3 -0
  372. aimlapi/types/chat/chat_completion_content_part_text_param.py +3 -0
  373. aimlapi/types/chat/chat_completion_custom_tool_param.py +3 -0
  374. aimlapi/types/chat/chat_completion_deleted.py +3 -0
  375. aimlapi/types/chat/chat_completion_developer_message_param.py +3 -0
  376. aimlapi/types/chat/chat_completion_function_call_option_param.py +3 -0
  377. aimlapi/types/chat/chat_completion_function_message_param.py +3 -0
  378. aimlapi/types/chat/chat_completion_function_tool.py +3 -0
  379. aimlapi/types/chat/chat_completion_function_tool_param.py +3 -0
  380. aimlapi/types/chat/chat_completion_message.py +3 -0
  381. aimlapi/types/chat/chat_completion_message_custom_tool_call.py +3 -0
  382. aimlapi/types/chat/chat_completion_message_custom_tool_call_param.py +3 -0
  383. aimlapi/types/chat/chat_completion_message_function_tool_call.py +3 -0
  384. aimlapi/types/chat/chat_completion_message_function_tool_call_param.py +3 -0
  385. aimlapi/types/chat/chat_completion_message_param.py +3 -0
  386. aimlapi/types/chat/chat_completion_message_tool_call.py +3 -0
  387. aimlapi/types/chat/chat_completion_message_tool_call_param.py +3 -0
  388. aimlapi/types/chat/chat_completion_message_tool_call_union_param.py +3 -0
  389. aimlapi/types/chat/chat_completion_modality.py +3 -0
  390. aimlapi/types/chat/chat_completion_named_tool_choice_custom_param.py +3 -0
  391. aimlapi/types/chat/chat_completion_named_tool_choice_param.py +3 -0
  392. aimlapi/types/chat/chat_completion_prediction_content_param.py +3 -0
  393. aimlapi/types/chat/chat_completion_reasoning_effort.py +3 -0
  394. aimlapi/types/chat/chat_completion_role.py +3 -0
  395. aimlapi/types/chat/chat_completion_store_message.py +3 -0
  396. aimlapi/types/chat/chat_completion_stream_options_param.py +3 -0
  397. aimlapi/types/chat/chat_completion_system_message_param.py +3 -0
  398. aimlapi/types/chat/chat_completion_token_logprob.py +3 -0
  399. aimlapi/types/chat/chat_completion_tool_choice_option_param.py +3 -0
  400. aimlapi/types/chat/chat_completion_tool_message_param.py +3 -0
  401. aimlapi/types/chat/chat_completion_tool_param.py +3 -0
  402. aimlapi/types/chat/chat_completion_tool_union_param.py +3 -0
  403. aimlapi/types/chat/chat_completion_user_message_param.py +3 -0
  404. aimlapi/types/chat/completion_create_params.py +3 -0
  405. aimlapi/types/chat/completion_list_params.py +3 -0
  406. aimlapi/types/chat/completion_update_params.py +3 -0
  407. aimlapi/types/chat/completions/__init__.py +3 -0
  408. aimlapi/types/chat/completions/message_list_params.py +3 -0
  409. aimlapi/types/chat/parsed_chat_completion.py +3 -0
  410. aimlapi/types/chat/parsed_function_tool_call.py +3 -0
  411. aimlapi/types/chat_model.py +3 -0
  412. aimlapi/types/completion.py +3 -0
  413. aimlapi/types/completion_choice.py +3 -0
  414. aimlapi/types/completion_create_params.py +3 -0
  415. aimlapi/types/completion_usage.py +3 -0
  416. aimlapi/types/container_create_params.py +3 -0
  417. aimlapi/types/container_create_response.py +3 -0
  418. aimlapi/types/container_list_params.py +3 -0
  419. aimlapi/types/container_list_response.py +3 -0
  420. aimlapi/types/container_retrieve_response.py +3 -0
  421. aimlapi/types/containers/__init__.py +3 -0
  422. aimlapi/types/containers/file_create_params.py +3 -0
  423. aimlapi/types/containers/file_create_response.py +3 -0
  424. aimlapi/types/containers/file_list_params.py +3 -0
  425. aimlapi/types/containers/file_list_response.py +3 -0
  426. aimlapi/types/containers/file_retrieve_response.py +3 -0
  427. aimlapi/types/containers/files/__init__.py +3 -0
  428. aimlapi/types/conversations/__init__.py +3 -0
  429. aimlapi/types/conversations/computer_screenshot_content.py +3 -0
  430. aimlapi/types/conversations/conversation.py +3 -0
  431. aimlapi/types/conversations/conversation_create_params.py +3 -0
  432. aimlapi/types/conversations/conversation_deleted_resource.py +3 -0
  433. aimlapi/types/conversations/conversation_item.py +3 -0
  434. aimlapi/types/conversations/conversation_item_list.py +3 -0
  435. aimlapi/types/conversations/conversation_update_params.py +3 -0
  436. aimlapi/types/conversations/input_file_content.py +3 -0
  437. aimlapi/types/conversations/input_file_content_param.py +3 -0
  438. aimlapi/types/conversations/input_image_content.py +3 -0
  439. aimlapi/types/conversations/input_image_content_param.py +3 -0
  440. aimlapi/types/conversations/input_text_content.py +3 -0
  441. aimlapi/types/conversations/input_text_content_param.py +3 -0
  442. aimlapi/types/conversations/item_create_params.py +3 -0
  443. aimlapi/types/conversations/item_list_params.py +3 -0
  444. aimlapi/types/conversations/item_retrieve_params.py +3 -0
  445. aimlapi/types/conversations/message.py +3 -0
  446. aimlapi/types/conversations/output_text_content.py +3 -0
  447. aimlapi/types/conversations/output_text_content_param.py +3 -0
  448. aimlapi/types/conversations/refusal_content.py +3 -0
  449. aimlapi/types/conversations/refusal_content_param.py +3 -0
  450. aimlapi/types/conversations/summary_text_content.py +3 -0
  451. aimlapi/types/conversations/text_content.py +3 -0
  452. aimlapi/types/create_embedding_response.py +3 -0
  453. aimlapi/types/embedding.py +3 -0
  454. aimlapi/types/embedding_create_params.py +3 -0
  455. aimlapi/types/embedding_model.py +3 -0
  456. aimlapi/types/eval_create_params.py +3 -0
  457. aimlapi/types/eval_create_response.py +3 -0
  458. aimlapi/types/eval_custom_data_source_config.py +3 -0
  459. aimlapi/types/eval_delete_response.py +3 -0
  460. aimlapi/types/eval_list_params.py +3 -0
  461. aimlapi/types/eval_list_response.py +3 -0
  462. aimlapi/types/eval_retrieve_response.py +3 -0
  463. aimlapi/types/eval_stored_completions_data_source_config.py +3 -0
  464. aimlapi/types/eval_update_params.py +3 -0
  465. aimlapi/types/eval_update_response.py +3 -0
  466. aimlapi/types/evals/__init__.py +3 -0
  467. aimlapi/types/evals/create_eval_completions_run_data_source.py +3 -0
  468. aimlapi/types/evals/create_eval_completions_run_data_source_param.py +3 -0
  469. aimlapi/types/evals/create_eval_jsonl_run_data_source.py +3 -0
  470. aimlapi/types/evals/create_eval_jsonl_run_data_source_param.py +3 -0
  471. aimlapi/types/evals/eval_api_error.py +3 -0
  472. aimlapi/types/evals/run_cancel_response.py +3 -0
  473. aimlapi/types/evals/run_create_params.py +3 -0
  474. aimlapi/types/evals/run_create_response.py +3 -0
  475. aimlapi/types/evals/run_delete_response.py +3 -0
  476. aimlapi/types/evals/run_list_params.py +3 -0
  477. aimlapi/types/evals/run_list_response.py +3 -0
  478. aimlapi/types/evals/run_retrieve_response.py +3 -0
  479. aimlapi/types/evals/runs/__init__.py +3 -0
  480. aimlapi/types/evals/runs/output_item_list_params.py +3 -0
  481. aimlapi/types/evals/runs/output_item_list_response.py +3 -0
  482. aimlapi/types/evals/runs/output_item_retrieve_response.py +3 -0
  483. aimlapi/types/file_chunking_strategy.py +3 -0
  484. aimlapi/types/file_chunking_strategy_param.py +3 -0
  485. aimlapi/types/file_content.py +3 -0
  486. aimlapi/types/file_create_params.py +3 -0
  487. aimlapi/types/file_deleted.py +3 -0
  488. aimlapi/types/file_list_params.py +3 -0
  489. aimlapi/types/file_object.py +3 -0
  490. aimlapi/types/file_purpose.py +3 -0
  491. aimlapi/types/fine_tuning/__init__.py +3 -0
  492. aimlapi/types/fine_tuning/alpha/__init__.py +3 -0
  493. aimlapi/types/fine_tuning/alpha/grader_run_params.py +3 -0
  494. aimlapi/types/fine_tuning/alpha/grader_run_response.py +3 -0
  495. aimlapi/types/fine_tuning/alpha/grader_validate_params.py +3 -0
  496. aimlapi/types/fine_tuning/alpha/grader_validate_response.py +3 -0
  497. aimlapi/types/fine_tuning/checkpoints/__init__.py +3 -0
  498. aimlapi/types/fine_tuning/checkpoints/permission_create_params.py +3 -0
  499. aimlapi/types/fine_tuning/checkpoints/permission_create_response.py +3 -0
  500. aimlapi/types/fine_tuning/checkpoints/permission_delete_response.py +3 -0
  501. aimlapi/types/fine_tuning/checkpoints/permission_retrieve_params.py +3 -0
  502. aimlapi/types/fine_tuning/checkpoints/permission_retrieve_response.py +3 -0
  503. aimlapi/types/fine_tuning/dpo_hyperparameters.py +3 -0
  504. aimlapi/types/fine_tuning/dpo_hyperparameters_param.py +3 -0
  505. aimlapi/types/fine_tuning/dpo_method.py +3 -0
  506. aimlapi/types/fine_tuning/dpo_method_param.py +3 -0
  507. aimlapi/types/fine_tuning/fine_tuning_job.py +3 -0
  508. aimlapi/types/fine_tuning/fine_tuning_job_event.py +3 -0
  509. aimlapi/types/fine_tuning/fine_tuning_job_integration.py +3 -0
  510. aimlapi/types/fine_tuning/fine_tuning_job_wandb_integration.py +3 -0
  511. aimlapi/types/fine_tuning/fine_tuning_job_wandb_integration_object.py +3 -0
  512. aimlapi/types/fine_tuning/job_create_params.py +3 -0
  513. aimlapi/types/fine_tuning/job_list_events_params.py +3 -0
  514. aimlapi/types/fine_tuning/job_list_params.py +3 -0
  515. aimlapi/types/fine_tuning/jobs/__init__.py +3 -0
  516. aimlapi/types/fine_tuning/jobs/checkpoint_list_params.py +3 -0
  517. aimlapi/types/fine_tuning/jobs/fine_tuning_job_checkpoint.py +3 -0
  518. aimlapi/types/fine_tuning/reinforcement_hyperparameters.py +3 -0
  519. aimlapi/types/fine_tuning/reinforcement_hyperparameters_param.py +3 -0
  520. aimlapi/types/fine_tuning/reinforcement_method.py +3 -0
  521. aimlapi/types/fine_tuning/reinforcement_method_param.py +3 -0
  522. aimlapi/types/fine_tuning/supervised_hyperparameters.py +3 -0
  523. aimlapi/types/fine_tuning/supervised_hyperparameters_param.py +3 -0
  524. aimlapi/types/fine_tuning/supervised_method.py +3 -0
  525. aimlapi/types/fine_tuning/supervised_method_param.py +3 -0
  526. aimlapi/types/graders/__init__.py +3 -0
  527. aimlapi/types/graders/label_model_grader.py +3 -0
  528. aimlapi/types/graders/label_model_grader_param.py +3 -0
  529. aimlapi/types/graders/multi_grader.py +3 -0
  530. aimlapi/types/graders/multi_grader_param.py +3 -0
  531. aimlapi/types/graders/python_grader.py +3 -0
  532. aimlapi/types/graders/python_grader_param.py +3 -0
  533. aimlapi/types/graders/score_model_grader.py +3 -0
  534. aimlapi/types/graders/score_model_grader_param.py +3 -0
  535. aimlapi/types/graders/string_check_grader.py +3 -0
  536. aimlapi/types/graders/string_check_grader_param.py +3 -0
  537. aimlapi/types/graders/text_similarity_grader.py +3 -0
  538. aimlapi/types/graders/text_similarity_grader_param.py +3 -0
  539. aimlapi/types/image.py +3 -0
  540. aimlapi/types/image_create_variation_params.py +3 -0
  541. aimlapi/types/image_edit_completed_event.py +3 -0
  542. aimlapi/types/image_edit_params.py +3 -0
  543. aimlapi/types/image_edit_partial_image_event.py +3 -0
  544. aimlapi/types/image_edit_stream_event.py +3 -0
  545. aimlapi/types/image_gen_completed_event.py +3 -0
  546. aimlapi/types/image_gen_partial_image_event.py +3 -0
  547. aimlapi/types/image_gen_stream_event.py +3 -0
  548. aimlapi/types/image_generate_params.py +3 -0
  549. aimlapi/types/image_model.py +3 -0
  550. aimlapi/types/images_response.py +3 -0
  551. aimlapi/types/model.py +3 -0
  552. aimlapi/types/model_deleted.py +3 -0
  553. aimlapi/types/moderation.py +3 -0
  554. aimlapi/types/moderation_create_params.py +3 -0
  555. aimlapi/types/moderation_create_response.py +3 -0
  556. aimlapi/types/moderation_image_url_input_param.py +3 -0
  557. aimlapi/types/moderation_model.py +3 -0
  558. aimlapi/types/moderation_multi_modal_input_param.py +3 -0
  559. aimlapi/types/moderation_text_input_param.py +3 -0
  560. aimlapi/types/other_file_chunking_strategy_object.py +3 -0
  561. aimlapi/types/realtime/__init__.py +3 -0
  562. aimlapi/types/realtime/audio_transcription.py +3 -0
  563. aimlapi/types/realtime/audio_transcription_param.py +3 -0
  564. aimlapi/types/realtime/call_accept_params.py +3 -0
  565. aimlapi/types/realtime/call_create_params.py +3 -0
  566. aimlapi/types/realtime/call_refer_params.py +3 -0
  567. aimlapi/types/realtime/call_reject_params.py +3 -0
  568. aimlapi/types/realtime/client_secret_create_params.py +3 -0
  569. aimlapi/types/realtime/client_secret_create_response.py +3 -0
  570. aimlapi/types/realtime/conversation_created_event.py +3 -0
  571. aimlapi/types/realtime/conversation_item.py +3 -0
  572. aimlapi/types/realtime/conversation_item_added.py +3 -0
  573. aimlapi/types/realtime/conversation_item_create_event.py +3 -0
  574. aimlapi/types/realtime/conversation_item_create_event_param.py +3 -0
  575. aimlapi/types/realtime/conversation_item_created_event.py +3 -0
  576. aimlapi/types/realtime/conversation_item_delete_event.py +3 -0
  577. aimlapi/types/realtime/conversation_item_delete_event_param.py +3 -0
  578. aimlapi/types/realtime/conversation_item_deleted_event.py +3 -0
  579. aimlapi/types/realtime/conversation_item_done.py +3 -0
  580. aimlapi/types/realtime/conversation_item_input_audio_transcription_completed_event.py +3 -0
  581. aimlapi/types/realtime/conversation_item_input_audio_transcription_delta_event.py +3 -0
  582. aimlapi/types/realtime/conversation_item_input_audio_transcription_failed_event.py +3 -0
  583. aimlapi/types/realtime/conversation_item_input_audio_transcription_segment.py +3 -0
  584. aimlapi/types/realtime/conversation_item_param.py +3 -0
  585. aimlapi/types/realtime/conversation_item_retrieve_event.py +3 -0
  586. aimlapi/types/realtime/conversation_item_retrieve_event_param.py +3 -0
  587. aimlapi/types/realtime/conversation_item_truncate_event.py +3 -0
  588. aimlapi/types/realtime/conversation_item_truncate_event_param.py +3 -0
  589. aimlapi/types/realtime/conversation_item_truncated_event.py +3 -0
  590. aimlapi/types/realtime/input_audio_buffer_append_event.py +3 -0
  591. aimlapi/types/realtime/input_audio_buffer_append_event_param.py +3 -0
  592. aimlapi/types/realtime/input_audio_buffer_clear_event.py +3 -0
  593. aimlapi/types/realtime/input_audio_buffer_clear_event_param.py +3 -0
  594. aimlapi/types/realtime/input_audio_buffer_cleared_event.py +3 -0
  595. aimlapi/types/realtime/input_audio_buffer_commit_event.py +3 -0
  596. aimlapi/types/realtime/input_audio_buffer_commit_event_param.py +3 -0
  597. aimlapi/types/realtime/input_audio_buffer_committed_event.py +3 -0
  598. aimlapi/types/realtime/input_audio_buffer_speech_started_event.py +3 -0
  599. aimlapi/types/realtime/input_audio_buffer_speech_stopped_event.py +3 -0
  600. aimlapi/types/realtime/input_audio_buffer_timeout_triggered.py +3 -0
  601. aimlapi/types/realtime/log_prob_properties.py +3 -0
  602. aimlapi/types/realtime/mcp_list_tools_completed.py +3 -0
  603. aimlapi/types/realtime/mcp_list_tools_failed.py +3 -0
  604. aimlapi/types/realtime/mcp_list_tools_in_progress.py +3 -0
  605. aimlapi/types/realtime/noise_reduction_type.py +3 -0
  606. aimlapi/types/realtime/output_audio_buffer_clear_event.py +3 -0
  607. aimlapi/types/realtime/output_audio_buffer_clear_event_param.py +3 -0
  608. aimlapi/types/realtime/rate_limits_updated_event.py +3 -0
  609. aimlapi/types/realtime/realtime_audio_config.py +3 -0
  610. aimlapi/types/realtime/realtime_audio_config_input.py +3 -0
  611. aimlapi/types/realtime/realtime_audio_config_input_param.py +3 -0
  612. aimlapi/types/realtime/realtime_audio_config_output.py +3 -0
  613. aimlapi/types/realtime/realtime_audio_config_output_param.py +3 -0
  614. aimlapi/types/realtime/realtime_audio_config_param.py +3 -0
  615. aimlapi/types/realtime/realtime_audio_formats.py +3 -0
  616. aimlapi/types/realtime/realtime_audio_formats_param.py +3 -0
  617. aimlapi/types/realtime/realtime_audio_input_turn_detection.py +3 -0
  618. aimlapi/types/realtime/realtime_audio_input_turn_detection_param.py +3 -0
  619. aimlapi/types/realtime/realtime_client_event.py +3 -0
  620. aimlapi/types/realtime/realtime_client_event_param.py +3 -0
  621. aimlapi/types/realtime/realtime_connect_params.py +3 -0
  622. aimlapi/types/realtime/realtime_conversation_item_assistant_message.py +3 -0
  623. aimlapi/types/realtime/realtime_conversation_item_assistant_message_param.py +3 -0
  624. aimlapi/types/realtime/realtime_conversation_item_function_call.py +3 -0
  625. aimlapi/types/realtime/realtime_conversation_item_function_call_output.py +3 -0
  626. aimlapi/types/realtime/realtime_conversation_item_function_call_output_param.py +3 -0
  627. aimlapi/types/realtime/realtime_conversation_item_function_call_param.py +3 -0
  628. aimlapi/types/realtime/realtime_conversation_item_system_message.py +3 -0
  629. aimlapi/types/realtime/realtime_conversation_item_system_message_param.py +3 -0
  630. aimlapi/types/realtime/realtime_conversation_item_user_message.py +3 -0
  631. aimlapi/types/realtime/realtime_conversation_item_user_message_param.py +3 -0
  632. aimlapi/types/realtime/realtime_error.py +3 -0
  633. aimlapi/types/realtime/realtime_error_event.py +3 -0
  634. aimlapi/types/realtime/realtime_function_tool.py +3 -0
  635. aimlapi/types/realtime/realtime_function_tool_param.py +3 -0
  636. aimlapi/types/realtime/realtime_mcp_approval_request.py +3 -0
  637. aimlapi/types/realtime/realtime_mcp_approval_request_param.py +3 -0
  638. aimlapi/types/realtime/realtime_mcp_approval_response.py +3 -0
  639. aimlapi/types/realtime/realtime_mcp_approval_response_param.py +3 -0
  640. aimlapi/types/realtime/realtime_mcp_list_tools.py +3 -0
  641. aimlapi/types/realtime/realtime_mcp_list_tools_param.py +3 -0
  642. aimlapi/types/realtime/realtime_mcp_protocol_error.py +3 -0
  643. aimlapi/types/realtime/realtime_mcp_protocol_error_param.py +3 -0
  644. aimlapi/types/realtime/realtime_mcp_tool_call.py +3 -0
  645. aimlapi/types/realtime/realtime_mcp_tool_call_param.py +3 -0
  646. aimlapi/types/realtime/realtime_mcp_tool_execution_error.py +3 -0
  647. aimlapi/types/realtime/realtime_mcp_tool_execution_error_param.py +3 -0
  648. aimlapi/types/realtime/realtime_mcphttp_error.py +3 -0
  649. aimlapi/types/realtime/realtime_mcphttp_error_param.py +3 -0
  650. aimlapi/types/realtime/realtime_response.py +3 -0
  651. aimlapi/types/realtime/realtime_response_create_audio_output.py +3 -0
  652. aimlapi/types/realtime/realtime_response_create_audio_output_param.py +3 -0
  653. aimlapi/types/realtime/realtime_response_create_mcp_tool.py +3 -0
  654. aimlapi/types/realtime/realtime_response_create_mcp_tool_param.py +3 -0
  655. aimlapi/types/realtime/realtime_response_create_params.py +3 -0
  656. aimlapi/types/realtime/realtime_response_create_params_param.py +3 -0
  657. aimlapi/types/realtime/realtime_response_status.py +3 -0
  658. aimlapi/types/realtime/realtime_response_usage.py +3 -0
  659. aimlapi/types/realtime/realtime_response_usage_input_token_details.py +3 -0
  660. aimlapi/types/realtime/realtime_response_usage_output_token_details.py +3 -0
  661. aimlapi/types/realtime/realtime_server_event.py +3 -0
  662. aimlapi/types/realtime/realtime_session_client_secret.py +3 -0
  663. aimlapi/types/realtime/realtime_session_create_request.py +3 -0
  664. aimlapi/types/realtime/realtime_session_create_request_param.py +3 -0
  665. aimlapi/types/realtime/realtime_session_create_response.py +3 -0
  666. aimlapi/types/realtime/realtime_tool_choice_config.py +3 -0
  667. aimlapi/types/realtime/realtime_tool_choice_config_param.py +3 -0
  668. aimlapi/types/realtime/realtime_tools_config.py +3 -0
  669. aimlapi/types/realtime/realtime_tools_config_param.py +3 -0
  670. aimlapi/types/realtime/realtime_tools_config_union.py +3 -0
  671. aimlapi/types/realtime/realtime_tools_config_union_param.py +3 -0
  672. aimlapi/types/realtime/realtime_tracing_config.py +3 -0
  673. aimlapi/types/realtime/realtime_tracing_config_param.py +3 -0
  674. aimlapi/types/realtime/realtime_transcription_session_audio.py +3 -0
  675. aimlapi/types/realtime/realtime_transcription_session_audio_input.py +3 -0
  676. aimlapi/types/realtime/realtime_transcription_session_audio_input_param.py +3 -0
  677. aimlapi/types/realtime/realtime_transcription_session_audio_input_turn_detection.py +3 -0
  678. aimlapi/types/realtime/realtime_transcription_session_audio_input_turn_detection_param.py +3 -0
  679. aimlapi/types/realtime/realtime_transcription_session_audio_param.py +3 -0
  680. aimlapi/types/realtime/realtime_transcription_session_create_request.py +3 -0
  681. aimlapi/types/realtime/realtime_transcription_session_create_request_param.py +3 -0
  682. aimlapi/types/realtime/realtime_transcription_session_create_response.py +3 -0
  683. aimlapi/types/realtime/realtime_transcription_session_turn_detection.py +3 -0
  684. aimlapi/types/realtime/realtime_truncation.py +3 -0
  685. aimlapi/types/realtime/realtime_truncation_param.py +3 -0
  686. aimlapi/types/realtime/realtime_truncation_retention_ratio.py +3 -0
  687. aimlapi/types/realtime/realtime_truncation_retention_ratio_param.py +3 -0
  688. aimlapi/types/realtime/response_audio_delta_event.py +3 -0
  689. aimlapi/types/realtime/response_audio_done_event.py +3 -0
  690. aimlapi/types/realtime/response_audio_transcript_delta_event.py +3 -0
  691. aimlapi/types/realtime/response_audio_transcript_done_event.py +3 -0
  692. aimlapi/types/realtime/response_cancel_event.py +3 -0
  693. aimlapi/types/realtime/response_cancel_event_param.py +3 -0
  694. aimlapi/types/realtime/response_content_part_added_event.py +3 -0
  695. aimlapi/types/realtime/response_content_part_done_event.py +3 -0
  696. aimlapi/types/realtime/response_create_event.py +3 -0
  697. aimlapi/types/realtime/response_create_event_param.py +3 -0
  698. aimlapi/types/realtime/response_created_event.py +3 -0
  699. aimlapi/types/realtime/response_done_event.py +3 -0
  700. aimlapi/types/realtime/response_function_call_arguments_delta_event.py +3 -0
  701. aimlapi/types/realtime/response_function_call_arguments_done_event.py +3 -0
  702. aimlapi/types/realtime/response_mcp_call_arguments_delta.py +3 -0
  703. aimlapi/types/realtime/response_mcp_call_arguments_done.py +3 -0
  704. aimlapi/types/realtime/response_mcp_call_completed.py +3 -0
  705. aimlapi/types/realtime/response_mcp_call_failed.py +3 -0
  706. aimlapi/types/realtime/response_mcp_call_in_progress.py +3 -0
  707. aimlapi/types/realtime/response_output_item_added_event.py +3 -0
  708. aimlapi/types/realtime/response_output_item_done_event.py +3 -0
  709. aimlapi/types/realtime/response_text_delta_event.py +3 -0
  710. aimlapi/types/realtime/response_text_done_event.py +3 -0
  711. aimlapi/types/realtime/session_created_event.py +3 -0
  712. aimlapi/types/realtime/session_update_event.py +3 -0
  713. aimlapi/types/realtime/session_update_event_param.py +3 -0
  714. aimlapi/types/realtime/session_updated_event.py +3 -0
  715. aimlapi/types/responses/__init__.py +3 -0
  716. aimlapi/types/responses/computer_tool.py +3 -0
  717. aimlapi/types/responses/computer_tool_param.py +3 -0
  718. aimlapi/types/responses/custom_tool.py +3 -0
  719. aimlapi/types/responses/custom_tool_param.py +3 -0
  720. aimlapi/types/responses/easy_input_message.py +3 -0
  721. aimlapi/types/responses/easy_input_message_param.py +3 -0
  722. aimlapi/types/responses/file_search_tool.py +3 -0
  723. aimlapi/types/responses/file_search_tool_param.py +3 -0
  724. aimlapi/types/responses/function_tool.py +3 -0
  725. aimlapi/types/responses/function_tool_param.py +3 -0
  726. aimlapi/types/responses/input_item_list_params.py +3 -0
  727. aimlapi/types/responses/input_token_count_params.py +3 -0
  728. aimlapi/types/responses/input_token_count_response.py +3 -0
  729. aimlapi/types/responses/parsed_response.py +3 -0
  730. aimlapi/types/responses/response.py +3 -0
  731. aimlapi/types/responses/response_audio_delta_event.py +3 -0
  732. aimlapi/types/responses/response_audio_done_event.py +3 -0
  733. aimlapi/types/responses/response_audio_transcript_delta_event.py +3 -0
  734. aimlapi/types/responses/response_audio_transcript_done_event.py +3 -0
  735. aimlapi/types/responses/response_code_interpreter_call_code_delta_event.py +3 -0
  736. aimlapi/types/responses/response_code_interpreter_call_code_done_event.py +3 -0
  737. aimlapi/types/responses/response_code_interpreter_call_completed_event.py +3 -0
  738. aimlapi/types/responses/response_code_interpreter_call_in_progress_event.py +3 -0
  739. aimlapi/types/responses/response_code_interpreter_call_interpreting_event.py +3 -0
  740. aimlapi/types/responses/response_code_interpreter_tool_call.py +3 -0
  741. aimlapi/types/responses/response_code_interpreter_tool_call_param.py +3 -0
  742. aimlapi/types/responses/response_completed_event.py +3 -0
  743. aimlapi/types/responses/response_computer_tool_call.py +3 -0
  744. aimlapi/types/responses/response_computer_tool_call_output_item.py +3 -0
  745. aimlapi/types/responses/response_computer_tool_call_output_screenshot.py +3 -0
  746. aimlapi/types/responses/response_computer_tool_call_output_screenshot_param.py +3 -0
  747. aimlapi/types/responses/response_computer_tool_call_param.py +3 -0
  748. aimlapi/types/responses/response_content_part_added_event.py +3 -0
  749. aimlapi/types/responses/response_content_part_done_event.py +3 -0
  750. aimlapi/types/responses/response_conversation_param.py +3 -0
  751. aimlapi/types/responses/response_create_params.py +3 -0
  752. aimlapi/types/responses/response_created_event.py +3 -0
  753. aimlapi/types/responses/response_custom_tool_call.py +3 -0
  754. aimlapi/types/responses/response_custom_tool_call_input_delta_event.py +3 -0
  755. aimlapi/types/responses/response_custom_tool_call_input_done_event.py +3 -0
  756. aimlapi/types/responses/response_custom_tool_call_output.py +3 -0
  757. aimlapi/types/responses/response_custom_tool_call_output_param.py +3 -0
  758. aimlapi/types/responses/response_custom_tool_call_param.py +3 -0
  759. aimlapi/types/responses/response_error.py +3 -0
  760. aimlapi/types/responses/response_error_event.py +3 -0
  761. aimlapi/types/responses/response_failed_event.py +3 -0
  762. aimlapi/types/responses/response_file_search_call_completed_event.py +3 -0
  763. aimlapi/types/responses/response_file_search_call_in_progress_event.py +3 -0
  764. aimlapi/types/responses/response_file_search_call_searching_event.py +3 -0
  765. aimlapi/types/responses/response_file_search_tool_call.py +3 -0
  766. aimlapi/types/responses/response_file_search_tool_call_param.py +3 -0
  767. aimlapi/types/responses/response_format_text_config.py +3 -0
  768. aimlapi/types/responses/response_format_text_config_param.py +3 -0
  769. aimlapi/types/responses/response_format_text_json_schema_config.py +3 -0
  770. aimlapi/types/responses/response_format_text_json_schema_config_param.py +3 -0
  771. aimlapi/types/responses/response_function_call_arguments_delta_event.py +3 -0
  772. aimlapi/types/responses/response_function_call_arguments_done_event.py +3 -0
  773. aimlapi/types/responses/response_function_call_output_item.py +3 -0
  774. aimlapi/types/responses/response_function_call_output_item_list.py +3 -0
  775. aimlapi/types/responses/response_function_call_output_item_list_param.py +3 -0
  776. aimlapi/types/responses/response_function_call_output_item_param.py +3 -0
  777. aimlapi/types/responses/response_function_tool_call.py +3 -0
  778. aimlapi/types/responses/response_function_tool_call_item.py +3 -0
  779. aimlapi/types/responses/response_function_tool_call_output_item.py +3 -0
  780. aimlapi/types/responses/response_function_tool_call_param.py +3 -0
  781. aimlapi/types/responses/response_function_web_search.py +3 -0
  782. aimlapi/types/responses/response_function_web_search_param.py +3 -0
  783. aimlapi/types/responses/response_image_gen_call_completed_event.py +3 -0
  784. aimlapi/types/responses/response_image_gen_call_generating_event.py +3 -0
  785. aimlapi/types/responses/response_image_gen_call_in_progress_event.py +3 -0
  786. aimlapi/types/responses/response_image_gen_call_partial_image_event.py +3 -0
  787. aimlapi/types/responses/response_in_progress_event.py +3 -0
  788. aimlapi/types/responses/response_includable.py +3 -0
  789. aimlapi/types/responses/response_incomplete_event.py +3 -0
  790. aimlapi/types/responses/response_input_audio.py +3 -0
  791. aimlapi/types/responses/response_input_audio_param.py +3 -0
  792. aimlapi/types/responses/response_input_content.py +3 -0
  793. aimlapi/types/responses/response_input_content_param.py +3 -0
  794. aimlapi/types/responses/response_input_file.py +3 -0
  795. aimlapi/types/responses/response_input_file_content.py +3 -0
  796. aimlapi/types/responses/response_input_file_content_param.py +3 -0
  797. aimlapi/types/responses/response_input_file_param.py +3 -0
  798. aimlapi/types/responses/response_input_image.py +3 -0
  799. aimlapi/types/responses/response_input_image_content.py +3 -0
  800. aimlapi/types/responses/response_input_image_content_param.py +3 -0
  801. aimlapi/types/responses/response_input_image_param.py +3 -0
  802. aimlapi/types/responses/response_input_item.py +3 -0
  803. aimlapi/types/responses/response_input_item_param.py +3 -0
  804. aimlapi/types/responses/response_input_message_content_list.py +3 -0
  805. aimlapi/types/responses/response_input_message_content_list_param.py +3 -0
  806. aimlapi/types/responses/response_input_message_item.py +3 -0
  807. aimlapi/types/responses/response_input_param.py +3 -0
  808. aimlapi/types/responses/response_input_text.py +3 -0
  809. aimlapi/types/responses/response_input_text_content.py +3 -0
  810. aimlapi/types/responses/response_input_text_content_param.py +3 -0
  811. aimlapi/types/responses/response_input_text_param.py +3 -0
  812. aimlapi/types/responses/response_item.py +3 -0
  813. aimlapi/types/responses/response_item_list.py +3 -0
  814. aimlapi/types/responses/response_mcp_call_arguments_delta_event.py +3 -0
  815. aimlapi/types/responses/response_mcp_call_arguments_done_event.py +3 -0
  816. aimlapi/types/responses/response_mcp_call_completed_event.py +3 -0
  817. aimlapi/types/responses/response_mcp_call_failed_event.py +3 -0
  818. aimlapi/types/responses/response_mcp_call_in_progress_event.py +3 -0
  819. aimlapi/types/responses/response_mcp_list_tools_completed_event.py +3 -0
  820. aimlapi/types/responses/response_mcp_list_tools_failed_event.py +3 -0
  821. aimlapi/types/responses/response_mcp_list_tools_in_progress_event.py +3 -0
  822. aimlapi/types/responses/response_output_item.py +3 -0
  823. aimlapi/types/responses/response_output_item_added_event.py +3 -0
  824. aimlapi/types/responses/response_output_item_done_event.py +3 -0
  825. aimlapi/types/responses/response_output_message.py +3 -0
  826. aimlapi/types/responses/response_output_message_param.py +3 -0
  827. aimlapi/types/responses/response_output_refusal.py +3 -0
  828. aimlapi/types/responses/response_output_refusal_param.py +3 -0
  829. aimlapi/types/responses/response_output_text.py +3 -0
  830. aimlapi/types/responses/response_output_text_annotation_added_event.py +3 -0
  831. aimlapi/types/responses/response_output_text_param.py +3 -0
  832. aimlapi/types/responses/response_prompt.py +3 -0
  833. aimlapi/types/responses/response_prompt_param.py +3 -0
  834. aimlapi/types/responses/response_queued_event.py +3 -0
  835. aimlapi/types/responses/response_reasoning_item.py +3 -0
  836. aimlapi/types/responses/response_reasoning_item_param.py +3 -0
  837. aimlapi/types/responses/response_reasoning_summary_part_added_event.py +3 -0
  838. aimlapi/types/responses/response_reasoning_summary_part_done_event.py +3 -0
  839. aimlapi/types/responses/response_reasoning_summary_text_delta_event.py +3 -0
  840. aimlapi/types/responses/response_reasoning_summary_text_done_event.py +3 -0
  841. aimlapi/types/responses/response_reasoning_text_delta_event.py +3 -0
  842. aimlapi/types/responses/response_reasoning_text_done_event.py +3 -0
  843. aimlapi/types/responses/response_refusal_delta_event.py +3 -0
  844. aimlapi/types/responses/response_refusal_done_event.py +3 -0
  845. aimlapi/types/responses/response_retrieve_params.py +3 -0
  846. aimlapi/types/responses/response_status.py +3 -0
  847. aimlapi/types/responses/response_stream_event.py +3 -0
  848. aimlapi/types/responses/response_text_config.py +3 -0
  849. aimlapi/types/responses/response_text_config_param.py +3 -0
  850. aimlapi/types/responses/response_text_delta_event.py +3 -0
  851. aimlapi/types/responses/response_text_done_event.py +3 -0
  852. aimlapi/types/responses/response_usage.py +3 -0
  853. aimlapi/types/responses/response_web_search_call_completed_event.py +3 -0
  854. aimlapi/types/responses/response_web_search_call_in_progress_event.py +3 -0
  855. aimlapi/types/responses/response_web_search_call_searching_event.py +3 -0
  856. aimlapi/types/responses/tool.py +3 -0
  857. aimlapi/types/responses/tool_choice_allowed.py +3 -0
  858. aimlapi/types/responses/tool_choice_allowed_param.py +3 -0
  859. aimlapi/types/responses/tool_choice_custom.py +3 -0
  860. aimlapi/types/responses/tool_choice_custom_param.py +3 -0
  861. aimlapi/types/responses/tool_choice_function.py +3 -0
  862. aimlapi/types/responses/tool_choice_function_param.py +3 -0
  863. aimlapi/types/responses/tool_choice_mcp.py +3 -0
  864. aimlapi/types/responses/tool_choice_mcp_param.py +3 -0
  865. aimlapi/types/responses/tool_choice_options.py +3 -0
  866. aimlapi/types/responses/tool_choice_types.py +3 -0
  867. aimlapi/types/responses/tool_choice_types_param.py +3 -0
  868. aimlapi/types/responses/tool_param.py +3 -0
  869. aimlapi/types/responses/web_search_preview_tool.py +3 -0
  870. aimlapi/types/responses/web_search_preview_tool_param.py +3 -0
  871. aimlapi/types/responses/web_search_tool.py +3 -0
  872. aimlapi/types/responses/web_search_tool_param.py +3 -0
  873. aimlapi/types/shared/__init__.py +3 -0
  874. aimlapi/types/shared/all_models.py +3 -0
  875. aimlapi/types/shared/chat_model.py +3 -0
  876. aimlapi/types/shared/comparison_filter.py +3 -0
  877. aimlapi/types/shared/compound_filter.py +3 -0
  878. aimlapi/types/shared/custom_tool_input_format.py +3 -0
  879. aimlapi/types/shared/error_object.py +3 -0
  880. aimlapi/types/shared/function_definition.py +3 -0
  881. aimlapi/types/shared/function_parameters.py +3 -0
  882. aimlapi/types/shared/metadata.py +3 -0
  883. aimlapi/types/shared/reasoning.py +3 -0
  884. aimlapi/types/shared/reasoning_effort.py +3 -0
  885. aimlapi/types/shared/response_format_json_object.py +3 -0
  886. aimlapi/types/shared/response_format_json_schema.py +3 -0
  887. aimlapi/types/shared/response_format_text.py +3 -0
  888. aimlapi/types/shared/response_format_text_grammar.py +3 -0
  889. aimlapi/types/shared/response_format_text_python.py +3 -0
  890. aimlapi/types/shared/responses_model.py +3 -0
  891. aimlapi/types/shared_params/__init__.py +3 -0
  892. aimlapi/types/shared_params/chat_model.py +3 -0
  893. aimlapi/types/shared_params/comparison_filter.py +3 -0
  894. aimlapi/types/shared_params/compound_filter.py +3 -0
  895. aimlapi/types/shared_params/custom_tool_input_format.py +3 -0
  896. aimlapi/types/shared_params/function_definition.py +3 -0
  897. aimlapi/types/shared_params/function_parameters.py +3 -0
  898. aimlapi/types/shared_params/metadata.py +3 -0
  899. aimlapi/types/shared_params/reasoning.py +3 -0
  900. aimlapi/types/shared_params/reasoning_effort.py +3 -0
  901. aimlapi/types/shared_params/response_format_json_object.py +3 -0
  902. aimlapi/types/shared_params/response_format_json_schema.py +3 -0
  903. aimlapi/types/shared_params/response_format_text.py +3 -0
  904. aimlapi/types/shared_params/responses_model.py +3 -0
  905. aimlapi/types/static_file_chunking_strategy.py +3 -0
  906. aimlapi/types/static_file_chunking_strategy_object.py +3 -0
  907. aimlapi/types/static_file_chunking_strategy_object_param.py +3 -0
  908. aimlapi/types/static_file_chunking_strategy_param.py +3 -0
  909. aimlapi/types/upload.py +3 -0
  910. aimlapi/types/upload_complete_params.py +3 -0
  911. aimlapi/types/upload_create_params.py +3 -0
  912. aimlapi/types/uploads/__init__.py +3 -0
  913. aimlapi/types/uploads/part_create_params.py +3 -0
  914. aimlapi/types/uploads/upload_part.py +3 -0
  915. aimlapi/types/vector_store.py +3 -0
  916. aimlapi/types/vector_store_create_params.py +3 -0
  917. aimlapi/types/vector_store_deleted.py +3 -0
  918. aimlapi/types/vector_store_list_params.py +3 -0
  919. aimlapi/types/vector_store_search_params.py +3 -0
  920. aimlapi/types/vector_store_search_response.py +3 -0
  921. aimlapi/types/vector_store_update_params.py +3 -0
  922. aimlapi/types/vector_stores/__init__.py +3 -0
  923. aimlapi/types/vector_stores/file_batch_create_params.py +3 -0
  924. aimlapi/types/vector_stores/file_batch_list_files_params.py +3 -0
  925. aimlapi/types/vector_stores/file_content_response.py +3 -0
  926. aimlapi/types/vector_stores/file_create_params.py +3 -0
  927. aimlapi/types/vector_stores/file_list_params.py +3 -0
  928. aimlapi/types/vector_stores/file_update_params.py +3 -0
  929. aimlapi/types/vector_stores/vector_store_file.py +3 -0
  930. aimlapi/types/vector_stores/vector_store_file_batch.py +3 -0
  931. aimlapi/types/vector_stores/vector_store_file_deleted.py +3 -0
  932. aimlapi/types/video.py +3 -0
  933. aimlapi/types/video_create_error.py +3 -0
  934. aimlapi/types/video_create_params.py +3 -0
  935. aimlapi/types/video_delete_response.py +3 -0
  936. aimlapi/types/video_download_content_params.py +3 -0
  937. aimlapi/types/video_list_params.py +3 -0
  938. aimlapi/types/video_model.py +3 -0
  939. aimlapi/types/video_remix_params.py +3 -0
  940. aimlapi/types/video_seconds.py +3 -0
  941. aimlapi/types/video_size.py +3 -0
  942. aimlapi/types/webhooks/__init__.py +3 -0
  943. aimlapi/types/webhooks/batch_cancelled_webhook_event.py +3 -0
  944. aimlapi/types/webhooks/batch_completed_webhook_event.py +3 -0
  945. aimlapi/types/webhooks/batch_expired_webhook_event.py +3 -0
  946. aimlapi/types/webhooks/batch_failed_webhook_event.py +3 -0
  947. aimlapi/types/webhooks/eval_run_canceled_webhook_event.py +3 -0
  948. aimlapi/types/webhooks/eval_run_failed_webhook_event.py +3 -0
  949. aimlapi/types/webhooks/eval_run_succeeded_webhook_event.py +3 -0
  950. aimlapi/types/webhooks/fine_tuning_job_cancelled_webhook_event.py +3 -0
  951. aimlapi/types/webhooks/fine_tuning_job_failed_webhook_event.py +3 -0
  952. aimlapi/types/webhooks/fine_tuning_job_succeeded_webhook_event.py +3 -0
  953. aimlapi/types/webhooks/realtime_call_incoming_webhook_event.py +3 -0
  954. aimlapi/types/webhooks/response_cancelled_webhook_event.py +3 -0
  955. aimlapi/types/webhooks/response_completed_webhook_event.py +3 -0
  956. aimlapi/types/webhooks/response_failed_webhook_event.py +3 -0
  957. aimlapi/types/webhooks/response_incomplete_webhook_event.py +3 -0
  958. aimlapi/types/webhooks/unwrap_webhook_event.py +3 -0
  959. aimlapi/types/websocket_connection_options.py +3 -0
  960. aimlapi/version.py +3 -0
  961. aimlapi_sdk_python-2.8.1b0.dist-info/METADATA +886 -0
  962. aimlapi_sdk_python-2.8.1b0.dist-info/RECORD +1958 -0
  963. aimlapi_sdk_python-2.8.1b0.dist-info/WHEEL +4 -0
  964. aimlapi_sdk_python-2.8.1b0.dist-info/entry_points.txt +2 -0
  965. aimlapi_sdk_python-2.8.1b0.dist-info/licenses/LICENSE +201 -0
  966. openai/__init__.py +395 -0
  967. openai/__main__.py +3 -0
  968. openai/_base_client.py +2027 -0
  969. openai/_client.py +1272 -0
  970. openai/_compat.py +231 -0
  971. openai/_constants.py +14 -0
  972. openai/_exceptions.py +161 -0
  973. openai/_extras/__init__.py +3 -0
  974. openai/_extras/_common.py +21 -0
  975. openai/_extras/numpy_proxy.py +37 -0
  976. openai/_extras/pandas_proxy.py +28 -0
  977. openai/_extras/sounddevice_proxy.py +28 -0
  978. openai/_files.py +123 -0
  979. openai/_legacy_response.py +488 -0
  980. openai/_models.py +897 -0
  981. openai/_module_client.py +173 -0
  982. openai/_qs.py +150 -0
  983. openai/_resource.py +43 -0
  984. openai/_response.py +848 -0
  985. openai/_streaming.py +408 -0
  986. openai/_types.py +264 -0
  987. openai/_utils/__init__.py +67 -0
  988. openai/_utils/_compat.py +45 -0
  989. openai/_utils/_datetime_parse.py +136 -0
  990. openai/_utils/_logs.py +42 -0
  991. openai/_utils/_proxy.py +65 -0
  992. openai/_utils/_reflection.py +45 -0
  993. openai/_utils/_resources_proxy.py +24 -0
  994. openai/_utils/_streams.py +12 -0
  995. openai/_utils/_sync.py +58 -0
  996. openai/_utils/_transform.py +457 -0
  997. openai/_utils/_typing.py +156 -0
  998. openai/_utils/_utils.py +437 -0
  999. openai/_version.py +4 -0
  1000. openai/cli/__init__.py +1 -0
  1001. openai/cli/_api/__init__.py +1 -0
  1002. openai/cli/_api/_main.py +17 -0
  1003. openai/cli/_api/audio.py +108 -0
  1004. openai/cli/_api/chat/__init__.py +13 -0
  1005. openai/cli/_api/chat/completions.py +160 -0
  1006. openai/cli/_api/completions.py +173 -0
  1007. openai/cli/_api/files.py +80 -0
  1008. openai/cli/_api/fine_tuning/__init__.py +13 -0
  1009. openai/cli/_api/fine_tuning/jobs.py +170 -0
  1010. openai/cli/_api/image.py +139 -0
  1011. openai/cli/_api/models.py +45 -0
  1012. openai/cli/_cli.py +233 -0
  1013. openai/cli/_errors.py +21 -0
  1014. openai/cli/_models.py +17 -0
  1015. openai/cli/_progress.py +59 -0
  1016. openai/cli/_tools/__init__.py +1 -0
  1017. openai/cli/_tools/_main.py +17 -0
  1018. openai/cli/_tools/fine_tunes.py +63 -0
  1019. openai/cli/_tools/migrate.py +164 -0
  1020. openai/cli/_utils.py +45 -0
  1021. openai/helpers/__init__.py +4 -0
  1022. openai/helpers/local_audio_player.py +165 -0
  1023. openai/helpers/microphone.py +100 -0
  1024. openai/lib/.keep +4 -0
  1025. openai/lib/__init__.py +2 -0
  1026. openai/lib/_old_api.py +72 -0
  1027. openai/lib/_parsing/__init__.py +12 -0
  1028. openai/lib/_parsing/_completions.py +305 -0
  1029. openai/lib/_parsing/_responses.py +180 -0
  1030. openai/lib/_pydantic.py +155 -0
  1031. openai/lib/_realtime.py +92 -0
  1032. openai/lib/_tools.py +66 -0
  1033. openai/lib/_validators.py +809 -0
  1034. openai/lib/azure.py +647 -0
  1035. openai/lib/streaming/__init__.py +8 -0
  1036. openai/lib/streaming/_assistants.py +1038 -0
  1037. openai/lib/streaming/_deltas.py +64 -0
  1038. openai/lib/streaming/chat/__init__.py +27 -0
  1039. openai/lib/streaming/chat/_completions.py +770 -0
  1040. openai/lib/streaming/chat/_events.py +123 -0
  1041. openai/lib/streaming/chat/_types.py +20 -0
  1042. openai/lib/streaming/responses/__init__.py +13 -0
  1043. openai/lib/streaming/responses/_events.py +148 -0
  1044. openai/lib/streaming/responses/_responses.py +372 -0
  1045. openai/lib/streaming/responses/_types.py +10 -0
  1046. openai/pagination.py +190 -0
  1047. openai/py.typed +0 -0
  1048. openai/resources/__init__.py +229 -0
  1049. openai/resources/audio/__init__.py +61 -0
  1050. openai/resources/audio/audio.py +166 -0
  1051. openai/resources/audio/speech.py +255 -0
  1052. openai/resources/audio/transcriptions.py +980 -0
  1053. openai/resources/audio/translations.py +367 -0
  1054. openai/resources/batches.py +530 -0
  1055. openai/resources/beta/__init__.py +61 -0
  1056. openai/resources/beta/assistants.py +1049 -0
  1057. openai/resources/beta/beta.py +187 -0
  1058. openai/resources/beta/chatkit/__init__.py +47 -0
  1059. openai/resources/beta/chatkit/chatkit.py +134 -0
  1060. openai/resources/beta/chatkit/sessions.py +301 -0
  1061. openai/resources/beta/chatkit/threads.py +521 -0
  1062. openai/resources/beta/realtime/__init__.py +47 -0
  1063. openai/resources/beta/realtime/realtime.py +1094 -0
  1064. openai/resources/beta/realtime/sessions.py +424 -0
  1065. openai/resources/beta/realtime/transcription_sessions.py +282 -0
  1066. openai/resources/beta/threads/__init__.py +47 -0
  1067. openai/resources/beta/threads/messages.py +718 -0
  1068. openai/resources/beta/threads/runs/__init__.py +33 -0
  1069. openai/resources/beta/threads/runs/runs.py +3122 -0
  1070. openai/resources/beta/threads/runs/steps.py +399 -0
  1071. openai/resources/beta/threads/threads.py +1935 -0
  1072. openai/resources/chat/__init__.py +33 -0
  1073. openai/resources/chat/chat.py +102 -0
  1074. openai/resources/chat/completions/__init__.py +33 -0
  1075. openai/resources/chat/completions/completions.py +3143 -0
  1076. openai/resources/chat/completions/messages.py +212 -0
  1077. openai/resources/completions.py +1160 -0
  1078. openai/resources/containers/__init__.py +33 -0
  1079. openai/resources/containers/containers.py +510 -0
  1080. openai/resources/containers/files/__init__.py +33 -0
  1081. openai/resources/containers/files/content.py +173 -0
  1082. openai/resources/containers/files/files.py +545 -0
  1083. openai/resources/conversations/__init__.py +33 -0
  1084. openai/resources/conversations/conversations.py +486 -0
  1085. openai/resources/conversations/items.py +557 -0
  1086. openai/resources/embeddings.py +298 -0
  1087. openai/resources/evals/__init__.py +33 -0
  1088. openai/resources/evals/evals.py +662 -0
  1089. openai/resources/evals/runs/__init__.py +33 -0
  1090. openai/resources/evals/runs/output_items.py +315 -0
  1091. openai/resources/evals/runs/runs.py +634 -0
  1092. openai/resources/files.py +770 -0
  1093. openai/resources/fine_tuning/__init__.py +61 -0
  1094. openai/resources/fine_tuning/alpha/__init__.py +33 -0
  1095. openai/resources/fine_tuning/alpha/alpha.py +102 -0
  1096. openai/resources/fine_tuning/alpha/graders.py +282 -0
  1097. openai/resources/fine_tuning/checkpoints/__init__.py +33 -0
  1098. openai/resources/fine_tuning/checkpoints/checkpoints.py +102 -0
  1099. openai/resources/fine_tuning/checkpoints/permissions.py +418 -0
  1100. openai/resources/fine_tuning/fine_tuning.py +166 -0
  1101. openai/resources/fine_tuning/jobs/__init__.py +33 -0
  1102. openai/resources/fine_tuning/jobs/checkpoints.py +199 -0
  1103. openai/resources/fine_tuning/jobs/jobs.py +918 -0
  1104. openai/resources/images.py +1858 -0
  1105. openai/resources/models.py +306 -0
  1106. openai/resources/moderations.py +197 -0
  1107. openai/resources/realtime/__init__.py +47 -0
  1108. openai/resources/realtime/calls.py +764 -0
  1109. openai/resources/realtime/client_secrets.py +189 -0
  1110. openai/resources/realtime/realtime.py +1079 -0
  1111. openai/resources/responses/__init__.py +47 -0
  1112. openai/resources/responses/input_items.py +226 -0
  1113. openai/resources/responses/input_tokens.py +309 -0
  1114. openai/resources/responses/responses.py +3130 -0
  1115. openai/resources/uploads/__init__.py +33 -0
  1116. openai/resources/uploads/parts.py +205 -0
  1117. openai/resources/uploads/uploads.py +719 -0
  1118. openai/resources/vector_stores/__init__.py +47 -0
  1119. openai/resources/vector_stores/file_batches.py +813 -0
  1120. openai/resources/vector_stores/files.py +939 -0
  1121. openai/resources/vector_stores/vector_stores.py +875 -0
  1122. openai/resources/videos.py +847 -0
  1123. openai/resources/webhooks.py +210 -0
  1124. openai/types/__init__.py +115 -0
  1125. openai/types/audio/__init__.py +23 -0
  1126. openai/types/audio/speech_create_params.py +57 -0
  1127. openai/types/audio/speech_model.py +7 -0
  1128. openai/types/audio/transcription.py +71 -0
  1129. openai/types/audio/transcription_create_params.py +172 -0
  1130. openai/types/audio/transcription_create_response.py +12 -0
  1131. openai/types/audio/transcription_diarized.py +63 -0
  1132. openai/types/audio/transcription_diarized_segment.py +32 -0
  1133. openai/types/audio/transcription_include.py +7 -0
  1134. openai/types/audio/transcription_segment.py +49 -0
  1135. openai/types/audio/transcription_stream_event.py +16 -0
  1136. openai/types/audio/transcription_text_delta_event.py +41 -0
  1137. openai/types/audio/transcription_text_done_event.py +63 -0
  1138. openai/types/audio/transcription_text_segment_event.py +27 -0
  1139. openai/types/audio/transcription_verbose.py +38 -0
  1140. openai/types/audio/transcription_word.py +16 -0
  1141. openai/types/audio/translation.py +9 -0
  1142. openai/types/audio/translation_create_params.py +49 -0
  1143. openai/types/audio/translation_create_response.py +11 -0
  1144. openai/types/audio/translation_verbose.py +22 -0
  1145. openai/types/audio_model.py +7 -0
  1146. openai/types/audio_response_format.py +7 -0
  1147. openai/types/auto_file_chunking_strategy_param.py +12 -0
  1148. openai/types/batch.py +104 -0
  1149. openai/types/batch_create_params.py +72 -0
  1150. openai/types/batch_error.py +21 -0
  1151. openai/types/batch_list_params.py +24 -0
  1152. openai/types/batch_request_counts.py +16 -0
  1153. openai/types/batch_usage.py +35 -0
  1154. openai/types/beta/__init__.py +34 -0
  1155. openai/types/beta/assistant.py +134 -0
  1156. openai/types/beta/assistant_create_params.py +220 -0
  1157. openai/types/beta/assistant_deleted.py +15 -0
  1158. openai/types/beta/assistant_list_params.py +39 -0
  1159. openai/types/beta/assistant_response_format_option.py +14 -0
  1160. openai/types/beta/assistant_response_format_option_param.py +16 -0
  1161. openai/types/beta/assistant_stream_event.py +294 -0
  1162. openai/types/beta/assistant_tool.py +15 -0
  1163. openai/types/beta/assistant_tool_choice.py +16 -0
  1164. openai/types/beta/assistant_tool_choice_function.py +10 -0
  1165. openai/types/beta/assistant_tool_choice_function_param.py +12 -0
  1166. openai/types/beta/assistant_tool_choice_option.py +10 -0
  1167. openai/types/beta/assistant_tool_choice_option_param.py +12 -0
  1168. openai/types/beta/assistant_tool_choice_param.py +16 -0
  1169. openai/types/beta/assistant_tool_param.py +14 -0
  1170. openai/types/beta/assistant_update_params.py +191 -0
  1171. openai/types/beta/chat/__init__.py +3 -0
  1172. openai/types/beta/chatkit/__init__.py +32 -0
  1173. openai/types/beta/chatkit/chat_session.py +43 -0
  1174. openai/types/beta/chatkit/chat_session_automatic_thread_titling.py +10 -0
  1175. openai/types/beta/chatkit/chat_session_chatkit_configuration.py +19 -0
  1176. openai/types/beta/chatkit/chat_session_chatkit_configuration_param.py +59 -0
  1177. openai/types/beta/chatkit/chat_session_expires_after_param.py +15 -0
  1178. openai/types/beta/chatkit/chat_session_file_upload.py +18 -0
  1179. openai/types/beta/chatkit/chat_session_history.py +18 -0
  1180. openai/types/beta/chatkit/chat_session_rate_limits.py +10 -0
  1181. openai/types/beta/chatkit/chat_session_rate_limits_param.py +12 -0
  1182. openai/types/beta/chatkit/chat_session_status.py +7 -0
  1183. openai/types/beta/chatkit/chat_session_workflow_param.py +34 -0
  1184. openai/types/beta/chatkit/chatkit_attachment.py +25 -0
  1185. openai/types/beta/chatkit/chatkit_response_output_text.py +62 -0
  1186. openai/types/beta/chatkit/chatkit_thread.py +56 -0
  1187. openai/types/beta/chatkit/chatkit_thread_assistant_message_item.py +29 -0
  1188. openai/types/beta/chatkit/chatkit_thread_item_list.py +144 -0
  1189. openai/types/beta/chatkit/chatkit_thread_user_message_item.py +77 -0
  1190. openai/types/beta/chatkit/chatkit_widget_item.py +27 -0
  1191. openai/types/beta/chatkit/session_create_params.py +35 -0
  1192. openai/types/beta/chatkit/thread_delete_response.py +18 -0
  1193. openai/types/beta/chatkit/thread_list_items_params.py +27 -0
  1194. openai/types/beta/chatkit/thread_list_params.py +33 -0
  1195. openai/types/beta/chatkit_workflow.py +32 -0
  1196. openai/types/beta/code_interpreter_tool.py +12 -0
  1197. openai/types/beta/code_interpreter_tool_param.py +12 -0
  1198. openai/types/beta/file_search_tool.py +55 -0
  1199. openai/types/beta/file_search_tool_param.py +54 -0
  1200. openai/types/beta/function_tool.py +15 -0
  1201. openai/types/beta/function_tool_param.py +16 -0
  1202. openai/types/beta/realtime/__init__.py +96 -0
  1203. openai/types/beta/realtime/conversation_created_event.py +27 -0
  1204. openai/types/beta/realtime/conversation_item.py +61 -0
  1205. openai/types/beta/realtime/conversation_item_content.py +32 -0
  1206. openai/types/beta/realtime/conversation_item_content_param.py +31 -0
  1207. openai/types/beta/realtime/conversation_item_create_event.py +29 -0
  1208. openai/types/beta/realtime/conversation_item_create_event_param.py +29 -0
  1209. openai/types/beta/realtime/conversation_item_created_event.py +27 -0
  1210. openai/types/beta/realtime/conversation_item_delete_event.py +19 -0
  1211. openai/types/beta/realtime/conversation_item_delete_event_param.py +18 -0
  1212. openai/types/beta/realtime/conversation_item_deleted_event.py +18 -0
  1213. openai/types/beta/realtime/conversation_item_input_audio_transcription_completed_event.py +87 -0
  1214. openai/types/beta/realtime/conversation_item_input_audio_transcription_delta_event.py +39 -0
  1215. openai/types/beta/realtime/conversation_item_input_audio_transcription_failed_event.py +39 -0
  1216. openai/types/beta/realtime/conversation_item_param.py +62 -0
  1217. openai/types/beta/realtime/conversation_item_retrieve_event.py +19 -0
  1218. openai/types/beta/realtime/conversation_item_retrieve_event_param.py +18 -0
  1219. openai/types/beta/realtime/conversation_item_truncate_event.py +32 -0
  1220. openai/types/beta/realtime/conversation_item_truncate_event_param.py +31 -0
  1221. openai/types/beta/realtime/conversation_item_truncated_event.py +24 -0
  1222. openai/types/beta/realtime/conversation_item_with_reference.py +87 -0
  1223. openai/types/beta/realtime/conversation_item_with_reference_param.py +87 -0
  1224. openai/types/beta/realtime/error_event.py +36 -0
  1225. openai/types/beta/realtime/input_audio_buffer_append_event.py +23 -0
  1226. openai/types/beta/realtime/input_audio_buffer_append_event_param.py +22 -0
  1227. openai/types/beta/realtime/input_audio_buffer_clear_event.py +16 -0
  1228. openai/types/beta/realtime/input_audio_buffer_clear_event_param.py +15 -0
  1229. openai/types/beta/realtime/input_audio_buffer_cleared_event.py +15 -0
  1230. openai/types/beta/realtime/input_audio_buffer_commit_event.py +16 -0
  1231. openai/types/beta/realtime/input_audio_buffer_commit_event_param.py +15 -0
  1232. openai/types/beta/realtime/input_audio_buffer_committed_event.py +25 -0
  1233. openai/types/beta/realtime/input_audio_buffer_speech_started_event.py +26 -0
  1234. openai/types/beta/realtime/input_audio_buffer_speech_stopped_event.py +25 -0
  1235. openai/types/beta/realtime/rate_limits_updated_event.py +33 -0
  1236. openai/types/beta/realtime/realtime_client_event.py +47 -0
  1237. openai/types/beta/realtime/realtime_client_event_param.py +44 -0
  1238. openai/types/beta/realtime/realtime_connect_params.py +11 -0
  1239. openai/types/beta/realtime/realtime_response.py +87 -0
  1240. openai/types/beta/realtime/realtime_response_status.py +39 -0
  1241. openai/types/beta/realtime/realtime_response_usage.py +52 -0
  1242. openai/types/beta/realtime/realtime_server_event.py +133 -0
  1243. openai/types/beta/realtime/response_audio_delta_event.py +30 -0
  1244. openai/types/beta/realtime/response_audio_done_event.py +27 -0
  1245. openai/types/beta/realtime/response_audio_transcript_delta_event.py +30 -0
  1246. openai/types/beta/realtime/response_audio_transcript_done_event.py +30 -0
  1247. openai/types/beta/realtime/response_cancel_event.py +22 -0
  1248. openai/types/beta/realtime/response_cancel_event_param.py +21 -0
  1249. openai/types/beta/realtime/response_content_part_added_event.py +45 -0
  1250. openai/types/beta/realtime/response_content_part_done_event.py +45 -0
  1251. openai/types/beta/realtime/response_create_event.py +121 -0
  1252. openai/types/beta/realtime/response_create_event_param.py +122 -0
  1253. openai/types/beta/realtime/response_created_event.py +19 -0
  1254. openai/types/beta/realtime/response_done_event.py +19 -0
  1255. openai/types/beta/realtime/response_function_call_arguments_delta_event.py +30 -0
  1256. openai/types/beta/realtime/response_function_call_arguments_done_event.py +30 -0
  1257. openai/types/beta/realtime/response_output_item_added_event.py +25 -0
  1258. openai/types/beta/realtime/response_output_item_done_event.py +25 -0
  1259. openai/types/beta/realtime/response_text_delta_event.py +30 -0
  1260. openai/types/beta/realtime/response_text_done_event.py +30 -0
  1261. openai/types/beta/realtime/session.py +279 -0
  1262. openai/types/beta/realtime/session_create_params.py +298 -0
  1263. openai/types/beta/realtime/session_create_response.py +196 -0
  1264. openai/types/beta/realtime/session_created_event.py +19 -0
  1265. openai/types/beta/realtime/session_update_event.py +312 -0
  1266. openai/types/beta/realtime/session_update_event_param.py +310 -0
  1267. openai/types/beta/realtime/session_updated_event.py +19 -0
  1268. openai/types/beta/realtime/transcription_session.py +100 -0
  1269. openai/types/beta/realtime/transcription_session_create_params.py +173 -0
  1270. openai/types/beta/realtime/transcription_session_update.py +185 -0
  1271. openai/types/beta/realtime/transcription_session_update_param.py +185 -0
  1272. openai/types/beta/realtime/transcription_session_updated_event.py +24 -0
  1273. openai/types/beta/thread.py +63 -0
  1274. openai/types/beta/thread_create_and_run_params.py +397 -0
  1275. openai/types/beta/thread_create_params.py +186 -0
  1276. openai/types/beta/thread_deleted.py +15 -0
  1277. openai/types/beta/thread_update_params.py +56 -0
  1278. openai/types/beta/threads/__init__.py +46 -0
  1279. openai/types/beta/threads/annotation.py +12 -0
  1280. openai/types/beta/threads/annotation_delta.py +14 -0
  1281. openai/types/beta/threads/file_citation_annotation.py +26 -0
  1282. openai/types/beta/threads/file_citation_delta_annotation.py +33 -0
  1283. openai/types/beta/threads/file_path_annotation.py +26 -0
  1284. openai/types/beta/threads/file_path_delta_annotation.py +30 -0
  1285. openai/types/beta/threads/image_file.py +23 -0
  1286. openai/types/beta/threads/image_file_content_block.py +15 -0
  1287. openai/types/beta/threads/image_file_content_block_param.py +16 -0
  1288. openai/types/beta/threads/image_file_delta.py +23 -0
  1289. openai/types/beta/threads/image_file_delta_block.py +19 -0
  1290. openai/types/beta/threads/image_file_param.py +22 -0
  1291. openai/types/beta/threads/image_url.py +23 -0
  1292. openai/types/beta/threads/image_url_content_block.py +15 -0
  1293. openai/types/beta/threads/image_url_content_block_param.py +16 -0
  1294. openai/types/beta/threads/image_url_delta.py +22 -0
  1295. openai/types/beta/threads/image_url_delta_block.py +19 -0
  1296. openai/types/beta/threads/image_url_param.py +22 -0
  1297. openai/types/beta/threads/message.py +103 -0
  1298. openai/types/beta/threads/message_content.py +18 -0
  1299. openai/types/beta/threads/message_content_delta.py +17 -0
  1300. openai/types/beta/threads/message_content_part_param.py +14 -0
  1301. openai/types/beta/threads/message_create_params.py +55 -0
  1302. openai/types/beta/threads/message_deleted.py +15 -0
  1303. openai/types/beta/threads/message_delta.py +17 -0
  1304. openai/types/beta/threads/message_delta_event.py +19 -0
  1305. openai/types/beta/threads/message_list_params.py +42 -0
  1306. openai/types/beta/threads/message_update_params.py +24 -0
  1307. openai/types/beta/threads/refusal_content_block.py +14 -0
  1308. openai/types/beta/threads/refusal_delta_block.py +18 -0
  1309. openai/types/beta/threads/required_action_function_tool_call.py +34 -0
  1310. openai/types/beta/threads/run.py +245 -0
  1311. openai/types/beta/threads/run_create_params.py +268 -0
  1312. openai/types/beta/threads/run_list_params.py +39 -0
  1313. openai/types/beta/threads/run_status.py +17 -0
  1314. openai/types/beta/threads/run_submit_tool_outputs_params.py +52 -0
  1315. openai/types/beta/threads/run_update_params.py +24 -0
  1316. openai/types/beta/threads/runs/__init__.py +24 -0
  1317. openai/types/beta/threads/runs/code_interpreter_logs.py +19 -0
  1318. openai/types/beta/threads/runs/code_interpreter_output_image.py +26 -0
  1319. openai/types/beta/threads/runs/code_interpreter_tool_call.py +70 -0
  1320. openai/types/beta/threads/runs/code_interpreter_tool_call_delta.py +44 -0
  1321. openai/types/beta/threads/runs/file_search_tool_call.py +78 -0
  1322. openai/types/beta/threads/runs/file_search_tool_call_delta.py +25 -0
  1323. openai/types/beta/threads/runs/function_tool_call.py +38 -0
  1324. openai/types/beta/threads/runs/function_tool_call_delta.py +41 -0
  1325. openai/types/beta/threads/runs/message_creation_step_details.py +19 -0
  1326. openai/types/beta/threads/runs/run_step.py +115 -0
  1327. openai/types/beta/threads/runs/run_step_delta.py +20 -0
  1328. openai/types/beta/threads/runs/run_step_delta_event.py +19 -0
  1329. openai/types/beta/threads/runs/run_step_delta_message_delta.py +20 -0
  1330. openai/types/beta/threads/runs/run_step_include.py +7 -0
  1331. openai/types/beta/threads/runs/step_list_params.py +56 -0
  1332. openai/types/beta/threads/runs/step_retrieve_params.py +28 -0
  1333. openai/types/beta/threads/runs/tool_call.py +15 -0
  1334. openai/types/beta/threads/runs/tool_call_delta.py +16 -0
  1335. openai/types/beta/threads/runs/tool_call_delta_object.py +21 -0
  1336. openai/types/beta/threads/runs/tool_calls_step_details.py +21 -0
  1337. openai/types/beta/threads/text.py +15 -0
  1338. openai/types/beta/threads/text_content_block.py +15 -0
  1339. openai/types/beta/threads/text_content_block_param.py +15 -0
  1340. openai/types/beta/threads/text_delta.py +15 -0
  1341. openai/types/beta/threads/text_delta_block.py +19 -0
  1342. openai/types/chat/__init__.py +102 -0
  1343. openai/types/chat/chat_completion.py +89 -0
  1344. openai/types/chat/chat_completion_allowed_tool_choice_param.py +17 -0
  1345. openai/types/chat/chat_completion_allowed_tools_param.py +32 -0
  1346. openai/types/chat/chat_completion_assistant_message_param.py +70 -0
  1347. openai/types/chat/chat_completion_audio.py +25 -0
  1348. openai/types/chat/chat_completion_audio_param.py +25 -0
  1349. openai/types/chat/chat_completion_chunk.py +166 -0
  1350. openai/types/chat/chat_completion_content_part_image.py +27 -0
  1351. openai/types/chat/chat_completion_content_part_image_param.py +26 -0
  1352. openai/types/chat/chat_completion_content_part_input_audio_param.py +22 -0
  1353. openai/types/chat/chat_completion_content_part_param.py +41 -0
  1354. openai/types/chat/chat_completion_content_part_refusal_param.py +15 -0
  1355. openai/types/chat/chat_completion_content_part_text.py +15 -0
  1356. openai/types/chat/chat_completion_content_part_text_param.py +15 -0
  1357. openai/types/chat/chat_completion_custom_tool_param.py +58 -0
  1358. openai/types/chat/chat_completion_deleted.py +18 -0
  1359. openai/types/chat/chat_completion_developer_message_param.py +25 -0
  1360. openai/types/chat/chat_completion_function_call_option_param.py +12 -0
  1361. openai/types/chat/chat_completion_function_message_param.py +19 -0
  1362. openai/types/chat/chat_completion_function_tool.py +15 -0
  1363. openai/types/chat/chat_completion_function_tool_param.py +16 -0
  1364. openai/types/chat/chat_completion_message.py +79 -0
  1365. openai/types/chat/chat_completion_message_custom_tool_call.py +26 -0
  1366. openai/types/chat/chat_completion_message_custom_tool_call_param.py +26 -0
  1367. openai/types/chat/chat_completion_message_function_tool_call.py +31 -0
  1368. openai/types/chat/chat_completion_message_function_tool_call_param.py +31 -0
  1369. openai/types/chat/chat_completion_message_param.py +24 -0
  1370. openai/types/chat/chat_completion_message_tool_call.py +17 -0
  1371. openai/types/chat/chat_completion_message_tool_call_param.py +14 -0
  1372. openai/types/chat/chat_completion_message_tool_call_union_param.py +15 -0
  1373. openai/types/chat/chat_completion_modality.py +7 -0
  1374. openai/types/chat/chat_completion_named_tool_choice_custom_param.py +19 -0
  1375. openai/types/chat/chat_completion_named_tool_choice_param.py +19 -0
  1376. openai/types/chat/chat_completion_prediction_content_param.py +25 -0
  1377. openai/types/chat/chat_completion_reasoning_effort.py +7 -0
  1378. openai/types/chat/chat_completion_role.py +7 -0
  1379. openai/types/chat/chat_completion_store_message.py +23 -0
  1380. openai/types/chat/chat_completion_stream_options_param.py +31 -0
  1381. openai/types/chat/chat_completion_system_message_param.py +25 -0
  1382. openai/types/chat/chat_completion_token_logprob.py +57 -0
  1383. openai/types/chat/chat_completion_tool_choice_option_param.py +19 -0
  1384. openai/types/chat/chat_completion_tool_message_param.py +21 -0
  1385. openai/types/chat/chat_completion_tool_param.py +14 -0
  1386. openai/types/chat/chat_completion_tool_union_param.py +13 -0
  1387. openai/types/chat/chat_completion_user_message_param.py +25 -0
  1388. openai/types/chat/completion_create_params.py +450 -0
  1389. openai/types/chat/completion_list_params.py +37 -0
  1390. openai/types/chat/completion_update_params.py +22 -0
  1391. openai/types/chat/completions/__init__.py +5 -0
  1392. openai/types/chat/completions/message_list_params.py +21 -0
  1393. openai/types/chat/parsed_chat_completion.py +40 -0
  1394. openai/types/chat/parsed_function_tool_call.py +29 -0
  1395. openai/types/chat_model.py +7 -0
  1396. openai/types/completion.py +37 -0
  1397. openai/types/completion_choice.py +35 -0
  1398. openai/types/completion_create_params.py +189 -0
  1399. openai/types/completion_usage.py +54 -0
  1400. openai/types/container_create_params.py +30 -0
  1401. openai/types/container_create_response.py +40 -0
  1402. openai/types/container_list_params.py +30 -0
  1403. openai/types/container_list_response.py +40 -0
  1404. openai/types/container_retrieve_response.py +40 -0
  1405. openai/types/containers/__init__.py +9 -0
  1406. openai/types/containers/file_create_params.py +17 -0
  1407. openai/types/containers/file_create_response.py +30 -0
  1408. openai/types/containers/file_list_params.py +30 -0
  1409. openai/types/containers/file_list_response.py +30 -0
  1410. openai/types/containers/file_retrieve_response.py +30 -0
  1411. openai/types/containers/files/__init__.py +3 -0
  1412. openai/types/conversations/__init__.py +27 -0
  1413. openai/types/conversations/computer_screenshot_content.py +22 -0
  1414. openai/types/conversations/conversation.py +30 -0
  1415. openai/types/conversations/conversation_create_params.py +29 -0
  1416. openai/types/conversations/conversation_deleted_resource.py +15 -0
  1417. openai/types/conversations/conversation_item.py +230 -0
  1418. openai/types/conversations/conversation_item_list.py +26 -0
  1419. openai/types/conversations/conversation_update_params.py +22 -0
  1420. openai/types/conversations/input_file_content.py +7 -0
  1421. openai/types/conversations/input_file_content_param.py +7 -0
  1422. openai/types/conversations/input_image_content.py +7 -0
  1423. openai/types/conversations/input_image_content_param.py +7 -0
  1424. openai/types/conversations/input_text_content.py +7 -0
  1425. openai/types/conversations/input_text_content_param.py +7 -0
  1426. openai/types/conversations/item_create_params.py +24 -0
  1427. openai/types/conversations/item_list_params.py +50 -0
  1428. openai/types/conversations/item_retrieve_params.py +22 -0
  1429. openai/types/conversations/message.py +66 -0
  1430. openai/types/conversations/output_text_content.py +7 -0
  1431. openai/types/conversations/output_text_content_param.py +7 -0
  1432. openai/types/conversations/refusal_content.py +7 -0
  1433. openai/types/conversations/refusal_content_param.py +7 -0
  1434. openai/types/conversations/summary_text_content.py +15 -0
  1435. openai/types/conversations/text_content.py +13 -0
  1436. openai/types/create_embedding_response.py +31 -0
  1437. openai/types/embedding.py +23 -0
  1438. openai/types/embedding_create_params.py +55 -0
  1439. openai/types/embedding_model.py +7 -0
  1440. openai/types/eval_create_params.py +202 -0
  1441. openai/types/eval_create_response.py +111 -0
  1442. openai/types/eval_custom_data_source_config.py +21 -0
  1443. openai/types/eval_delete_response.py +13 -0
  1444. openai/types/eval_list_params.py +27 -0
  1445. openai/types/eval_list_response.py +111 -0
  1446. openai/types/eval_retrieve_response.py +111 -0
  1447. openai/types/eval_stored_completions_data_source_config.py +32 -0
  1448. openai/types/eval_update_params.py +25 -0
  1449. openai/types/eval_update_response.py +111 -0
  1450. openai/types/evals/__init__.py +22 -0
  1451. openai/types/evals/create_eval_completions_run_data_source.py +236 -0
  1452. openai/types/evals/create_eval_completions_run_data_source_param.py +232 -0
  1453. openai/types/evals/create_eval_jsonl_run_data_source.py +42 -0
  1454. openai/types/evals/create_eval_jsonl_run_data_source_param.py +47 -0
  1455. openai/types/evals/eval_api_error.py +13 -0
  1456. openai/types/evals/run_cancel_response.py +417 -0
  1457. openai/types/evals/run_create_params.py +340 -0
  1458. openai/types/evals/run_create_response.py +417 -0
  1459. openai/types/evals/run_delete_response.py +15 -0
  1460. openai/types/evals/run_list_params.py +27 -0
  1461. openai/types/evals/run_list_response.py +417 -0
  1462. openai/types/evals/run_retrieve_response.py +417 -0
  1463. openai/types/evals/runs/__init__.py +7 -0
  1464. openai/types/evals/runs/output_item_list_params.py +30 -0
  1465. openai/types/evals/runs/output_item_list_response.py +134 -0
  1466. openai/types/evals/runs/output_item_retrieve_response.py +134 -0
  1467. openai/types/file_chunking_strategy.py +14 -0
  1468. openai/types/file_chunking_strategy_param.py +13 -0
  1469. openai/types/file_content.py +7 -0
  1470. openai/types/file_create_params.py +45 -0
  1471. openai/types/file_deleted.py +15 -0
  1472. openai/types/file_list_params.py +33 -0
  1473. openai/types/file_object.py +58 -0
  1474. openai/types/file_purpose.py +7 -0
  1475. openai/types/fine_tuning/__init__.py +26 -0
  1476. openai/types/fine_tuning/alpha/__init__.py +8 -0
  1477. openai/types/fine_tuning/alpha/grader_run_params.py +40 -0
  1478. openai/types/fine_tuning/alpha/grader_run_response.py +67 -0
  1479. openai/types/fine_tuning/alpha/grader_validate_params.py +24 -0
  1480. openai/types/fine_tuning/alpha/grader_validate_response.py +20 -0
  1481. openai/types/fine_tuning/checkpoints/__init__.py +9 -0
  1482. openai/types/fine_tuning/checkpoints/permission_create_params.py +14 -0
  1483. openai/types/fine_tuning/checkpoints/permission_create_response.py +21 -0
  1484. openai/types/fine_tuning/checkpoints/permission_delete_response.py +18 -0
  1485. openai/types/fine_tuning/checkpoints/permission_retrieve_params.py +21 -0
  1486. openai/types/fine_tuning/checkpoints/permission_retrieve_response.py +34 -0
  1487. openai/types/fine_tuning/dpo_hyperparameters.py +36 -0
  1488. openai/types/fine_tuning/dpo_hyperparameters_param.py +36 -0
  1489. openai/types/fine_tuning/dpo_method.py +13 -0
  1490. openai/types/fine_tuning/dpo_method_param.py +14 -0
  1491. openai/types/fine_tuning/fine_tuning_job.py +161 -0
  1492. openai/types/fine_tuning/fine_tuning_job_event.py +32 -0
  1493. openai/types/fine_tuning/fine_tuning_job_integration.py +5 -0
  1494. openai/types/fine_tuning/fine_tuning_job_wandb_integration.py +33 -0
  1495. openai/types/fine_tuning/fine_tuning_job_wandb_integration_object.py +21 -0
  1496. openai/types/fine_tuning/job_create_params.py +176 -0
  1497. openai/types/fine_tuning/job_list_events_params.py +15 -0
  1498. openai/types/fine_tuning/job_list_params.py +23 -0
  1499. openai/types/fine_tuning/jobs/__init__.py +6 -0
  1500. openai/types/fine_tuning/jobs/checkpoint_list_params.py +15 -0
  1501. openai/types/fine_tuning/jobs/fine_tuning_job_checkpoint.py +47 -0
  1502. openai/types/fine_tuning/reinforcement_hyperparameters.py +43 -0
  1503. openai/types/fine_tuning/reinforcement_hyperparameters_param.py +43 -0
  1504. openai/types/fine_tuning/reinforcement_method.py +24 -0
  1505. openai/types/fine_tuning/reinforcement_method_param.py +27 -0
  1506. openai/types/fine_tuning/supervised_hyperparameters.py +29 -0
  1507. openai/types/fine_tuning/supervised_hyperparameters_param.py +29 -0
  1508. openai/types/fine_tuning/supervised_method.py +13 -0
  1509. openai/types/fine_tuning/supervised_method_param.py +14 -0
  1510. openai/types/graders/__init__.py +16 -0
  1511. openai/types/graders/label_model_grader.py +70 -0
  1512. openai/types/graders/label_model_grader_param.py +77 -0
  1513. openai/types/graders/multi_grader.py +32 -0
  1514. openai/types/graders/multi_grader_param.py +35 -0
  1515. openai/types/graders/python_grader.py +22 -0
  1516. openai/types/graders/python_grader_param.py +21 -0
  1517. openai/types/graders/score_model_grader.py +109 -0
  1518. openai/types/graders/score_model_grader_param.py +115 -0
  1519. openai/types/graders/string_check_grader.py +24 -0
  1520. openai/types/graders/string_check_grader_param.py +24 -0
  1521. openai/types/graders/text_similarity_grader.py +40 -0
  1522. openai/types/graders/text_similarity_grader_param.py +42 -0
  1523. openai/types/image.py +26 -0
  1524. openai/types/image_create_variation_params.py +48 -0
  1525. openai/types/image_edit_completed_event.py +55 -0
  1526. openai/types/image_edit_params.py +145 -0
  1527. openai/types/image_edit_partial_image_event.py +33 -0
  1528. openai/types/image_edit_stream_event.py +14 -0
  1529. openai/types/image_gen_completed_event.py +55 -0
  1530. openai/types/image_gen_partial_image_event.py +33 -0
  1531. openai/types/image_gen_stream_event.py +14 -0
  1532. openai/types/image_generate_params.py +143 -0
  1533. openai/types/image_model.py +7 -0
  1534. openai/types/images_response.py +60 -0
  1535. openai/types/model.py +21 -0
  1536. openai/types/model_deleted.py +13 -0
  1537. openai/types/moderation.py +186 -0
  1538. openai/types/moderation_create_params.py +30 -0
  1539. openai/types/moderation_create_response.py +19 -0
  1540. openai/types/moderation_image_url_input_param.py +20 -0
  1541. openai/types/moderation_model.py +9 -0
  1542. openai/types/moderation_multi_modal_input_param.py +13 -0
  1543. openai/types/moderation_text_input_param.py +15 -0
  1544. openai/types/other_file_chunking_strategy_object.py +12 -0
  1545. openai/types/realtime/__init__.py +237 -0
  1546. openai/types/realtime/audio_transcription.py +37 -0
  1547. openai/types/realtime/audio_transcription_param.py +34 -0
  1548. openai/types/realtime/call_accept_params.py +122 -0
  1549. openai/types/realtime/call_create_params.py +17 -0
  1550. openai/types/realtime/call_refer_params.py +15 -0
  1551. openai/types/realtime/call_reject_params.py +15 -0
  1552. openai/types/realtime/client_secret_create_params.py +46 -0
  1553. openai/types/realtime/client_secret_create_response.py +26 -0
  1554. openai/types/realtime/conversation_created_event.py +27 -0
  1555. openai/types/realtime/conversation_item.py +32 -0
  1556. openai/types/realtime/conversation_item_added.py +26 -0
  1557. openai/types/realtime/conversation_item_create_event.py +29 -0
  1558. openai/types/realtime/conversation_item_create_event_param.py +29 -0
  1559. openai/types/realtime/conversation_item_created_event.py +27 -0
  1560. openai/types/realtime/conversation_item_delete_event.py +19 -0
  1561. openai/types/realtime/conversation_item_delete_event_param.py +18 -0
  1562. openai/types/realtime/conversation_item_deleted_event.py +18 -0
  1563. openai/types/realtime/conversation_item_done.py +26 -0
  1564. openai/types/realtime/conversation_item_input_audio_transcription_completed_event.py +79 -0
  1565. openai/types/realtime/conversation_item_input_audio_transcription_delta_event.py +36 -0
  1566. openai/types/realtime/conversation_item_input_audio_transcription_failed_event.py +39 -0
  1567. openai/types/realtime/conversation_item_input_audio_transcription_segment.py +36 -0
  1568. openai/types/realtime/conversation_item_param.py +30 -0
  1569. openai/types/realtime/conversation_item_retrieve_event.py +19 -0
  1570. openai/types/realtime/conversation_item_retrieve_event_param.py +18 -0
  1571. openai/types/realtime/conversation_item_truncate_event.py +32 -0
  1572. openai/types/realtime/conversation_item_truncate_event_param.py +31 -0
  1573. openai/types/realtime/conversation_item_truncated_event.py +24 -0
  1574. openai/types/realtime/input_audio_buffer_append_event.py +23 -0
  1575. openai/types/realtime/input_audio_buffer_append_event_param.py +22 -0
  1576. openai/types/realtime/input_audio_buffer_clear_event.py +16 -0
  1577. openai/types/realtime/input_audio_buffer_clear_event_param.py +15 -0
  1578. openai/types/realtime/input_audio_buffer_cleared_event.py +15 -0
  1579. openai/types/realtime/input_audio_buffer_commit_event.py +16 -0
  1580. openai/types/realtime/input_audio_buffer_commit_event_param.py +15 -0
  1581. openai/types/realtime/input_audio_buffer_committed_event.py +25 -0
  1582. openai/types/realtime/input_audio_buffer_speech_started_event.py +26 -0
  1583. openai/types/realtime/input_audio_buffer_speech_stopped_event.py +25 -0
  1584. openai/types/realtime/input_audio_buffer_timeout_triggered.py +30 -0
  1585. openai/types/realtime/log_prob_properties.py +18 -0
  1586. openai/types/realtime/mcp_list_tools_completed.py +18 -0
  1587. openai/types/realtime/mcp_list_tools_failed.py +18 -0
  1588. openai/types/realtime/mcp_list_tools_in_progress.py +18 -0
  1589. openai/types/realtime/noise_reduction_type.py +7 -0
  1590. openai/types/realtime/output_audio_buffer_clear_event.py +16 -0
  1591. openai/types/realtime/output_audio_buffer_clear_event_param.py +15 -0
  1592. openai/types/realtime/rate_limits_updated_event.py +33 -0
  1593. openai/types/realtime/realtime_audio_config.py +15 -0
  1594. openai/types/realtime/realtime_audio_config_input.py +63 -0
  1595. openai/types/realtime/realtime_audio_config_input_param.py +65 -0
  1596. openai/types/realtime/realtime_audio_config_output.py +36 -0
  1597. openai/types/realtime/realtime_audio_config_output_param.py +35 -0
  1598. openai/types/realtime/realtime_audio_config_param.py +16 -0
  1599. openai/types/realtime/realtime_audio_formats.py +30 -0
  1600. openai/types/realtime/realtime_audio_formats_param.py +29 -0
  1601. openai/types/realtime/realtime_audio_input_turn_detection.py +98 -0
  1602. openai/types/realtime/realtime_audio_input_turn_detection_param.py +95 -0
  1603. openai/types/realtime/realtime_client_event.py +36 -0
  1604. openai/types/realtime/realtime_client_event_param.py +34 -0
  1605. openai/types/realtime/realtime_connect_params.py +13 -0
  1606. openai/types/realtime/realtime_conversation_item_assistant_message.py +58 -0
  1607. openai/types/realtime/realtime_conversation_item_assistant_message_param.py +58 -0
  1608. openai/types/realtime/realtime_conversation_item_function_call.py +41 -0
  1609. openai/types/realtime/realtime_conversation_item_function_call_output.py +37 -0
  1610. openai/types/realtime/realtime_conversation_item_function_call_output_param.py +36 -0
  1611. openai/types/realtime/realtime_conversation_item_function_call_param.py +40 -0
  1612. openai/types/realtime/realtime_conversation_item_system_message.py +42 -0
  1613. openai/types/realtime/realtime_conversation_item_system_message_param.py +42 -0
  1614. openai/types/realtime/realtime_conversation_item_user_message.py +69 -0
  1615. openai/types/realtime/realtime_conversation_item_user_message_param.py +69 -0
  1616. openai/types/realtime/realtime_error.py +24 -0
  1617. openai/types/realtime/realtime_error_event.py +19 -0
  1618. openai/types/realtime/realtime_function_tool.py +25 -0
  1619. openai/types/realtime/realtime_function_tool_param.py +24 -0
  1620. openai/types/realtime/realtime_mcp_approval_request.py +24 -0
  1621. openai/types/realtime/realtime_mcp_approval_request_param.py +24 -0
  1622. openai/types/realtime/realtime_mcp_approval_response.py +25 -0
  1623. openai/types/realtime/realtime_mcp_approval_response_param.py +25 -0
  1624. openai/types/realtime/realtime_mcp_list_tools.py +36 -0
  1625. openai/types/realtime/realtime_mcp_list_tools_param.py +36 -0
  1626. openai/types/realtime/realtime_mcp_protocol_error.py +15 -0
  1627. openai/types/realtime/realtime_mcp_protocol_error_param.py +15 -0
  1628. openai/types/realtime/realtime_mcp_tool_call.py +43 -0
  1629. openai/types/realtime/realtime_mcp_tool_call_param.py +40 -0
  1630. openai/types/realtime/realtime_mcp_tool_execution_error.py +13 -0
  1631. openai/types/realtime/realtime_mcp_tool_execution_error_param.py +13 -0
  1632. openai/types/realtime/realtime_mcphttp_error.py +15 -0
  1633. openai/types/realtime/realtime_mcphttp_error_param.py +15 -0
  1634. openai/types/realtime/realtime_response.py +98 -0
  1635. openai/types/realtime/realtime_response_create_audio_output.py +29 -0
  1636. openai/types/realtime/realtime_response_create_audio_output_param.py +28 -0
  1637. openai/types/realtime/realtime_response_create_mcp_tool.py +135 -0
  1638. openai/types/realtime/realtime_response_create_mcp_tool_param.py +135 -0
  1639. openai/types/realtime/realtime_response_create_params.py +98 -0
  1640. openai/types/realtime/realtime_response_create_params_param.py +99 -0
  1641. openai/types/realtime/realtime_response_status.py +39 -0
  1642. openai/types/realtime/realtime_response_usage.py +41 -0
  1643. openai/types/realtime/realtime_response_usage_input_token_details.py +35 -0
  1644. openai/types/realtime/realtime_response_usage_output_token_details.py +15 -0
  1645. openai/types/realtime/realtime_server_event.py +155 -0
  1646. openai/types/realtime/realtime_session_client_secret.py +20 -0
  1647. openai/types/realtime/realtime_session_create_request.py +122 -0
  1648. openai/types/realtime/realtime_session_create_request_param.py +122 -0
  1649. openai/types/realtime/realtime_session_create_response.py +475 -0
  1650. openai/types/realtime/realtime_tool_choice_config.py +12 -0
  1651. openai/types/realtime/realtime_tool_choice_config_param.py +14 -0
  1652. openai/types/realtime/realtime_tools_config.py +10 -0
  1653. openai/types/realtime/realtime_tools_config_param.py +143 -0
  1654. openai/types/realtime/realtime_tools_config_union.py +141 -0
  1655. openai/types/realtime/realtime_tools_config_union_param.py +140 -0
  1656. openai/types/realtime/realtime_tracing_config.py +31 -0
  1657. openai/types/realtime/realtime_tracing_config_param.py +31 -0
  1658. openai/types/realtime/realtime_transcription_session_audio.py +12 -0
  1659. openai/types/realtime/realtime_transcription_session_audio_input.py +65 -0
  1660. openai/types/realtime/realtime_transcription_session_audio_input_param.py +67 -0
  1661. openai/types/realtime/realtime_transcription_session_audio_input_turn_detection.py +98 -0
  1662. openai/types/realtime/realtime_transcription_session_audio_input_turn_detection_param.py +95 -0
  1663. openai/types/realtime/realtime_transcription_session_audio_param.py +13 -0
  1664. openai/types/realtime/realtime_transcription_session_create_request.py +27 -0
  1665. openai/types/realtime/realtime_transcription_session_create_request_param.py +28 -0
  1666. openai/types/realtime/realtime_transcription_session_create_response.py +68 -0
  1667. openai/types/realtime/realtime_transcription_session_turn_detection.py +32 -0
  1668. openai/types/realtime/realtime_truncation.py +10 -0
  1669. openai/types/realtime/realtime_truncation_param.py +12 -0
  1670. openai/types/realtime/realtime_truncation_retention_ratio.py +38 -0
  1671. openai/types/realtime/realtime_truncation_retention_ratio_param.py +37 -0
  1672. openai/types/realtime/response_audio_delta_event.py +30 -0
  1673. openai/types/realtime/response_audio_done_event.py +27 -0
  1674. openai/types/realtime/response_audio_transcript_delta_event.py +30 -0
  1675. openai/types/realtime/response_audio_transcript_done_event.py +30 -0
  1676. openai/types/realtime/response_cancel_event.py +22 -0
  1677. openai/types/realtime/response_cancel_event_param.py +21 -0
  1678. openai/types/realtime/response_content_part_added_event.py +45 -0
  1679. openai/types/realtime/response_content_part_done_event.py +45 -0
  1680. openai/types/realtime/response_create_event.py +20 -0
  1681. openai/types/realtime/response_create_event_param.py +20 -0
  1682. openai/types/realtime/response_created_event.py +19 -0
  1683. openai/types/realtime/response_done_event.py +19 -0
  1684. openai/types/realtime/response_function_call_arguments_delta_event.py +30 -0
  1685. openai/types/realtime/response_function_call_arguments_done_event.py +30 -0
  1686. openai/types/realtime/response_mcp_call_arguments_delta.py +31 -0
  1687. openai/types/realtime/response_mcp_call_arguments_done.py +27 -0
  1688. openai/types/realtime/response_mcp_call_completed.py +21 -0
  1689. openai/types/realtime/response_mcp_call_failed.py +21 -0
  1690. openai/types/realtime/response_mcp_call_in_progress.py +21 -0
  1691. openai/types/realtime/response_output_item_added_event.py +25 -0
  1692. openai/types/realtime/response_output_item_done_event.py +25 -0
  1693. openai/types/realtime/response_text_delta_event.py +30 -0
  1694. openai/types/realtime/response_text_done_event.py +30 -0
  1695. openai/types/realtime/session_created_event.py +23 -0
  1696. openai/types/realtime/session_update_event.py +31 -0
  1697. openai/types/realtime/session_update_event_param.py +32 -0
  1698. openai/types/realtime/session_updated_event.py +23 -0
  1699. openai/types/responses/__init__.py +270 -0
  1700. openai/types/responses/apply_patch_tool.py +12 -0
  1701. openai/types/responses/apply_patch_tool_param.py +12 -0
  1702. openai/types/responses/computer_tool.py +21 -0
  1703. openai/types/responses/computer_tool_param.py +21 -0
  1704. openai/types/responses/custom_tool.py +23 -0
  1705. openai/types/responses/custom_tool_param.py +23 -0
  1706. openai/types/responses/easy_input_message.py +26 -0
  1707. openai/types/responses/easy_input_message_param.py +27 -0
  1708. openai/types/responses/file_search_tool.py +58 -0
  1709. openai/types/responses/file_search_tool_param.py +60 -0
  1710. openai/types/responses/function_shell_tool.py +12 -0
  1711. openai/types/responses/function_shell_tool_param.py +12 -0
  1712. openai/types/responses/function_tool.py +28 -0
  1713. openai/types/responses/function_tool_param.py +28 -0
  1714. openai/types/responses/input_item_list_params.py +34 -0
  1715. openai/types/responses/input_token_count_params.py +142 -0
  1716. openai/types/responses/input_token_count_response.py +13 -0
  1717. openai/types/responses/parsed_response.py +105 -0
  1718. openai/types/responses/response.py +307 -0
  1719. openai/types/responses/response_apply_patch_tool_call.py +76 -0
  1720. openai/types/responses/response_apply_patch_tool_call_output.py +31 -0
  1721. openai/types/responses/response_audio_delta_event.py +18 -0
  1722. openai/types/responses/response_audio_done_event.py +15 -0
  1723. openai/types/responses/response_audio_transcript_delta_event.py +18 -0
  1724. openai/types/responses/response_audio_transcript_done_event.py +15 -0
  1725. openai/types/responses/response_code_interpreter_call_code_delta_event.py +27 -0
  1726. openai/types/responses/response_code_interpreter_call_code_done_event.py +24 -0
  1727. openai/types/responses/response_code_interpreter_call_completed_event.py +24 -0
  1728. openai/types/responses/response_code_interpreter_call_in_progress_event.py +24 -0
  1729. openai/types/responses/response_code_interpreter_call_interpreting_event.py +24 -0
  1730. openai/types/responses/response_code_interpreter_tool_call.py +55 -0
  1731. openai/types/responses/response_code_interpreter_tool_call_param.py +54 -0
  1732. openai/types/responses/response_completed_event.py +19 -0
  1733. openai/types/responses/response_computer_tool_call.py +209 -0
  1734. openai/types/responses/response_computer_tool_call_output_item.py +47 -0
  1735. openai/types/responses/response_computer_tool_call_output_screenshot.py +22 -0
  1736. openai/types/responses/response_computer_tool_call_output_screenshot_param.py +21 -0
  1737. openai/types/responses/response_computer_tool_call_param.py +207 -0
  1738. openai/types/responses/response_content_part_added_event.py +44 -0
  1739. openai/types/responses/response_content_part_done_event.py +44 -0
  1740. openai/types/responses/response_conversation_param.py +12 -0
  1741. openai/types/responses/response_create_params.py +334 -0
  1742. openai/types/responses/response_created_event.py +19 -0
  1743. openai/types/responses/response_custom_tool_call.py +25 -0
  1744. openai/types/responses/response_custom_tool_call_input_delta_event.py +24 -0
  1745. openai/types/responses/response_custom_tool_call_input_done_event.py +24 -0
  1746. openai/types/responses/response_custom_tool_call_output.py +33 -0
  1747. openai/types/responses/response_custom_tool_call_output_param.py +31 -0
  1748. openai/types/responses/response_custom_tool_call_param.py +24 -0
  1749. openai/types/responses/response_error.py +34 -0
  1750. openai/types/responses/response_error_event.py +25 -0
  1751. openai/types/responses/response_failed_event.py +19 -0
  1752. openai/types/responses/response_file_search_call_completed_event.py +21 -0
  1753. openai/types/responses/response_file_search_call_in_progress_event.py +21 -0
  1754. openai/types/responses/response_file_search_call_searching_event.py +21 -0
  1755. openai/types/responses/response_file_search_tool_call.py +51 -0
  1756. openai/types/responses/response_file_search_tool_call_param.py +53 -0
  1757. openai/types/responses/response_format_text_config.py +16 -0
  1758. openai/types/responses/response_format_text_config_param.py +16 -0
  1759. openai/types/responses/response_format_text_json_schema_config.py +43 -0
  1760. openai/types/responses/response_format_text_json_schema_config_param.py +41 -0
  1761. openai/types/responses/response_function_call_arguments_delta_event.py +26 -0
  1762. openai/types/responses/response_function_call_arguments_done_event.py +26 -0
  1763. openai/types/responses/response_function_call_output_item.py +16 -0
  1764. openai/types/responses/response_function_call_output_item_list.py +10 -0
  1765. openai/types/responses/response_function_call_output_item_list_param.py +18 -0
  1766. openai/types/responses/response_function_call_output_item_param.py +16 -0
  1767. openai/types/responses/response_function_shell_call_output_content.py +36 -0
  1768. openai/types/responses/response_function_shell_call_output_content_param.py +35 -0
  1769. openai/types/responses/response_function_shell_tool_call.py +44 -0
  1770. openai/types/responses/response_function_shell_tool_call_output.py +70 -0
  1771. openai/types/responses/response_function_tool_call.py +32 -0
  1772. openai/types/responses/response_function_tool_call_item.py +10 -0
  1773. openai/types/responses/response_function_tool_call_output_item.py +40 -0
  1774. openai/types/responses/response_function_tool_call_param.py +31 -0
  1775. openai/types/responses/response_function_web_search.py +67 -0
  1776. openai/types/responses/response_function_web_search_param.py +73 -0
  1777. openai/types/responses/response_image_gen_call_completed_event.py +21 -0
  1778. openai/types/responses/response_image_gen_call_generating_event.py +21 -0
  1779. openai/types/responses/response_image_gen_call_in_progress_event.py +21 -0
  1780. openai/types/responses/response_image_gen_call_partial_image_event.py +30 -0
  1781. openai/types/responses/response_in_progress_event.py +19 -0
  1782. openai/types/responses/response_includable.py +16 -0
  1783. openai/types/responses/response_incomplete_event.py +19 -0
  1784. openai/types/responses/response_input_audio.py +22 -0
  1785. openai/types/responses/response_input_audio_param.py +22 -0
  1786. openai/types/responses/response_input_content.py +15 -0
  1787. openai/types/responses/response_input_content_param.py +14 -0
  1788. openai/types/responses/response_input_file.py +25 -0
  1789. openai/types/responses/response_input_file_content.py +25 -0
  1790. openai/types/responses/response_input_file_content_param.py +25 -0
  1791. openai/types/responses/response_input_file_param.py +25 -0
  1792. openai/types/responses/response_input_image.py +28 -0
  1793. openai/types/responses/response_input_image_content.py +28 -0
  1794. openai/types/responses/response_input_image_content_param.py +28 -0
  1795. openai/types/responses/response_input_image_param.py +28 -0
  1796. openai/types/responses/response_input_item.py +482 -0
  1797. openai/types/responses/response_input_item_param.py +479 -0
  1798. openai/types/responses/response_input_message_content_list.py +10 -0
  1799. openai/types/responses/response_input_message_content_list_param.py +16 -0
  1800. openai/types/responses/response_input_message_item.py +33 -0
  1801. openai/types/responses/response_input_param.py +482 -0
  1802. openai/types/responses/response_input_text.py +15 -0
  1803. openai/types/responses/response_input_text_content.py +15 -0
  1804. openai/types/responses/response_input_text_content_param.py +15 -0
  1805. openai/types/responses/response_input_text_param.py +15 -0
  1806. openai/types/responses/response_item.py +226 -0
  1807. openai/types/responses/response_item_list.py +26 -0
  1808. openai/types/responses/response_mcp_call_arguments_delta_event.py +27 -0
  1809. openai/types/responses/response_mcp_call_arguments_done_event.py +24 -0
  1810. openai/types/responses/response_mcp_call_completed_event.py +21 -0
  1811. openai/types/responses/response_mcp_call_failed_event.py +21 -0
  1812. openai/types/responses/response_mcp_call_in_progress_event.py +21 -0
  1813. openai/types/responses/response_mcp_list_tools_completed_event.py +21 -0
  1814. openai/types/responses/response_mcp_list_tools_failed_event.py +21 -0
  1815. openai/types/responses/response_mcp_list_tools_in_progress_event.py +21 -0
  1816. openai/types/responses/response_output_item.py +189 -0
  1817. openai/types/responses/response_output_item_added_event.py +22 -0
  1818. openai/types/responses/response_output_item_done_event.py +22 -0
  1819. openai/types/responses/response_output_message.py +34 -0
  1820. openai/types/responses/response_output_message_param.py +34 -0
  1821. openai/types/responses/response_output_refusal.py +15 -0
  1822. openai/types/responses/response_output_refusal_param.py +15 -0
  1823. openai/types/responses/response_output_text.py +117 -0
  1824. openai/types/responses/response_output_text_annotation_added_event.py +30 -0
  1825. openai/types/responses/response_output_text_param.py +115 -0
  1826. openai/types/responses/response_prompt.py +28 -0
  1827. openai/types/responses/response_prompt_param.py +29 -0
  1828. openai/types/responses/response_queued_event.py +19 -0
  1829. openai/types/responses/response_reasoning_item.py +51 -0
  1830. openai/types/responses/response_reasoning_item_param.py +51 -0
  1831. openai/types/responses/response_reasoning_summary_part_added_event.py +35 -0
  1832. openai/types/responses/response_reasoning_summary_part_done_event.py +35 -0
  1833. openai/types/responses/response_reasoning_summary_text_delta_event.py +27 -0
  1834. openai/types/responses/response_reasoning_summary_text_done_event.py +27 -0
  1835. openai/types/responses/response_reasoning_text_delta_event.py +27 -0
  1836. openai/types/responses/response_reasoning_text_done_event.py +27 -0
  1837. openai/types/responses/response_refusal_delta_event.py +27 -0
  1838. openai/types/responses/response_refusal_done_event.py +27 -0
  1839. openai/types/responses/response_retrieve_params.py +59 -0
  1840. openai/types/responses/response_status.py +7 -0
  1841. openai/types/responses/response_stream_event.py +120 -0
  1842. openai/types/responses/response_text_config.py +35 -0
  1843. openai/types/responses/response_text_config_param.py +36 -0
  1844. openai/types/responses/response_text_delta_event.py +50 -0
  1845. openai/types/responses/response_text_done_event.py +50 -0
  1846. openai/types/responses/response_usage.py +35 -0
  1847. openai/types/responses/response_web_search_call_completed_event.py +21 -0
  1848. openai/types/responses/response_web_search_call_in_progress_event.py +21 -0
  1849. openai/types/responses/response_web_search_call_searching_event.py +21 -0
  1850. openai/types/responses/tool.py +271 -0
  1851. openai/types/responses/tool_choice_allowed.py +36 -0
  1852. openai/types/responses/tool_choice_allowed_param.py +36 -0
  1853. openai/types/responses/tool_choice_apply_patch.py +12 -0
  1854. openai/types/responses/tool_choice_apply_patch_param.py +12 -0
  1855. openai/types/responses/tool_choice_custom.py +15 -0
  1856. openai/types/responses/tool_choice_custom_param.py +15 -0
  1857. openai/types/responses/tool_choice_function.py +15 -0
  1858. openai/types/responses/tool_choice_function_param.py +15 -0
  1859. openai/types/responses/tool_choice_mcp.py +19 -0
  1860. openai/types/responses/tool_choice_mcp_param.py +19 -0
  1861. openai/types/responses/tool_choice_options.py +7 -0
  1862. openai/types/responses/tool_choice_shell.py +12 -0
  1863. openai/types/responses/tool_choice_shell_param.py +12 -0
  1864. openai/types/responses/tool_choice_types.py +31 -0
  1865. openai/types/responses/tool_choice_types_param.py +33 -0
  1866. openai/types/responses/tool_param.py +271 -0
  1867. openai/types/responses/web_search_preview_tool.py +49 -0
  1868. openai/types/responses/web_search_preview_tool_param.py +49 -0
  1869. openai/types/responses/web_search_tool.py +63 -0
  1870. openai/types/responses/web_search_tool_param.py +65 -0
  1871. openai/types/shared/__init__.py +19 -0
  1872. openai/types/shared/all_models.py +28 -0
  1873. openai/types/shared/chat_model.py +75 -0
  1874. openai/types/shared/comparison_filter.py +34 -0
  1875. openai/types/shared/compound_filter.py +22 -0
  1876. openai/types/shared/custom_tool_input_format.py +28 -0
  1877. openai/types/shared/error_object.py +17 -0
  1878. openai/types/shared/function_definition.py +43 -0
  1879. openai/types/shared/function_parameters.py +8 -0
  1880. openai/types/shared/metadata.py +8 -0
  1881. openai/types/shared/reasoning.py +44 -0
  1882. openai/types/shared/reasoning_effort.py +8 -0
  1883. openai/types/shared/response_format_json_object.py +12 -0
  1884. openai/types/shared/response_format_json_schema.py +48 -0
  1885. openai/types/shared/response_format_text.py +12 -0
  1886. openai/types/shared/response_format_text_grammar.py +15 -0
  1887. openai/types/shared/response_format_text_python.py +12 -0
  1888. openai/types/shared/responses_model.py +28 -0
  1889. openai/types/shared_params/__init__.py +15 -0
  1890. openai/types/shared_params/chat_model.py +77 -0
  1891. openai/types/shared_params/comparison_filter.py +36 -0
  1892. openai/types/shared_params/compound_filter.py +23 -0
  1893. openai/types/shared_params/custom_tool_input_format.py +27 -0
  1894. openai/types/shared_params/function_definition.py +45 -0
  1895. openai/types/shared_params/function_parameters.py +10 -0
  1896. openai/types/shared_params/metadata.py +10 -0
  1897. openai/types/shared_params/reasoning.py +45 -0
  1898. openai/types/shared_params/reasoning_effort.py +10 -0
  1899. openai/types/shared_params/response_format_json_object.py +12 -0
  1900. openai/types/shared_params/response_format_json_schema.py +46 -0
  1901. openai/types/shared_params/response_format_text.py +12 -0
  1902. openai/types/shared_params/responses_model.py +30 -0
  1903. openai/types/static_file_chunking_strategy.py +20 -0
  1904. openai/types/static_file_chunking_strategy_object.py +15 -0
  1905. openai/types/static_file_chunking_strategy_object_param.py +16 -0
  1906. openai/types/static_file_chunking_strategy_param.py +22 -0
  1907. openai/types/upload.py +42 -0
  1908. openai/types/upload_complete_params.py +20 -0
  1909. openai/types/upload_create_params.py +52 -0
  1910. openai/types/uploads/__init__.py +6 -0
  1911. openai/types/uploads/part_create_params.py +14 -0
  1912. openai/types/uploads/upload_part.py +21 -0
  1913. openai/types/vector_store.py +82 -0
  1914. openai/types/vector_store_create_params.py +61 -0
  1915. openai/types/vector_store_deleted.py +15 -0
  1916. openai/types/vector_store_list_params.py +39 -0
  1917. openai/types/vector_store_search_params.py +42 -0
  1918. openai/types/vector_store_search_response.py +39 -0
  1919. openai/types/vector_store_update_params.py +39 -0
  1920. openai/types/vector_stores/__init__.py +13 -0
  1921. openai/types/vector_stores/file_batch_create_params.py +70 -0
  1922. openai/types/vector_stores/file_batch_list_files_params.py +47 -0
  1923. openai/types/vector_stores/file_content_response.py +15 -0
  1924. openai/types/vector_stores/file_create_params.py +35 -0
  1925. openai/types/vector_stores/file_list_params.py +45 -0
  1926. openai/types/vector_stores/file_update_params.py +21 -0
  1927. openai/types/vector_stores/vector_store_file.py +67 -0
  1928. openai/types/vector_stores/vector_store_file_batch.py +54 -0
  1929. openai/types/vector_stores/vector_store_file_deleted.py +15 -0
  1930. openai/types/video.py +53 -0
  1931. openai/types/video_create_error.py +11 -0
  1932. openai/types/video_create_params.py +29 -0
  1933. openai/types/video_delete_response.py +18 -0
  1934. openai/types/video_download_content_params.py +12 -0
  1935. openai/types/video_list_params.py +21 -0
  1936. openai/types/video_model.py +7 -0
  1937. openai/types/video_remix_params.py +12 -0
  1938. openai/types/video_seconds.py +7 -0
  1939. openai/types/video_size.py +7 -0
  1940. openai/types/webhooks/__init__.py +24 -0
  1941. openai/types/webhooks/batch_cancelled_webhook_event.py +30 -0
  1942. openai/types/webhooks/batch_completed_webhook_event.py +30 -0
  1943. openai/types/webhooks/batch_expired_webhook_event.py +30 -0
  1944. openai/types/webhooks/batch_failed_webhook_event.py +30 -0
  1945. openai/types/webhooks/eval_run_canceled_webhook_event.py +30 -0
  1946. openai/types/webhooks/eval_run_failed_webhook_event.py +30 -0
  1947. openai/types/webhooks/eval_run_succeeded_webhook_event.py +30 -0
  1948. openai/types/webhooks/fine_tuning_job_cancelled_webhook_event.py +30 -0
  1949. openai/types/webhooks/fine_tuning_job_failed_webhook_event.py +30 -0
  1950. openai/types/webhooks/fine_tuning_job_succeeded_webhook_event.py +30 -0
  1951. openai/types/webhooks/realtime_call_incoming_webhook_event.py +41 -0
  1952. openai/types/webhooks/response_cancelled_webhook_event.py +30 -0
  1953. openai/types/webhooks/response_completed_webhook_event.py +30 -0
  1954. openai/types/webhooks/response_failed_webhook_event.py +30 -0
  1955. openai/types/webhooks/response_incomplete_webhook_event.py +30 -0
  1956. openai/types/webhooks/unwrap_webhook_event.py +44 -0
  1957. openai/types/websocket_connection_options.py +36 -0
  1958. openai/version.py +3 -0
@@ -0,0 +1,809 @@
1
+ # pyright: basic
2
+ from __future__ import annotations
3
+
4
+ import os
5
+ import sys
6
+ from typing import Any, TypeVar, Callable, Optional, NamedTuple
7
+ from typing_extensions import TypeAlias
8
+
9
+ from .._extras import pandas as pd
10
+
11
+
12
+ class Remediation(NamedTuple):
13
+ name: str
14
+ immediate_msg: Optional[str] = None
15
+ necessary_msg: Optional[str] = None
16
+ necessary_fn: Optional[Callable[[Any], Any]] = None
17
+ optional_msg: Optional[str] = None
18
+ optional_fn: Optional[Callable[[Any], Any]] = None
19
+ error_msg: Optional[str] = None
20
+
21
+
22
+ OptionalDataFrameT = TypeVar("OptionalDataFrameT", bound="Optional[pd.DataFrame]")
23
+
24
+
25
+ def num_examples_validator(df: pd.DataFrame) -> Remediation:
26
+ """
27
+ This validator will only print out the number of examples and recommend to the user to increase the number of examples if less than 100.
28
+ """
29
+ MIN_EXAMPLES = 100
30
+ optional_suggestion = (
31
+ ""
32
+ if len(df) >= MIN_EXAMPLES
33
+ else ". In general, we recommend having at least a few hundred examples. We've found that performance tends to linearly increase for every doubling of the number of examples"
34
+ )
35
+ immediate_msg = f"\n- Your file contains {len(df)} prompt-completion pairs{optional_suggestion}"
36
+ return Remediation(name="num_examples", immediate_msg=immediate_msg)
37
+
38
+
39
+ def necessary_column_validator(df: pd.DataFrame, necessary_column: str) -> Remediation:
40
+ """
41
+ This validator will ensure that the necessary column is present in the dataframe.
42
+ """
43
+
44
+ def lower_case_column(df: pd.DataFrame, column: Any) -> pd.DataFrame:
45
+ cols = [c for c in df.columns if str(c).lower() == column]
46
+ df.rename(columns={cols[0]: column.lower()}, inplace=True)
47
+ return df
48
+
49
+ immediate_msg = None
50
+ necessary_fn = None
51
+ necessary_msg = None
52
+ error_msg = None
53
+
54
+ if necessary_column not in df.columns:
55
+ if necessary_column in [str(c).lower() for c in df.columns]:
56
+
57
+ def lower_case_column_creator(df: pd.DataFrame) -> pd.DataFrame:
58
+ return lower_case_column(df, necessary_column)
59
+
60
+ necessary_fn = lower_case_column_creator
61
+ immediate_msg = f"\n- The `{necessary_column}` column/key should be lowercase"
62
+ necessary_msg = f"Lower case column name to `{necessary_column}`"
63
+ else:
64
+ error_msg = f"`{necessary_column}` column/key is missing. Please make sure you name your columns/keys appropriately, then retry"
65
+
66
+ return Remediation(
67
+ name="necessary_column",
68
+ immediate_msg=immediate_msg,
69
+ necessary_msg=necessary_msg,
70
+ necessary_fn=necessary_fn,
71
+ error_msg=error_msg,
72
+ )
73
+
74
+
75
+ def additional_column_validator(df: pd.DataFrame, fields: list[str] = ["prompt", "completion"]) -> Remediation:
76
+ """
77
+ This validator will remove additional columns from the dataframe.
78
+ """
79
+ additional_columns = []
80
+ necessary_msg = None
81
+ immediate_msg = None
82
+ necessary_fn = None # type: ignore
83
+
84
+ if len(df.columns) > 2:
85
+ additional_columns = [c for c in df.columns if c not in fields]
86
+ warn_message = ""
87
+ for ac in additional_columns:
88
+ dups = [c for c in additional_columns if ac in c]
89
+ if len(dups) > 0:
90
+ warn_message += f"\n WARNING: Some of the additional columns/keys contain `{ac}` in their name. These will be ignored, and the column/key `{ac}` will be used instead. This could also result from a duplicate column/key in the provided file."
91
+ immediate_msg = f"\n- The input file should contain exactly two columns/keys per row. Additional columns/keys present are: {additional_columns}{warn_message}"
92
+ necessary_msg = f"Remove additional columns/keys: {additional_columns}"
93
+
94
+ def necessary_fn(x: Any) -> Any:
95
+ return x[fields]
96
+
97
+ return Remediation(
98
+ name="additional_column",
99
+ immediate_msg=immediate_msg,
100
+ necessary_msg=necessary_msg,
101
+ necessary_fn=necessary_fn,
102
+ )
103
+
104
+
105
+ def non_empty_field_validator(df: pd.DataFrame, field: str = "completion") -> Remediation:
106
+ """
107
+ This validator will ensure that no completion is empty.
108
+ """
109
+ necessary_msg = None
110
+ necessary_fn = None # type: ignore
111
+ immediate_msg = None
112
+
113
+ if df[field].apply(lambda x: x == "").any() or df[field].isnull().any():
114
+ empty_rows = (df[field] == "") | (df[field].isnull())
115
+ empty_indexes = df.reset_index().index[empty_rows].tolist()
116
+ immediate_msg = f"\n- `{field}` column/key should not contain empty strings. These are rows: {empty_indexes}"
117
+
118
+ def necessary_fn(x: Any) -> Any:
119
+ return x[x[field] != ""].dropna(subset=[field])
120
+
121
+ necessary_msg = f"Remove {len(empty_indexes)} rows with empty {field}s"
122
+
123
+ return Remediation(
124
+ name=f"empty_{field}",
125
+ immediate_msg=immediate_msg,
126
+ necessary_msg=necessary_msg,
127
+ necessary_fn=necessary_fn,
128
+ )
129
+
130
+
131
+ def duplicated_rows_validator(df: pd.DataFrame, fields: list[str] = ["prompt", "completion"]) -> Remediation:
132
+ """
133
+ This validator will suggest to the user to remove duplicate rows if they exist.
134
+ """
135
+ duplicated_rows = df.duplicated(subset=fields)
136
+ duplicated_indexes = df.reset_index().index[duplicated_rows].tolist()
137
+ immediate_msg = None
138
+ optional_msg = None
139
+ optional_fn = None # type: ignore
140
+
141
+ if len(duplicated_indexes) > 0:
142
+ immediate_msg = f"\n- There are {len(duplicated_indexes)} duplicated {'-'.join(fields)} sets. These are rows: {duplicated_indexes}"
143
+ optional_msg = f"Remove {len(duplicated_indexes)} duplicate rows"
144
+
145
+ def optional_fn(x: Any) -> Any:
146
+ return x.drop_duplicates(subset=fields)
147
+
148
+ return Remediation(
149
+ name="duplicated_rows",
150
+ immediate_msg=immediate_msg,
151
+ optional_msg=optional_msg,
152
+ optional_fn=optional_fn,
153
+ )
154
+
155
+
156
+ def long_examples_validator(df: pd.DataFrame) -> Remediation:
157
+ """
158
+ This validator will suggest to the user to remove examples that are too long.
159
+ """
160
+ immediate_msg = None
161
+ optional_msg = None
162
+ optional_fn = None # type: ignore
163
+
164
+ ft_type = infer_task_type(df)
165
+ if ft_type != "open-ended generation":
166
+
167
+ def get_long_indexes(d: pd.DataFrame) -> Any:
168
+ long_examples = d.apply(lambda x: len(x.prompt) + len(x.completion) > 10000, axis=1)
169
+ return d.reset_index().index[long_examples].tolist()
170
+
171
+ long_indexes = get_long_indexes(df)
172
+
173
+ if len(long_indexes) > 0:
174
+ immediate_msg = f"\n- There are {len(long_indexes)} examples that are very long. These are rows: {long_indexes}\nFor conditional generation, and for classification the examples shouldn't be longer than 2048 tokens."
175
+ optional_msg = f"Remove {len(long_indexes)} long examples"
176
+
177
+ def optional_fn(x: Any) -> Any:
178
+ long_indexes_to_drop = get_long_indexes(x)
179
+ if long_indexes != long_indexes_to_drop:
180
+ sys.stdout.write(
181
+ f"The indices of the long examples has changed as a result of a previously applied recommendation.\nThe {len(long_indexes_to_drop)} long examples to be dropped are now at the following indices: {long_indexes_to_drop}\n"
182
+ )
183
+ return x.drop(long_indexes_to_drop)
184
+
185
+ return Remediation(
186
+ name="long_examples",
187
+ immediate_msg=immediate_msg,
188
+ optional_msg=optional_msg,
189
+ optional_fn=optional_fn,
190
+ )
191
+
192
+
193
+ def common_prompt_suffix_validator(df: pd.DataFrame) -> Remediation:
194
+ """
195
+ This validator will suggest to add a common suffix to the prompt if one doesn't already exist in case of classification or conditional generation.
196
+ """
197
+ error_msg = None
198
+ immediate_msg = None
199
+ optional_msg = None
200
+ optional_fn = None # type: ignore
201
+
202
+ # Find a suffix which is not contained within the prompt otherwise
203
+ suggested_suffix = "\n\n### =>\n\n"
204
+ suffix_options = [
205
+ " ->",
206
+ "\n\n###\n\n",
207
+ "\n\n===\n\n",
208
+ "\n\n---\n\n",
209
+ "\n\n===>\n\n",
210
+ "\n\n--->\n\n",
211
+ ]
212
+ for suffix_option in suffix_options:
213
+ if suffix_option == " ->":
214
+ if df.prompt.str.contains("\n").any():
215
+ continue
216
+ if df.prompt.str.contains(suffix_option, regex=False).any():
217
+ continue
218
+ suggested_suffix = suffix_option
219
+ break
220
+ display_suggested_suffix = suggested_suffix.replace("\n", "\\n")
221
+
222
+ ft_type = infer_task_type(df)
223
+ if ft_type == "open-ended generation":
224
+ return Remediation(name="common_suffix")
225
+
226
+ def add_suffix(x: Any, suffix: Any) -> Any:
227
+ x["prompt"] += suffix
228
+ return x
229
+
230
+ common_suffix = get_common_xfix(df.prompt, xfix="suffix")
231
+ if (df.prompt == common_suffix).all():
232
+ error_msg = f"All prompts are identical: `{common_suffix}`\nConsider leaving the prompts blank if you want to do open-ended generation, otherwise ensure prompts are different"
233
+ return Remediation(name="common_suffix", error_msg=error_msg)
234
+
235
+ if common_suffix != "":
236
+ common_suffix_new_line_handled = common_suffix.replace("\n", "\\n")
237
+ immediate_msg = f"\n- All prompts end with suffix `{common_suffix_new_line_handled}`"
238
+ if len(common_suffix) > 10:
239
+ immediate_msg += f". This suffix seems very long. Consider replacing with a shorter suffix, such as `{display_suggested_suffix}`"
240
+ if df.prompt.str[: -len(common_suffix)].str.contains(common_suffix, regex=False).any():
241
+ immediate_msg += f"\n WARNING: Some of your prompts contain the suffix `{common_suffix}` more than once. We strongly suggest that you review your prompts and add a unique suffix"
242
+
243
+ else:
244
+ immediate_msg = "\n- Your data does not contain a common separator at the end of your prompts. Having a separator string appended to the end of the prompt makes it clearer to the fine-tuned model where the completion should begin. See https://platform.openai.com/docs/guides/fine-tuning/preparing-your-dataset for more detail and examples. If you intend to do open-ended generation, then you should leave the prompts empty"
245
+
246
+ if common_suffix == "":
247
+ optional_msg = f"Add a suffix separator `{display_suggested_suffix}` to all prompts"
248
+
249
+ def optional_fn(x: Any) -> Any:
250
+ return add_suffix(x, suggested_suffix)
251
+
252
+ return Remediation(
253
+ name="common_completion_suffix",
254
+ immediate_msg=immediate_msg,
255
+ optional_msg=optional_msg,
256
+ optional_fn=optional_fn,
257
+ error_msg=error_msg,
258
+ )
259
+
260
+
261
+ def common_prompt_prefix_validator(df: pd.DataFrame) -> Remediation:
262
+ """
263
+ This validator will suggest to remove a common prefix from the prompt if a long one exist.
264
+ """
265
+ MAX_PREFIX_LEN = 12
266
+
267
+ immediate_msg = None
268
+ optional_msg = None
269
+ optional_fn = None # type: ignore
270
+
271
+ common_prefix = get_common_xfix(df.prompt, xfix="prefix")
272
+ if common_prefix == "":
273
+ return Remediation(name="common_prefix")
274
+
275
+ def remove_common_prefix(x: Any, prefix: Any) -> Any:
276
+ x["prompt"] = x["prompt"].str[len(prefix) :]
277
+ return x
278
+
279
+ if (df.prompt == common_prefix).all():
280
+ # already handled by common_suffix_validator
281
+ return Remediation(name="common_prefix")
282
+
283
+ if common_prefix != "":
284
+ immediate_msg = f"\n- All prompts start with prefix `{common_prefix}`"
285
+ if MAX_PREFIX_LEN < len(common_prefix):
286
+ immediate_msg += ". Fine-tuning doesn't require the instruction specifying the task, or a few-shot example scenario. Most of the time you should only add the input data into the prompt, and the desired output into the completion"
287
+ optional_msg = f"Remove prefix `{common_prefix}` from all prompts"
288
+
289
+ def optional_fn(x: Any) -> Any:
290
+ return remove_common_prefix(x, common_prefix)
291
+
292
+ return Remediation(
293
+ name="common_prompt_prefix",
294
+ immediate_msg=immediate_msg,
295
+ optional_msg=optional_msg,
296
+ optional_fn=optional_fn,
297
+ )
298
+
299
+
300
+ def common_completion_prefix_validator(df: pd.DataFrame) -> Remediation:
301
+ """
302
+ This validator will suggest to remove a common prefix from the completion if a long one exist.
303
+ """
304
+ MAX_PREFIX_LEN = 5
305
+
306
+ common_prefix = get_common_xfix(df.completion, xfix="prefix")
307
+ ws_prefix = len(common_prefix) > 0 and common_prefix[0] == " "
308
+ if len(common_prefix) < MAX_PREFIX_LEN:
309
+ return Remediation(name="common_prefix")
310
+
311
+ def remove_common_prefix(x: Any, prefix: Any, ws_prefix: Any) -> Any:
312
+ x["completion"] = x["completion"].str[len(prefix) :]
313
+ if ws_prefix:
314
+ # keep the single whitespace as prefix
315
+ x["completion"] = f" {x['completion']}"
316
+ return x
317
+
318
+ if (df.completion == common_prefix).all():
319
+ # already handled by common_suffix_validator
320
+ return Remediation(name="common_prefix")
321
+
322
+ immediate_msg = f"\n- All completions start with prefix `{common_prefix}`. Most of the time you should only add the output data into the completion, without any prefix"
323
+ optional_msg = f"Remove prefix `{common_prefix}` from all completions"
324
+
325
+ def optional_fn(x: Any) -> Any:
326
+ return remove_common_prefix(x, common_prefix, ws_prefix)
327
+
328
+ return Remediation(
329
+ name="common_completion_prefix",
330
+ immediate_msg=immediate_msg,
331
+ optional_msg=optional_msg,
332
+ optional_fn=optional_fn,
333
+ )
334
+
335
+
336
+ def common_completion_suffix_validator(df: pd.DataFrame) -> Remediation:
337
+ """
338
+ This validator will suggest to add a common suffix to the completion if one doesn't already exist in case of classification or conditional generation.
339
+ """
340
+ error_msg = None
341
+ immediate_msg = None
342
+ optional_msg = None
343
+ optional_fn = None # type: ignore
344
+
345
+ ft_type = infer_task_type(df)
346
+ if ft_type == "open-ended generation" or ft_type == "classification":
347
+ return Remediation(name="common_suffix")
348
+
349
+ common_suffix = get_common_xfix(df.completion, xfix="suffix")
350
+ if (df.completion == common_suffix).all():
351
+ error_msg = f"All completions are identical: `{common_suffix}`\nEnsure completions are different, otherwise the model will just repeat `{common_suffix}`"
352
+ return Remediation(name="common_suffix", error_msg=error_msg)
353
+
354
+ # Find a suffix which is not contained within the completion otherwise
355
+ suggested_suffix = " [END]"
356
+ suffix_options = [
357
+ "\n",
358
+ ".",
359
+ " END",
360
+ "***",
361
+ "+++",
362
+ "&&&",
363
+ "$$$",
364
+ "@@@",
365
+ "%%%",
366
+ ]
367
+ for suffix_option in suffix_options:
368
+ if df.completion.str.contains(suffix_option, regex=False).any():
369
+ continue
370
+ suggested_suffix = suffix_option
371
+ break
372
+ display_suggested_suffix = suggested_suffix.replace("\n", "\\n")
373
+
374
+ def add_suffix(x: Any, suffix: Any) -> Any:
375
+ x["completion"] += suffix
376
+ return x
377
+
378
+ if common_suffix != "":
379
+ common_suffix_new_line_handled = common_suffix.replace("\n", "\\n")
380
+ immediate_msg = f"\n- All completions end with suffix `{common_suffix_new_line_handled}`"
381
+ if len(common_suffix) > 10:
382
+ immediate_msg += f". This suffix seems very long. Consider replacing with a shorter suffix, such as `{display_suggested_suffix}`"
383
+ if df.completion.str[: -len(common_suffix)].str.contains(common_suffix, regex=False).any():
384
+ immediate_msg += f"\n WARNING: Some of your completions contain the suffix `{common_suffix}` more than once. We suggest that you review your completions and add a unique ending"
385
+
386
+ else:
387
+ immediate_msg = "\n- Your data does not contain a common ending at the end of your completions. Having a common ending string appended to the end of the completion makes it clearer to the fine-tuned model where the completion should end. See https://platform.openai.com/docs/guides/fine-tuning/preparing-your-dataset for more detail and examples."
388
+
389
+ if common_suffix == "":
390
+ optional_msg = f"Add a suffix ending `{display_suggested_suffix}` to all completions"
391
+
392
+ def optional_fn(x: Any) -> Any:
393
+ return add_suffix(x, suggested_suffix)
394
+
395
+ return Remediation(
396
+ name="common_completion_suffix",
397
+ immediate_msg=immediate_msg,
398
+ optional_msg=optional_msg,
399
+ optional_fn=optional_fn,
400
+ error_msg=error_msg,
401
+ )
402
+
403
+
404
+ def completions_space_start_validator(df: pd.DataFrame) -> Remediation:
405
+ """
406
+ This validator will suggest to add a space at the start of the completion if it doesn't already exist. This helps with tokenization.
407
+ """
408
+
409
+ def add_space_start(x: Any) -> Any:
410
+ x["completion"] = x["completion"].apply(lambda s: ("" if s.startswith(" ") else " ") + s)
411
+ return x
412
+
413
+ optional_msg = None
414
+ optional_fn = None
415
+ immediate_msg = None
416
+
417
+ if df.completion.str[:1].nunique() != 1 or df.completion.values[0][0] != " ":
418
+ immediate_msg = "\n- The completion should start with a whitespace character (` `). This tends to produce better results due to the tokenization we use. See https://platform.openai.com/docs/guides/fine-tuning/preparing-your-dataset for more details"
419
+ optional_msg = "Add a whitespace character to the beginning of the completion"
420
+ optional_fn = add_space_start
421
+ return Remediation(
422
+ name="completion_space_start",
423
+ immediate_msg=immediate_msg,
424
+ optional_msg=optional_msg,
425
+ optional_fn=optional_fn,
426
+ )
427
+
428
+
429
+ def lower_case_validator(df: pd.DataFrame, column: Any) -> Remediation | None:
430
+ """
431
+ This validator will suggest to lowercase the column values, if more than a third of letters are uppercase.
432
+ """
433
+
434
+ def lower_case(x: Any) -> Any:
435
+ x[column] = x[column].str.lower()
436
+ return x
437
+
438
+ count_upper = df[column].apply(lambda x: sum(1 for c in x if c.isalpha() and c.isupper())).sum()
439
+ count_lower = df[column].apply(lambda x: sum(1 for c in x if c.isalpha() and c.islower())).sum()
440
+
441
+ if count_upper * 2 > count_lower:
442
+ return Remediation(
443
+ name="lower_case",
444
+ immediate_msg=f"\n- More than a third of your `{column}` column/key is uppercase. Uppercase {column}s tends to perform worse than a mixture of case encountered in normal language. We recommend to lower case the data if that makes sense in your domain. See https://platform.openai.com/docs/guides/fine-tuning/preparing-your-dataset for more details",
445
+ optional_msg=f"Lowercase all your data in column/key `{column}`",
446
+ optional_fn=lower_case,
447
+ )
448
+ return None
449
+
450
+
451
+ def read_any_format(
452
+ fname: str, fields: list[str] = ["prompt", "completion"]
453
+ ) -> tuple[pd.DataFrame | None, Remediation]:
454
+ """
455
+ This function will read a file saved in .csv, .json, .txt, .xlsx or .tsv format using pandas.
456
+ - for .xlsx it will read the first sheet
457
+ - for .txt it will assume completions and split on newline
458
+ """
459
+ remediation = None
460
+ necessary_msg = None
461
+ immediate_msg = None
462
+ error_msg = None
463
+ df = None
464
+
465
+ if os.path.isfile(fname):
466
+ try:
467
+ if fname.lower().endswith(".csv") or fname.lower().endswith(".tsv"):
468
+ file_extension_str, separator = ("CSV", ",") if fname.lower().endswith(".csv") else ("TSV", "\t")
469
+ immediate_msg = (
470
+ f"\n- Based on your file extension, your file is formatted as a {file_extension_str} file"
471
+ )
472
+ necessary_msg = f"Your format `{file_extension_str}` will be converted to `JSONL`"
473
+ df = pd.read_csv(fname, sep=separator, dtype=str).fillna("")
474
+ elif fname.lower().endswith(".xlsx"):
475
+ immediate_msg = "\n- Based on your file extension, your file is formatted as an Excel file"
476
+ necessary_msg = "Your format `XLSX` will be converted to `JSONL`"
477
+ xls = pd.ExcelFile(fname)
478
+ sheets = xls.sheet_names
479
+ if len(sheets) > 1:
480
+ immediate_msg += "\n- Your Excel file contains more than one sheet. Please either save as csv or ensure all data is present in the first sheet. WARNING: Reading only the first sheet..."
481
+ df = pd.read_excel(fname, dtype=str).fillna("")
482
+ elif fname.lower().endswith(".txt"):
483
+ immediate_msg = "\n- Based on your file extension, you provided a text file"
484
+ necessary_msg = "Your format `TXT` will be converted to `JSONL`"
485
+ with open(fname, "r") as f:
486
+ content = f.read()
487
+ df = pd.DataFrame(
488
+ [["", line] for line in content.split("\n")],
489
+ columns=fields,
490
+ dtype=str,
491
+ ).fillna("")
492
+ elif fname.lower().endswith(".jsonl"):
493
+ df = pd.read_json(fname, lines=True, dtype=str).fillna("") # type: ignore
494
+ if len(df) == 1: # type: ignore
495
+ # this is NOT what we expect for a .jsonl file
496
+ immediate_msg = "\n- Your JSONL file appears to be in a JSON format. Your file will be converted to JSONL format"
497
+ necessary_msg = "Your format `JSON` will be converted to `JSONL`"
498
+ df = pd.read_json(fname, dtype=str).fillna("") # type: ignore
499
+ else:
500
+ pass # this is what we expect for a .jsonl file
501
+ elif fname.lower().endswith(".json"):
502
+ try:
503
+ # to handle case where .json file is actually a .jsonl file
504
+ df = pd.read_json(fname, lines=True, dtype=str).fillna("") # type: ignore
505
+ if len(df) == 1: # type: ignore
506
+ # this code path corresponds to a .json file that has one line
507
+ df = pd.read_json(fname, dtype=str).fillna("") # type: ignore
508
+ else:
509
+ # this is NOT what we expect for a .json file
510
+ immediate_msg = "\n- Your JSON file appears to be in a JSONL format. Your file will be converted to JSONL format"
511
+ necessary_msg = "Your format `JSON` will be converted to `JSONL`"
512
+ except ValueError:
513
+ # this code path corresponds to a .json file that has multiple lines (i.e. it is indented)
514
+ df = pd.read_json(fname, dtype=str).fillna("") # type: ignore
515
+ else:
516
+ error_msg = (
517
+ "Your file must have one of the following extensions: .CSV, .TSV, .XLSX, .TXT, .JSON or .JSONL"
518
+ )
519
+ if "." in fname:
520
+ error_msg += f" Your file `{fname}` ends with the extension `.{fname.split('.')[-1]}` which is not supported."
521
+ else:
522
+ error_msg += f" Your file `{fname}` is missing a file extension."
523
+
524
+ except (ValueError, TypeError):
525
+ file_extension_str = fname.split(".")[-1].upper()
526
+ error_msg = f"Your file `{fname}` does not appear to be in valid {file_extension_str} format. Please ensure your file is formatted as a valid {file_extension_str} file."
527
+
528
+ else:
529
+ error_msg = f"File {fname} does not exist."
530
+
531
+ remediation = Remediation(
532
+ name="read_any_format",
533
+ necessary_msg=necessary_msg,
534
+ immediate_msg=immediate_msg,
535
+ error_msg=error_msg,
536
+ )
537
+ return df, remediation
538
+
539
+
540
+ def format_inferrer_validator(df: pd.DataFrame) -> Remediation:
541
+ """
542
+ This validator will infer the likely fine-tuning format of the data, and display it to the user if it is classification.
543
+ It will also suggest to use ada and explain train/validation split benefits.
544
+ """
545
+ ft_type = infer_task_type(df)
546
+ immediate_msg = None
547
+ if ft_type == "classification":
548
+ immediate_msg = f"\n- Based on your data it seems like you're trying to fine-tune a model for {ft_type}\n- For classification, we recommend you try one of the faster and cheaper models, such as `ada`\n- For classification, you can estimate the expected model performance by keeping a held out dataset, which is not used for training"
549
+ return Remediation(name="num_examples", immediate_msg=immediate_msg)
550
+
551
+
552
+ def apply_necessary_remediation(df: OptionalDataFrameT, remediation: Remediation) -> OptionalDataFrameT:
553
+ """
554
+ This function will apply a necessary remediation to a dataframe, or print an error message if one exists.
555
+ """
556
+ if remediation.error_msg is not None:
557
+ sys.stderr.write(f"\n\nERROR in {remediation.name} validator: {remediation.error_msg}\n\nAborting...")
558
+ sys.exit(1)
559
+ if remediation.immediate_msg is not None:
560
+ sys.stdout.write(remediation.immediate_msg)
561
+ if remediation.necessary_fn is not None:
562
+ df = remediation.necessary_fn(df)
563
+ return df
564
+
565
+
566
+ def accept_suggestion(input_text: str, auto_accept: bool) -> bool:
567
+ sys.stdout.write(input_text)
568
+ if auto_accept:
569
+ sys.stdout.write("Y\n")
570
+ return True
571
+ return input().lower() != "n"
572
+
573
+
574
+ def apply_optional_remediation(
575
+ df: pd.DataFrame, remediation: Remediation, auto_accept: bool
576
+ ) -> tuple[pd.DataFrame, bool]:
577
+ """
578
+ This function will apply an optional remediation to a dataframe, based on the user input.
579
+ """
580
+ optional_applied = False
581
+ input_text = f"- [Recommended] {remediation.optional_msg} [Y/n]: "
582
+ if remediation.optional_msg is not None:
583
+ if accept_suggestion(input_text, auto_accept):
584
+ assert remediation.optional_fn is not None
585
+ df = remediation.optional_fn(df)
586
+ optional_applied = True
587
+ if remediation.necessary_msg is not None:
588
+ sys.stdout.write(f"- [Necessary] {remediation.necessary_msg}\n")
589
+ return df, optional_applied
590
+
591
+
592
+ def estimate_fine_tuning_time(df: pd.DataFrame) -> None:
593
+ """
594
+ Estimate the time it'll take to fine-tune the dataset
595
+ """
596
+ ft_format = infer_task_type(df)
597
+ expected_time = 1.0
598
+ if ft_format == "classification":
599
+ num_examples = len(df)
600
+ expected_time = num_examples * 1.44
601
+ else:
602
+ size = df.memory_usage(index=True).sum()
603
+ expected_time = size * 0.0515
604
+
605
+ def format_time(time: float) -> str:
606
+ if time < 60:
607
+ return f"{round(time, 2)} seconds"
608
+ elif time < 3600:
609
+ return f"{round(time / 60, 2)} minutes"
610
+ elif time < 86400:
611
+ return f"{round(time / 3600, 2)} hours"
612
+ else:
613
+ return f"{round(time / 86400, 2)} days"
614
+
615
+ time_string = format_time(expected_time + 140)
616
+ sys.stdout.write(
617
+ f"Once your model starts training, it'll approximately take {time_string} to train a `curie` model, and less for `ada` and `babbage`. Queue will approximately take half an hour per job ahead of you.\n"
618
+ )
619
+
620
+
621
+ def get_outfnames(fname: str, split: bool) -> list[str]:
622
+ suffixes = ["_train", "_valid"] if split else [""]
623
+ i = 0
624
+ while True:
625
+ index_suffix = f" ({i})" if i > 0 else ""
626
+ candidate_fnames = [f"{os.path.splitext(fname)[0]}_prepared{suffix}{index_suffix}.jsonl" for suffix in suffixes]
627
+ if not any(os.path.isfile(f) for f in candidate_fnames):
628
+ return candidate_fnames
629
+ i += 1
630
+
631
+
632
+ def get_classification_hyperparams(df: pd.DataFrame) -> tuple[int, object]:
633
+ n_classes = df.completion.nunique()
634
+ pos_class = None
635
+ if n_classes == 2:
636
+ pos_class = df.completion.value_counts().index[0]
637
+ return n_classes, pos_class
638
+
639
+
640
+ def write_out_file(df: pd.DataFrame, fname: str, any_remediations: bool, auto_accept: bool) -> None:
641
+ """
642
+ This function will write out a dataframe to a file, if the user would like to proceed, and also offer a fine-tuning command with the newly created file.
643
+ For classification it will optionally ask the user if they would like to split the data into train/valid files, and modify the suggested command to include the valid set.
644
+ """
645
+ ft_format = infer_task_type(df)
646
+ common_prompt_suffix = get_common_xfix(df.prompt, xfix="suffix")
647
+ common_completion_suffix = get_common_xfix(df.completion, xfix="suffix")
648
+
649
+ split = False
650
+ input_text = "- [Recommended] Would you like to split into training and validation set? [Y/n]: "
651
+ if ft_format == "classification":
652
+ if accept_suggestion(input_text, auto_accept):
653
+ split = True
654
+
655
+ additional_params = ""
656
+ common_prompt_suffix_new_line_handled = common_prompt_suffix.replace("\n", "\\n")
657
+ common_completion_suffix_new_line_handled = common_completion_suffix.replace("\n", "\\n")
658
+ optional_ending_string = (
659
+ f' Make sure to include `stop=["{common_completion_suffix_new_line_handled}"]` so that the generated texts ends at the expected place.'
660
+ if len(common_completion_suffix_new_line_handled) > 0
661
+ else ""
662
+ )
663
+
664
+ input_text = "\n\nYour data will be written to a new JSONL file. Proceed [Y/n]: "
665
+
666
+ if not any_remediations and not split:
667
+ sys.stdout.write(
668
+ f'\nYou can use your file for fine-tuning:\n> openai api fine_tunes.create -t "{fname}"{additional_params}\n\nAfter you’ve fine-tuned a model, remember that your prompt has to end with the indicator string `{common_prompt_suffix_new_line_handled}` for the model to start generating completions, rather than continuing with the prompt.{optional_ending_string}\n'
669
+ )
670
+ estimate_fine_tuning_time(df)
671
+
672
+ elif accept_suggestion(input_text, auto_accept):
673
+ fnames = get_outfnames(fname, split)
674
+ if split:
675
+ assert len(fnames) == 2 and "train" in fnames[0] and "valid" in fnames[1]
676
+ MAX_VALID_EXAMPLES = 1000
677
+ n_train = max(len(df) - MAX_VALID_EXAMPLES, int(len(df) * 0.8))
678
+ df_train = df.sample(n=n_train, random_state=42)
679
+ df_valid = df.drop(df_train.index)
680
+ df_train[["prompt", "completion"]].to_json( # type: ignore
681
+ fnames[0], lines=True, orient="records", force_ascii=False, indent=None
682
+ )
683
+ df_valid[["prompt", "completion"]].to_json(
684
+ fnames[1], lines=True, orient="records", force_ascii=False, indent=None
685
+ )
686
+
687
+ n_classes, pos_class = get_classification_hyperparams(df)
688
+ additional_params += " --compute_classification_metrics"
689
+ if n_classes == 2:
690
+ additional_params += f' --classification_positive_class "{pos_class}"'
691
+ else:
692
+ additional_params += f" --classification_n_classes {n_classes}"
693
+ else:
694
+ assert len(fnames) == 1
695
+ df[["prompt", "completion"]].to_json(
696
+ fnames[0], lines=True, orient="records", force_ascii=False, indent=None
697
+ )
698
+
699
+ # Add -v VALID_FILE if we split the file into train / valid
700
+ files_string = ("s" if split else "") + " to `" + ("` and `".join(fnames))
701
+ valid_string = f' -v "{fnames[1]}"' if split else ""
702
+ separator_reminder = (
703
+ ""
704
+ if len(common_prompt_suffix_new_line_handled) == 0
705
+ else f"After you’ve fine-tuned a model, remember that your prompt has to end with the indicator string `{common_prompt_suffix_new_line_handled}` for the model to start generating completions, rather than continuing with the prompt."
706
+ )
707
+ sys.stdout.write(
708
+ f'\nWrote modified file{files_string}`\nFeel free to take a look!\n\nNow use that file when fine-tuning:\n> openai api fine_tunes.create -t "{fnames[0]}"{valid_string}{additional_params}\n\n{separator_reminder}{optional_ending_string}\n'
709
+ )
710
+ estimate_fine_tuning_time(df)
711
+ else:
712
+ sys.stdout.write("Aborting... did not write the file\n")
713
+
714
+
715
+ def infer_task_type(df: pd.DataFrame) -> str:
716
+ """
717
+ Infer the likely fine-tuning task type from the data
718
+ """
719
+ CLASSIFICATION_THRESHOLD = 3 # min_average instances of each class
720
+ if sum(df.prompt.str.len()) == 0:
721
+ return "open-ended generation"
722
+
723
+ if len(df.completion.unique()) < len(df) / CLASSIFICATION_THRESHOLD:
724
+ return "classification"
725
+
726
+ return "conditional generation"
727
+
728
+
729
+ def get_common_xfix(series: Any, xfix: str = "suffix") -> str:
730
+ """
731
+ Finds the longest common suffix or prefix of all the values in a series
732
+ """
733
+ common_xfix = ""
734
+ while True:
735
+ common_xfixes = (
736
+ series.str[-(len(common_xfix) + 1) :] if xfix == "suffix" else series.str[: len(common_xfix) + 1]
737
+ ) # first few or last few characters
738
+ if common_xfixes.nunique() != 1: # we found the character at which we don't have a unique xfix anymore
739
+ break
740
+ elif common_xfix == common_xfixes.values[0]: # the entire first row is a prefix of every other row
741
+ break
742
+ else: # the first or last few characters are still common across all rows - let's try to add one more
743
+ common_xfix = common_xfixes.values[0]
744
+ return common_xfix
745
+
746
+
747
+ Validator: TypeAlias = "Callable[[pd.DataFrame], Remediation | None]"
748
+
749
+
750
+ def get_validators() -> list[Validator]:
751
+ return [
752
+ num_examples_validator,
753
+ lambda x: necessary_column_validator(x, "prompt"),
754
+ lambda x: necessary_column_validator(x, "completion"),
755
+ additional_column_validator,
756
+ non_empty_field_validator,
757
+ format_inferrer_validator,
758
+ duplicated_rows_validator,
759
+ long_examples_validator,
760
+ lambda x: lower_case_validator(x, "prompt"),
761
+ lambda x: lower_case_validator(x, "completion"),
762
+ common_prompt_suffix_validator,
763
+ common_prompt_prefix_validator,
764
+ common_completion_prefix_validator,
765
+ common_completion_suffix_validator,
766
+ completions_space_start_validator,
767
+ ]
768
+
769
+
770
+ def apply_validators(
771
+ df: pd.DataFrame,
772
+ fname: str,
773
+ remediation: Remediation | None,
774
+ validators: list[Validator],
775
+ auto_accept: bool,
776
+ write_out_file_func: Callable[..., Any],
777
+ ) -> None:
778
+ optional_remediations: list[Remediation] = []
779
+ if remediation is not None:
780
+ optional_remediations.append(remediation)
781
+ for validator in validators:
782
+ remediation = validator(df)
783
+ if remediation is not None:
784
+ optional_remediations.append(remediation)
785
+ df = apply_necessary_remediation(df, remediation)
786
+
787
+ any_optional_or_necessary_remediations = any(
788
+ [
789
+ remediation
790
+ for remediation in optional_remediations
791
+ if remediation.optional_msg is not None or remediation.necessary_msg is not None
792
+ ]
793
+ )
794
+ any_necessary_applied = any(
795
+ [remediation for remediation in optional_remediations if remediation.necessary_msg is not None]
796
+ )
797
+ any_optional_applied = False
798
+
799
+ if any_optional_or_necessary_remediations:
800
+ sys.stdout.write("\n\nBased on the analysis we will perform the following actions:\n")
801
+ for remediation in optional_remediations:
802
+ df, optional_applied = apply_optional_remediation(df, remediation, auto_accept)
803
+ any_optional_applied = any_optional_applied or optional_applied
804
+ else:
805
+ sys.stdout.write("\n\nNo remediations found.\n")
806
+
807
+ any_optional_or_necessary_applied = any_optional_applied or any_necessary_applied
808
+
809
+ write_out_file_func(df, fname, any_optional_or_necessary_applied, auto_accept)