openai 0.20.0 → 0.21.1

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 (363) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/internal/stream.rb +3 -2
  6. data/lib/openai/models/audio/speech_create_params.rb +6 -0
  7. data/lib/openai/models/chat/chat_completion_audio_param.rb +6 -0
  8. data/lib/openai/models/eval_create_params.rb +10 -6
  9. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +10 -6
  10. data/lib/openai/models/evals/run_cancel_response.rb +12 -8
  11. data/lib/openai/models/evals/run_create_params.rb +12 -8
  12. data/lib/openai/models/evals/run_create_response.rb +12 -8
  13. data/lib/openai/models/evals/run_list_response.rb +12 -8
  14. data/lib/openai/models/evals/run_retrieve_response.rb +12 -8
  15. data/lib/openai/models/graders/label_model_grader.rb +10 -6
  16. data/lib/openai/models/graders/score_model_grader.rb +10 -6
  17. data/lib/openai/models/realtime/client_secret_create_params.rb +93 -0
  18. data/lib/openai/models/realtime/client_secret_create_response.rb +300 -0
  19. data/lib/openai/models/realtime/conversation_created_event.rb +70 -0
  20. data/lib/openai/models/realtime/conversation_item.rb +44 -0
  21. data/lib/openai/models/realtime/conversation_item_added.rb +48 -0
  22. data/lib/openai/models/realtime/conversation_item_create_event.rb +57 -0
  23. data/lib/openai/models/realtime/conversation_item_created_event.rb +59 -0
  24. data/lib/openai/models/realtime/conversation_item_delete_event.rb +39 -0
  25. data/lib/openai/models/realtime/conversation_item_deleted_event.rb +38 -0
  26. data/lib/openai/models/realtime/conversation_item_done.rb +48 -0
  27. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +189 -0
  28. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +63 -0
  29. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +96 -0
  30. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +84 -0
  31. data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +40 -0
  32. data/lib/openai/models/realtime/conversation_item_truncate_event.rb +68 -0
  33. data/lib/openai/models/realtime/conversation_item_truncated_event.rb +60 -0
  34. data/lib/openai/models/realtime/conversation_item_with_reference.rb +235 -0
  35. data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +49 -0
  36. data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +29 -0
  37. data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +29 -0
  38. data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +35 -0
  39. data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +51 -0
  40. data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +59 -0
  41. data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +51 -0
  42. data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +52 -0
  43. data/lib/openai/models/realtime/log_prob_properties.rb +39 -0
  44. data/lib/openai/models/realtime/mcp_list_tools_completed.rb +36 -0
  45. data/lib/openai/models/realtime/mcp_list_tools_failed.rb +36 -0
  46. data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +36 -0
  47. data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +32 -0
  48. data/lib/openai/models/realtime/rate_limits_updated_event.rb +91 -0
  49. data/lib/openai/models/realtime/realtime_audio_config.rb +446 -0
  50. data/lib/openai/models/realtime/realtime_client_event.rb +123 -0
  51. data/lib/openai/models/realtime/realtime_client_secret_config.rb +64 -0
  52. data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +118 -0
  53. data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +94 -0
  54. data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +86 -0
  55. data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +118 -0
  56. data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +135 -0
  57. data/lib/openai/models/realtime/realtime_error.rb +55 -0
  58. data/lib/openai/models/realtime/realtime_error_event.rb +38 -0
  59. data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +52 -0
  60. data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +52 -0
  61. data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +84 -0
  62. data/lib/openai/models/realtime/realtime_mcp_protocol_error.rb +29 -0
  63. data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +94 -0
  64. data/lib/openai/models/realtime/realtime_mcp_tool_execution_error.rb +23 -0
  65. data/lib/openai/models/realtime/realtime_mcphttp_error.rb +29 -0
  66. data/lib/openai/models/realtime/realtime_response.rb +259 -0
  67. data/lib/openai/models/realtime/realtime_response_status.rb +103 -0
  68. data/lib/openai/models/realtime/realtime_response_usage.rb +61 -0
  69. data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +36 -0
  70. data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +28 -0
  71. data/lib/openai/models/realtime/realtime_server_event.rb +369 -0
  72. data/lib/openai/models/realtime/realtime_session.rb +696 -0
  73. data/lib/openai/models/realtime/realtime_session_create_request.rb +234 -0
  74. data/lib/openai/models/realtime/realtime_session_create_response.rb +579 -0
  75. data/lib/openai/models/realtime/realtime_tool_choice_config.rb +32 -0
  76. data/lib/openai/models/realtime/realtime_tools_config.rb +11 -0
  77. data/lib/openai/models/realtime/realtime_tools_config_union.rb +379 -0
  78. data/lib/openai/models/realtime/realtime_tracing_config.rb +61 -0
  79. data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +312 -0
  80. data/lib/openai/models/realtime/realtime_truncation.rb +67 -0
  81. data/lib/openai/models/realtime/response_audio_delta_event.rb +68 -0
  82. data/lib/openai/models/realtime/response_audio_done_event.rb +61 -0
  83. data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +68 -0
  84. data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +70 -0
  85. data/lib/openai/models/realtime/response_cancel_event.rb +42 -0
  86. data/lib/openai/models/realtime/response_content_part_added_event.rb +120 -0
  87. data/lib/openai/models/realtime/response_content_part_done_event.rb +120 -0
  88. data/lib/openai/models/realtime/response_create_event.rb +391 -0
  89. data/lib/openai/models/realtime/response_created_event.rb +37 -0
  90. data/lib/openai/models/realtime/response_done_event.rb +38 -0
  91. data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +72 -0
  92. data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +73 -0
  93. data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +68 -0
  94. data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +60 -0
  95. data/lib/openai/models/realtime/response_mcp_call_completed.rb +44 -0
  96. data/lib/openai/models/realtime/response_mcp_call_failed.rb +44 -0
  97. data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +44 -0
  98. data/lib/openai/models/realtime/response_output_item_added_event.rb +52 -0
  99. data/lib/openai/models/realtime/response_output_item_done_event.rb +53 -0
  100. data/lib/openai/models/realtime/response_text_delta_event.rb +68 -0
  101. data/lib/openai/models/realtime/response_text_done_event.rb +69 -0
  102. data/lib/openai/models/realtime/session_created_event.rb +38 -0
  103. data/lib/openai/models/realtime/session_update_event.rb +44 -0
  104. data/lib/openai/models/realtime/session_updated_event.rb +37 -0
  105. data/lib/openai/models/realtime/transcription_session_created.rb +278 -0
  106. data/lib/openai/models/realtime/transcription_session_update.rb +36 -0
  107. data/lib/openai/models/realtime/transcription_session_updated_event.rb +279 -0
  108. data/lib/openai/models/responses/easy_input_message.rb +3 -3
  109. data/lib/openai/models/responses/response.rb +6 -3
  110. data/lib/openai/models/responses/response_content.rb +4 -1
  111. data/lib/openai/models/responses/response_create_params.rb +6 -3
  112. data/lib/openai/models/responses/response_input_audio.rb +39 -23
  113. data/lib/openai/models/responses/response_input_content.rb +4 -1
  114. data/lib/openai/models/responses/response_input_item.rb +2 -2
  115. data/lib/openai/models/responses/response_input_message_item.rb +2 -2
  116. data/lib/openai/models/responses/tool.rb +3 -156
  117. data/lib/openai/models/responses/web_search_preview_tool.rb +124 -0
  118. data/lib/openai/models/responses/web_search_tool.rb +58 -21
  119. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +119 -0
  120. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
  121. data/lib/openai/models.rb +2 -0
  122. data/lib/openai/resources/realtime/client_secrets.rb +44 -0
  123. data/lib/openai/resources/realtime.rb +18 -0
  124. data/lib/openai/resources/responses.rb +2 -2
  125. data/lib/openai/resources/webhooks.rb +1 -1
  126. data/lib/openai/version.rb +1 -1
  127. data/lib/openai.rb +95 -0
  128. data/rbi/openai/client.rbi +3 -0
  129. data/rbi/openai/models/audio/speech_create_params.rbi +10 -0
  130. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +10 -0
  131. data/rbi/openai/models/eval_create_params.rbi +5 -1
  132. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +5 -1
  133. data/rbi/openai/models/evals/run_cancel_response.rbi +7 -5
  134. data/rbi/openai/models/evals/run_create_params.rbi +13 -9
  135. data/rbi/openai/models/evals/run_create_response.rbi +7 -5
  136. data/rbi/openai/models/evals/run_list_response.rbi +7 -5
  137. data/rbi/openai/models/evals/run_retrieve_response.rbi +7 -5
  138. data/rbi/openai/models/graders/label_model_grader.rbi +5 -1
  139. data/rbi/openai/models/graders/score_model_grader.rbi +5 -1
  140. data/rbi/openai/models/realtime/client_secret_create_params.rbi +222 -0
  141. data/rbi/openai/models/realtime/client_secret_create_response.rbi +676 -0
  142. data/rbi/openai/models/realtime/conversation_created_event.rbi +164 -0
  143. data/rbi/openai/models/realtime/conversation_item.rbi +35 -0
  144. data/rbi/openai/models/realtime/conversation_item_added.rbi +105 -0
  145. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +123 -0
  146. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +117 -0
  147. data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +57 -0
  148. data/rbi/openai/models/realtime/conversation_item_deleted_event.rbi +53 -0
  149. data/rbi/openai/models/realtime/conversation_item_done.rbi +105 -0
  150. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +305 -0
  151. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +93 -0
  152. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +158 -0
  153. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbi +107 -0
  154. data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +58 -0
  155. data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +94 -0
  156. data/rbi/openai/models/realtime/conversation_item_truncated_event.rbi +80 -0
  157. data/rbi/openai/models/realtime/conversation_item_with_reference.rbi +549 -0
  158. data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +65 -0
  159. data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +43 -0
  160. data/rbi/openai/models/realtime/input_audio_buffer_cleared_event.rbi +40 -0
  161. data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +49 -0
  162. data/rbi/openai/models/realtime/input_audio_buffer_committed_event.rbi +72 -0
  163. data/rbi/openai/models/realtime/input_audio_buffer_speech_started_event.rbi +82 -0
  164. data/rbi/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbi +73 -0
  165. data/rbi/openai/models/realtime/input_audio_buffer_timeout_triggered.rbi +75 -0
  166. data/rbi/openai/models/realtime/log_prob_properties.rbi +55 -0
  167. data/rbi/openai/models/realtime/mcp_list_tools_completed.rbi +51 -0
  168. data/rbi/openai/models/realtime/mcp_list_tools_failed.rbi +51 -0
  169. data/rbi/openai/models/realtime/mcp_list_tools_in_progress.rbi +51 -0
  170. data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +46 -0
  171. data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +187 -0
  172. data/rbi/openai/models/realtime/realtime_audio_config.rbi +1004 -0
  173. data/rbi/openai/models/realtime/realtime_client_event.rbi +38 -0
  174. data/rbi/openai/models/realtime/realtime_client_secret_config.rbi +147 -0
  175. data/rbi/openai/models/realtime/realtime_conversation_item_assistant_message.rbi +292 -0
  176. data/rbi/openai/models/realtime/realtime_conversation_item_function_call.rbi +199 -0
  177. data/rbi/openai/models/realtime/realtime_conversation_item_function_call_output.rbi +188 -0
  178. data/rbi/openai/models/realtime/realtime_conversation_item_system_message.rbi +292 -0
  179. data/rbi/openai/models/realtime/realtime_conversation_item_user_message.rbi +319 -0
  180. data/rbi/openai/models/realtime/realtime_error.rbi +72 -0
  181. data/rbi/openai/models/realtime/realtime_error_event.rbi +64 -0
  182. data/rbi/openai/models/realtime/realtime_mcp_approval_request.rbi +75 -0
  183. data/rbi/openai/models/realtime/realtime_mcp_approval_response.rbi +75 -0
  184. data/rbi/openai/models/realtime/realtime_mcp_list_tools.rbi +131 -0
  185. data/rbi/openai/models/realtime/realtime_mcp_protocol_error.rbi +40 -0
  186. data/rbi/openai/models/realtime/realtime_mcp_tool_call.rbi +145 -0
  187. data/rbi/openai/models/realtime/realtime_mcp_tool_execution_error.rbi +31 -0
  188. data/rbi/openai/models/realtime/realtime_mcphttp_error.rbi +40 -0
  189. data/rbi/openai/models/realtime/realtime_response.rbi +573 -0
  190. data/rbi/openai/models/realtime/realtime_response_status.rbi +233 -0
  191. data/rbi/openai/models/realtime/realtime_response_usage.rbi +121 -0
  192. data/rbi/openai/models/realtime/realtime_response_usage_input_token_details.rbi +68 -0
  193. data/rbi/openai/models/realtime/realtime_response_usage_output_token_details.rbi +51 -0
  194. data/rbi/openai/models/realtime/realtime_server_event.rbi +311 -0
  195. data/rbi/openai/models/realtime/realtime_session.rbi +1426 -0
  196. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +560 -0
  197. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +1249 -0
  198. data/rbi/openai/models/realtime/realtime_tool_choice_config.rbi +30 -0
  199. data/rbi/openai/models/realtime/realtime_tools_config.rbi +15 -0
  200. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +755 -0
  201. data/rbi/openai/models/realtime/realtime_tracing_config.rbi +95 -0
  202. data/rbi/openai/models/realtime/realtime_transcription_session_create_request.rbi +703 -0
  203. data/rbi/openai/models/realtime/realtime_truncation.rbi +117 -0
  204. data/rbi/openai/models/realtime/response_audio_delta_event.rbi +91 -0
  205. data/rbi/openai/models/realtime/response_audio_done_event.rbi +84 -0
  206. data/rbi/openai/models/realtime/response_audio_transcript_delta_event.rbi +91 -0
  207. data/rbi/openai/models/realtime/response_audio_transcript_done_event.rbi +93 -0
  208. data/rbi/openai/models/realtime/response_cancel_event.rbi +63 -0
  209. data/rbi/openai/models/realtime/response_content_part_added_event.rbi +219 -0
  210. data/rbi/openai/models/realtime/response_content_part_done_event.rbi +219 -0
  211. data/rbi/openai/models/realtime/response_create_event.rbi +863 -0
  212. data/rbi/openai/models/realtime/response_created_event.rbi +65 -0
  213. data/rbi/openai/models/realtime/response_done_event.rbi +66 -0
  214. data/rbi/openai/models/realtime/response_function_call_arguments_delta_event.rbi +91 -0
  215. data/rbi/openai/models/realtime/response_function_call_arguments_done_event.rbi +92 -0
  216. data/rbi/openai/models/realtime/response_mcp_call_arguments_delta.rbi +91 -0
  217. data/rbi/openai/models/realtime/response_mcp_call_arguments_done.rbi +83 -0
  218. data/rbi/openai/models/realtime/response_mcp_call_completed.rbi +67 -0
  219. data/rbi/openai/models/realtime/response_mcp_call_failed.rbi +67 -0
  220. data/rbi/openai/models/realtime/response_mcp_call_in_progress.rbi +67 -0
  221. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +111 -0
  222. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +112 -0
  223. data/rbi/openai/models/realtime/response_text_delta_event.rbi +91 -0
  224. data/rbi/openai/models/realtime/response_text_done_event.rbi +92 -0
  225. data/rbi/openai/models/realtime/session_created_event.rbi +64 -0
  226. data/rbi/openai/models/realtime/session_update_event.rbi +77 -0
  227. data/rbi/openai/models/realtime/session_updated_event.rbi +63 -0
  228. data/rbi/openai/models/realtime/transcription_session_created.rbi +653 -0
  229. data/rbi/openai/models/realtime/transcription_session_update.rbi +74 -0
  230. data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +657 -0
  231. data/rbi/openai/models/responses/response.rbi +10 -4
  232. data/rbi/openai/models/responses/response_content.rbi +1 -0
  233. data/rbi/openai/models/responses/response_create_params.rbi +16 -10
  234. data/rbi/openai/models/responses/response_input_audio.rbi +85 -34
  235. data/rbi/openai/models/responses/response_input_content.rbi +2 -1
  236. data/rbi/openai/models/responses/response_input_item.rbi +6 -3
  237. data/rbi/openai/models/responses/response_input_message_item.rbi +2 -1
  238. data/rbi/openai/models/responses/tool.rbi +2 -348
  239. data/rbi/openai/models/responses/web_search_preview_tool.rbi +245 -0
  240. data/rbi/openai/models/responses/web_search_tool.rbi +120 -23
  241. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +222 -0
  242. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  243. data/rbi/openai/models.rbi +2 -0
  244. data/rbi/openai/resources/realtime/client_secrets.rbi +38 -0
  245. data/rbi/openai/resources/realtime.rbi +15 -0
  246. data/rbi/openai/resources/responses.rbi +12 -6
  247. data/rbi/openai/resources/webhooks.rbi +1 -0
  248. data/sig/openai/client.rbs +2 -0
  249. data/sig/openai/models/audio/speech_create_params.rbs +4 -0
  250. data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -0
  251. data/sig/openai/models/eval_create_params.rbs +2 -1
  252. data/sig/openai/models/evals/create_eval_completions_run_data_source.rbs +2 -1
  253. data/sig/openai/models/evals/run_cancel_response.rbs +2 -1
  254. data/sig/openai/models/evals/run_create_params.rbs +2 -1
  255. data/sig/openai/models/evals/run_create_response.rbs +2 -1
  256. data/sig/openai/models/evals/run_list_response.rbs +2 -1
  257. data/sig/openai/models/evals/run_retrieve_response.rbs +2 -1
  258. data/sig/openai/models/graders/label_model_grader.rbs +2 -1
  259. data/sig/openai/models/graders/score_model_grader.rbs +2 -1
  260. data/sig/openai/models/realtime/client_secret_create_params.rbs +89 -0
  261. data/sig/openai/models/realtime/client_secret_create_response.rbs +292 -0
  262. data/sig/openai/models/realtime/conversation_created_event.rbs +70 -0
  263. data/sig/openai/models/realtime/conversation_item.rbs +22 -0
  264. data/sig/openai/models/realtime/conversation_item_added.rbs +37 -0
  265. data/sig/openai/models/realtime/conversation_item_create_event.rbs +41 -0
  266. data/sig/openai/models/realtime/conversation_item_created_event.rbs +37 -0
  267. data/sig/openai/models/realtime/conversation_item_delete_event.rbs +30 -0
  268. data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +32 -0
  269. data/sig/openai/models/realtime/conversation_item_done.rbs +37 -0
  270. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +136 -0
  271. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +51 -0
  272. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +77 -0
  273. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +62 -0
  274. data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +34 -0
  275. data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +44 -0
  276. data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +42 -0
  277. data/sig/openai/models/realtime/conversation_item_with_reference.rbs +207 -0
  278. data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +30 -0
  279. data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +23 -0
  280. data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +24 -0
  281. data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +23 -0
  282. data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +37 -0
  283. data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +37 -0
  284. data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +37 -0
  285. data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +42 -0
  286. data/sig/openai/models/realtime/log_prob_properties.rbs +28 -0
  287. data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +28 -0
  288. data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +28 -0
  289. data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +32 -0
  290. data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +23 -0
  291. data/sig/openai/models/realtime/rate_limits_updated_event.rbs +85 -0
  292. data/sig/openai/models/realtime/realtime_audio_config.rbs +354 -0
  293. data/sig/openai/models/realtime/realtime_client_event.rbs +25 -0
  294. data/sig/openai/models/realtime/realtime_client_secret_config.rbs +60 -0
  295. data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +117 -0
  296. data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +86 -0
  297. data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +79 -0
  298. data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +117 -0
  299. data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +132 -0
  300. data/sig/openai/models/realtime/realtime_error.rbs +42 -0
  301. data/sig/openai/models/realtime/realtime_error_event.rbs +32 -0
  302. data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +42 -0
  303. data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +42 -0
  304. data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +71 -0
  305. data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +28 -0
  306. data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +68 -0
  307. data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +18 -0
  308. data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +24 -0
  309. data/sig/openai/models/realtime/realtime_response.rbs +210 -0
  310. data/sig/openai/models/realtime/realtime_response_status.rbs +90 -0
  311. data/sig/openai/models/realtime/realtime_response_usage.rbs +56 -0
  312. data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +34 -0
  313. data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +22 -0
  314. data/sig/openai/models/realtime/realtime_server_event.rbs +168 -0
  315. data/sig/openai/models/realtime/realtime_session.rbs +521 -0
  316. data/sig/openai/models/realtime/realtime_session_create_request.rbs +178 -0
  317. data/sig/openai/models/realtime/realtime_session_create_response.rbs +526 -0
  318. data/sig/openai/models/realtime/realtime_tool_choice_config.rbs +16 -0
  319. data/sig/openai/models/realtime/realtime_tools_config.rbs +10 -0
  320. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +280 -0
  321. data/sig/openai/models/realtime/realtime_tracing_config.rbs +43 -0
  322. data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +242 -0
  323. data/sig/openai/models/realtime/realtime_truncation.rbs +53 -0
  324. data/sig/openai/models/realtime/response_audio_delta_event.rbs +52 -0
  325. data/sig/openai/models/realtime/response_audio_done_event.rbs +47 -0
  326. data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +52 -0
  327. data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +52 -0
  328. data/sig/openai/models/realtime/response_cancel_event.rbs +32 -0
  329. data/sig/openai/models/realtime/response_content_part_added_event.rbs +105 -0
  330. data/sig/openai/models/realtime/response_content_part_done_event.rbs +105 -0
  331. data/sig/openai/models/realtime/response_create_event.rbs +281 -0
  332. data/sig/openai/models/realtime/response_created_event.rbs +32 -0
  333. data/sig/openai/models/realtime/response_done_event.rbs +32 -0
  334. data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +52 -0
  335. data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +52 -0
  336. data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +52 -0
  337. data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +47 -0
  338. data/sig/openai/models/realtime/response_mcp_call_completed.rbs +37 -0
  339. data/sig/openai/models/realtime/response_mcp_call_failed.rbs +37 -0
  340. data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +37 -0
  341. data/sig/openai/models/realtime/response_output_item_added_event.rbs +42 -0
  342. data/sig/openai/models/realtime/response_output_item_done_event.rbs +42 -0
  343. data/sig/openai/models/realtime/response_text_delta_event.rbs +52 -0
  344. data/sig/openai/models/realtime/response_text_done_event.rbs +52 -0
  345. data/sig/openai/models/realtime/session_created_event.rbs +32 -0
  346. data/sig/openai/models/realtime/session_update_event.rbs +34 -0
  347. data/sig/openai/models/realtime/session_updated_event.rbs +32 -0
  348. data/sig/openai/models/realtime/transcription_session_created.rbs +282 -0
  349. data/sig/openai/models/realtime/transcription_session_update.rbs +34 -0
  350. data/sig/openai/models/realtime/transcription_session_updated_event.rbs +282 -0
  351. data/sig/openai/models/responses/response_content.rbs +1 -0
  352. data/sig/openai/models/responses/response_input_audio.rbs +32 -15
  353. data/sig/openai/models/responses/response_input_content.rbs +1 -0
  354. data/sig/openai/models/responses/tool.rbs +1 -121
  355. data/sig/openai/models/responses/web_search_preview_tool.rbs +96 -0
  356. data/sig/openai/models/responses/web_search_tool.rbs +39 -10
  357. data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +90 -0
  358. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  359. data/sig/openai/models.rbs +2 -0
  360. data/sig/openai/resources/realtime/client_secrets.rbs +15 -0
  361. data/sig/openai/resources/realtime.rbs +9 -0
  362. data/sig/openai/resources/webhooks.rbs +1 -0
  363. metadata +287 -2
@@ -39,163 +39,10 @@ module OpenAI
39
39
 
40
40
  # Search the Internet for sources related to the prompt. Learn more about the
41
41
  # [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
42
- variant -> { OpenAI::Responses::Tool::WebSearchTool }
43
-
44
- # This tool searches the web for relevant results to use in a response. Learn more about the [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
45
42
  variant -> { OpenAI::Responses::WebSearchTool }
46
43
 
47
- class WebSearchTool < OpenAI::Internal::Type::BaseModel
48
- # @!attribute type
49
- # The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
50
- #
51
- # @return [Symbol, OpenAI::Models::Responses::Tool::WebSearchTool::Type]
52
- required :type, enum: -> { OpenAI::Responses::Tool::WebSearchTool::Type }
53
-
54
- # @!attribute filters
55
- # Filters for the search.
56
- #
57
- # @return [OpenAI::Models::Responses::Tool::WebSearchTool::Filters, nil]
58
- optional :filters, -> { OpenAI::Responses::Tool::WebSearchTool::Filters }, nil?: true
59
-
60
- # @!attribute search_context_size
61
- # High level guidance for the amount of context window space to use for the
62
- # search. One of `low`, `medium`, or `high`. `medium` is the default.
63
- #
64
- # @return [Symbol, OpenAI::Models::Responses::Tool::WebSearchTool::SearchContextSize, nil]
65
- optional :search_context_size, enum: -> { OpenAI::Responses::Tool::WebSearchTool::SearchContextSize }
66
-
67
- # @!attribute user_location
68
- # The approximate location of the user.
69
- #
70
- # @return [OpenAI::Models::Responses::Tool::WebSearchTool::UserLocation, nil]
71
- optional :user_location, -> { OpenAI::Responses::Tool::WebSearchTool::UserLocation }, nil?: true
72
-
73
- # @!method initialize(type:, filters: nil, search_context_size: nil, user_location: nil)
74
- # Some parameter documentations has been truncated, see
75
- # {OpenAI::Models::Responses::Tool::WebSearchTool} for more details.
76
- #
77
- # Search the Internet for sources related to the prompt. Learn more about the
78
- # [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
79
- #
80
- # @param type [Symbol, OpenAI::Models::Responses::Tool::WebSearchTool::Type] The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
81
- #
82
- # @param filters [OpenAI::Models::Responses::Tool::WebSearchTool::Filters, nil] Filters for the search.
83
- #
84
- # @param search_context_size [Symbol, OpenAI::Models::Responses::Tool::WebSearchTool::SearchContextSize] High level guidance for the amount of context window space to use for the search
85
- #
86
- # @param user_location [OpenAI::Models::Responses::Tool::WebSearchTool::UserLocation, nil] The approximate location of the user.
87
-
88
- # The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
89
- #
90
- # @see OpenAI::Models::Responses::Tool::WebSearchTool#type
91
- module Type
92
- extend OpenAI::Internal::Type::Enum
93
-
94
- WEB_SEARCH = :web_search
95
- WEB_SEARCH_2025_08_26 = :web_search_2025_08_26
96
-
97
- # @!method self.values
98
- # @return [Array<Symbol>]
99
- end
100
-
101
- # @see OpenAI::Models::Responses::Tool::WebSearchTool#filters
102
- class Filters < OpenAI::Internal::Type::BaseModel
103
- # @!attribute allowed_domains
104
- # Allowed domains for the search. If not provided, all domains are allowed.
105
- # Subdomains of the provided domains are allowed as well.
106
- #
107
- # Example: `["pubmed.ncbi.nlm.nih.gov"]`
108
- #
109
- # @return [Array<String>, nil]
110
- optional :allowed_domains, OpenAI::Internal::Type::ArrayOf[String], nil?: true
111
-
112
- # @!method initialize(allowed_domains: nil)
113
- # Some parameter documentations has been truncated, see
114
- # {OpenAI::Models::Responses::Tool::WebSearchTool::Filters} for more details.
115
- #
116
- # Filters for the search.
117
- #
118
- # @param allowed_domains [Array<String>, nil] Allowed domains for the search. If not provided, all domains are allowed.
119
- end
120
-
121
- # High level guidance for the amount of context window space to use for the
122
- # search. One of `low`, `medium`, or `high`. `medium` is the default.
123
- #
124
- # @see OpenAI::Models::Responses::Tool::WebSearchTool#search_context_size
125
- module SearchContextSize
126
- extend OpenAI::Internal::Type::Enum
127
-
128
- LOW = :low
129
- MEDIUM = :medium
130
- HIGH = :high
131
-
132
- # @!method self.values
133
- # @return [Array<Symbol>]
134
- end
135
-
136
- # @see OpenAI::Models::Responses::Tool::WebSearchTool#user_location
137
- class UserLocation < OpenAI::Internal::Type::BaseModel
138
- # @!attribute city
139
- # Free text input for the city of the user, e.g. `San Francisco`.
140
- #
141
- # @return [String, nil]
142
- optional :city, String, nil?: true
143
-
144
- # @!attribute country
145
- # The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of
146
- # the user, e.g. `US`.
147
- #
148
- # @return [String, nil]
149
- optional :country, String, nil?: true
150
-
151
- # @!attribute region
152
- # Free text input for the region of the user, e.g. `California`.
153
- #
154
- # @return [String, nil]
155
- optional :region, String, nil?: true
156
-
157
- # @!attribute timezone
158
- # The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the
159
- # user, e.g. `America/Los_Angeles`.
160
- #
161
- # @return [String, nil]
162
- optional :timezone, String, nil?: true
163
-
164
- # @!attribute type
165
- # The type of location approximation. Always `approximate`.
166
- #
167
- # @return [Symbol, OpenAI::Models::Responses::Tool::WebSearchTool::UserLocation::Type, nil]
168
- optional :type, enum: -> { OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type }
169
-
170
- # @!method initialize(city: nil, country: nil, region: nil, timezone: nil, type: nil)
171
- # Some parameter documentations has been truncated, see
172
- # {OpenAI::Models::Responses::Tool::WebSearchTool::UserLocation} for more details.
173
- #
174
- # The approximate location of the user.
175
- #
176
- # @param city [String, nil] Free text input for the city of the user, e.g. `San Francisco`.
177
- #
178
- # @param country [String, nil] The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of t
179
- #
180
- # @param region [String, nil] Free text input for the region of the user, e.g. `California`.
181
- #
182
- # @param timezone [String, nil] The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user
183
- #
184
- # @param type [Symbol, OpenAI::Models::Responses::Tool::WebSearchTool::UserLocation::Type] The type of location approximation. Always `approximate`.
185
-
186
- # The type of location approximation. Always `approximate`.
187
- #
188
- # @see OpenAI::Models::Responses::Tool::WebSearchTool::UserLocation#type
189
- module Type
190
- extend OpenAI::Internal::Type::Enum
191
-
192
- APPROXIMATE = :approximate
193
-
194
- # @!method self.values
195
- # @return [Array<Symbol>]
196
- end
197
- end
198
- end
44
+ # This tool searches the web for relevant results to use in a response. Learn more about the [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
45
+ variant -> { OpenAI::Responses::WebSearchPreviewTool }
199
46
 
200
47
  class Mcp < OpenAI::Internal::Type::BaseModel
201
48
  # @!attribute server_label
@@ -814,7 +661,7 @@ module OpenAI
814
661
  end
815
662
 
816
663
  # @!method self.variants
817
- # @return [Array(OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::Tool::WebSearchTool, OpenAI::Models::Responses::WebSearchTool)]
664
+ # @return [Array(OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool)]
818
665
  end
819
666
  end
820
667
  end
@@ -0,0 +1,124 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class WebSearchPreviewTool < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute type
8
+ # The type of the web search tool. One of `web_search_preview` or
9
+ # `web_search_preview_2025_03_11`.
10
+ #
11
+ # @return [Symbol, OpenAI::Models::Responses::WebSearchPreviewTool::Type]
12
+ required :type, enum: -> { OpenAI::Responses::WebSearchPreviewTool::Type }
13
+
14
+ # @!attribute search_context_size
15
+ # High level guidance for the amount of context window space to use for the
16
+ # search. One of `low`, `medium`, or `high`. `medium` is the default.
17
+ #
18
+ # @return [Symbol, OpenAI::Models::Responses::WebSearchPreviewTool::SearchContextSize, nil]
19
+ optional :search_context_size, enum: -> { OpenAI::Responses::WebSearchPreviewTool::SearchContextSize }
20
+
21
+ # @!attribute user_location
22
+ # The user's location.
23
+ #
24
+ # @return [OpenAI::Models::Responses::WebSearchPreviewTool::UserLocation, nil]
25
+ optional :user_location, -> { OpenAI::Responses::WebSearchPreviewTool::UserLocation }, nil?: true
26
+
27
+ # @!method initialize(type:, search_context_size: nil, user_location: nil)
28
+ # Some parameter documentations has been truncated, see
29
+ # {OpenAI::Models::Responses::WebSearchPreviewTool} for more details.
30
+ #
31
+ # This tool searches the web for relevant results to use in a response. Learn more
32
+ # about the
33
+ # [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
34
+ #
35
+ # @param type [Symbol, OpenAI::Models::Responses::WebSearchPreviewTool::Type] The type of the web search tool. One of `web_search_preview` or `web_search_prev
36
+ #
37
+ # @param search_context_size [Symbol, OpenAI::Models::Responses::WebSearchPreviewTool::SearchContextSize] High level guidance for the amount of context window space to use for the search
38
+ #
39
+ # @param user_location [OpenAI::Models::Responses::WebSearchPreviewTool::UserLocation, nil] The user's location.
40
+
41
+ # The type of the web search tool. One of `web_search_preview` or
42
+ # `web_search_preview_2025_03_11`.
43
+ #
44
+ # @see OpenAI::Models::Responses::WebSearchPreviewTool#type
45
+ module Type
46
+ extend OpenAI::Internal::Type::Enum
47
+
48
+ WEB_SEARCH_PREVIEW = :web_search_preview
49
+ WEB_SEARCH_PREVIEW_2025_03_11 = :web_search_preview_2025_03_11
50
+
51
+ # @!method self.values
52
+ # @return [Array<Symbol>]
53
+ end
54
+
55
+ # High level guidance for the amount of context window space to use for the
56
+ # search. One of `low`, `medium`, or `high`. `medium` is the default.
57
+ #
58
+ # @see OpenAI::Models::Responses::WebSearchPreviewTool#search_context_size
59
+ module SearchContextSize
60
+ extend OpenAI::Internal::Type::Enum
61
+
62
+ LOW = :low
63
+ MEDIUM = :medium
64
+ HIGH = :high
65
+
66
+ # @!method self.values
67
+ # @return [Array<Symbol>]
68
+ end
69
+
70
+ # @see OpenAI::Models::Responses::WebSearchPreviewTool#user_location
71
+ class UserLocation < OpenAI::Internal::Type::BaseModel
72
+ # @!attribute type
73
+ # The type of location approximation. Always `approximate`.
74
+ #
75
+ # @return [Symbol, :approximate]
76
+ required :type, const: :approximate
77
+
78
+ # @!attribute city
79
+ # Free text input for the city of the user, e.g. `San Francisco`.
80
+ #
81
+ # @return [String, nil]
82
+ optional :city, String, nil?: true
83
+
84
+ # @!attribute country
85
+ # The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of
86
+ # the user, e.g. `US`.
87
+ #
88
+ # @return [String, nil]
89
+ optional :country, String, nil?: true
90
+
91
+ # @!attribute region
92
+ # Free text input for the region of the user, e.g. `California`.
93
+ #
94
+ # @return [String, nil]
95
+ optional :region, String, nil?: true
96
+
97
+ # @!attribute timezone
98
+ # The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the
99
+ # user, e.g. `America/Los_Angeles`.
100
+ #
101
+ # @return [String, nil]
102
+ optional :timezone, String, nil?: true
103
+
104
+ # @!method initialize(city: nil, country: nil, region: nil, timezone: nil, type: :approximate)
105
+ # Some parameter documentations has been truncated, see
106
+ # {OpenAI::Models::Responses::WebSearchPreviewTool::UserLocation} for more
107
+ # details.
108
+ #
109
+ # The user's location.
110
+ #
111
+ # @param city [String, nil] Free text input for the city of the user, e.g. `San Francisco`.
112
+ #
113
+ # @param country [String, nil] The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of t
114
+ #
115
+ # @param region [String, nil] Free text input for the region of the user, e.g. `California`.
116
+ #
117
+ # @param timezone [String, nil] The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user
118
+ #
119
+ # @param type [Symbol, :approximate] The type of location approximation. Always `approximate`.
120
+ end
121
+ end
122
+ end
123
+ end
124
+ end
@@ -5,12 +5,17 @@ module OpenAI
5
5
  module Responses
6
6
  class WebSearchTool < OpenAI::Internal::Type::BaseModel
7
7
  # @!attribute type
8
- # The type of the web search tool. One of `web_search_preview` or
9
- # `web_search_preview_2025_03_11`.
8
+ # The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
10
9
  #
11
10
  # @return [Symbol, OpenAI::Models::Responses::WebSearchTool::Type]
12
11
  required :type, enum: -> { OpenAI::Responses::WebSearchTool::Type }
13
12
 
13
+ # @!attribute filters
14
+ # Filters for the search.
15
+ #
16
+ # @return [OpenAI::Models::Responses::WebSearchTool::Filters, nil]
17
+ optional :filters, -> { OpenAI::Responses::WebSearchTool::Filters }, nil?: true
18
+
14
19
  # @!attribute search_context_size
15
20
  # High level guidance for the amount of context window space to use for the
16
21
  # search. One of `low`, `medium`, or `high`. `medium` is the default.
@@ -19,39 +24,59 @@ module OpenAI
19
24
  optional :search_context_size, enum: -> { OpenAI::Responses::WebSearchTool::SearchContextSize }
20
25
 
21
26
  # @!attribute user_location
22
- # The user's location.
27
+ # The approximate location of the user.
23
28
  #
24
29
  # @return [OpenAI::Models::Responses::WebSearchTool::UserLocation, nil]
25
30
  optional :user_location, -> { OpenAI::Responses::WebSearchTool::UserLocation }, nil?: true
26
31
 
27
- # @!method initialize(type:, search_context_size: nil, user_location: nil)
32
+ # @!method initialize(type:, filters: nil, search_context_size: nil, user_location: nil)
28
33
  # Some parameter documentations has been truncated, see
29
34
  # {OpenAI::Models::Responses::WebSearchTool} for more details.
30
35
  #
31
- # This tool searches the web for relevant results to use in a response. Learn more
32
- # about the
36
+ # Search the Internet for sources related to the prompt. Learn more about the
33
37
  # [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
34
38
  #
35
- # @param type [Symbol, OpenAI::Models::Responses::WebSearchTool::Type] The type of the web search tool. One of `web_search_preview` or `web_search_prev
39
+ # @param type [Symbol, OpenAI::Models::Responses::WebSearchTool::Type] The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
40
+ #
41
+ # @param filters [OpenAI::Models::Responses::WebSearchTool::Filters, nil] Filters for the search.
36
42
  #
37
43
  # @param search_context_size [Symbol, OpenAI::Models::Responses::WebSearchTool::SearchContextSize] High level guidance for the amount of context window space to use for the search
38
44
  #
39
- # @param user_location [OpenAI::Models::Responses::WebSearchTool::UserLocation, nil] The user's location.
45
+ # @param user_location [OpenAI::Models::Responses::WebSearchTool::UserLocation, nil] The approximate location of the user.
40
46
 
41
- # The type of the web search tool. One of `web_search_preview` or
42
- # `web_search_preview_2025_03_11`.
47
+ # The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
43
48
  #
44
49
  # @see OpenAI::Models::Responses::WebSearchTool#type
45
50
  module Type
46
51
  extend OpenAI::Internal::Type::Enum
47
52
 
48
- WEB_SEARCH_PREVIEW = :web_search_preview
49
- WEB_SEARCH_PREVIEW_2025_03_11 = :web_search_preview_2025_03_11
53
+ WEB_SEARCH = :web_search
54
+ WEB_SEARCH_2025_08_26 = :web_search_2025_08_26
50
55
 
51
56
  # @!method self.values
52
57
  # @return [Array<Symbol>]
53
58
  end
54
59
 
60
+ # @see OpenAI::Models::Responses::WebSearchTool#filters
61
+ class Filters < OpenAI::Internal::Type::BaseModel
62
+ # @!attribute allowed_domains
63
+ # Allowed domains for the search. If not provided, all domains are allowed.
64
+ # Subdomains of the provided domains are allowed as well.
65
+ #
66
+ # Example: `["pubmed.ncbi.nlm.nih.gov"]`
67
+ #
68
+ # @return [Array<String>, nil]
69
+ optional :allowed_domains, OpenAI::Internal::Type::ArrayOf[String], nil?: true
70
+
71
+ # @!method initialize(allowed_domains: nil)
72
+ # Some parameter documentations has been truncated, see
73
+ # {OpenAI::Models::Responses::WebSearchTool::Filters} for more details.
74
+ #
75
+ # Filters for the search.
76
+ #
77
+ # @param allowed_domains [Array<String>, nil] Allowed domains for the search. If not provided, all domains are allowed.
78
+ end
79
+
55
80
  # High level guidance for the amount of context window space to use for the
56
81
  # search. One of `low`, `medium`, or `high`. `medium` is the default.
57
82
  #
@@ -69,12 +94,6 @@ module OpenAI
69
94
 
70
95
  # @see OpenAI::Models::Responses::WebSearchTool#user_location
71
96
  class UserLocation < OpenAI::Internal::Type::BaseModel
72
- # @!attribute type
73
- # The type of location approximation. Always `approximate`.
74
- #
75
- # @return [Symbol, :approximate]
76
- required :type, const: :approximate
77
-
78
97
  # @!attribute city
79
98
  # Free text input for the city of the user, e.g. `San Francisco`.
80
99
  #
@@ -101,11 +120,17 @@ module OpenAI
101
120
  # @return [String, nil]
102
121
  optional :timezone, String, nil?: true
103
122
 
104
- # @!method initialize(city: nil, country: nil, region: nil, timezone: nil, type: :approximate)
123
+ # @!attribute type
124
+ # The type of location approximation. Always `approximate`.
125
+ #
126
+ # @return [Symbol, OpenAI::Models::Responses::WebSearchTool::UserLocation::Type, nil]
127
+ optional :type, enum: -> { OpenAI::Responses::WebSearchTool::UserLocation::Type }
128
+
129
+ # @!method initialize(city: nil, country: nil, region: nil, timezone: nil, type: nil)
105
130
  # Some parameter documentations has been truncated, see
106
131
  # {OpenAI::Models::Responses::WebSearchTool::UserLocation} for more details.
107
132
  #
108
- # The user's location.
133
+ # The approximate location of the user.
109
134
  #
110
135
  # @param city [String, nil] Free text input for the city of the user, e.g. `San Francisco`.
111
136
  #
@@ -115,7 +140,19 @@ module OpenAI
115
140
  #
116
141
  # @param timezone [String, nil] The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user
117
142
  #
118
- # @param type [Symbol, :approximate] The type of location approximation. Always `approximate`.
143
+ # @param type [Symbol, OpenAI::Models::Responses::WebSearchTool::UserLocation::Type] The type of location approximation. Always `approximate`.
144
+
145
+ # The type of location approximation. Always `approximate`.
146
+ #
147
+ # @see OpenAI::Models::Responses::WebSearchTool::UserLocation#type
148
+ module Type
149
+ extend OpenAI::Internal::Type::Enum
150
+
151
+ APPROXIMATE = :approximate
152
+
153
+ # @!method self.values
154
+ # @return [Array<Symbol>]
155
+ end
119
156
  end
120
157
  end
121
158
  end
@@ -0,0 +1,119 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ class RealtimeCallIncomingWebhookEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the event.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ # The Unix timestamp (in seconds) of when the model response was completed.
15
+ #
16
+ # @return [Integer]
17
+ required :created_at, Integer
18
+
19
+ # @!attribute data
20
+ # Event data payload.
21
+ #
22
+ # @return [OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent::Data]
23
+ required :data, -> { OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Data }
24
+
25
+ # @!attribute type
26
+ # The type of the event. Always `realtime.call.incoming`.
27
+ #
28
+ # @return [Symbol, :"realtime.call.incoming"]
29
+ required :type, const: :"realtime.call.incoming"
30
+
31
+ # @!attribute object
32
+ # The object of the event. Always `event`.
33
+ #
34
+ # @return [Symbol, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent::Object, nil]
35
+ optional :object, enum: -> { OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Object }
36
+
37
+ # @!method initialize(id:, created_at:, data:, object: nil, type: :"realtime.call.incoming")
38
+ # Some parameter documentations has been truncated, see
39
+ # {OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent} for more details.
40
+ #
41
+ # Sent when Realtime API Receives a incoming SIP call.
42
+ #
43
+ # @param id [String] The unique ID of the event.
44
+ #
45
+ # @param created_at [Integer] The Unix timestamp (in seconds) of when the model response was completed.
46
+ #
47
+ # @param data [OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent::Data] Event data payload.
48
+ #
49
+ # @param object [Symbol, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent::Object] The object of the event. Always `event`.
50
+ #
51
+ # @param type [Symbol, :"realtime.call.incoming"] The type of the event. Always `realtime.call.incoming`.
52
+
53
+ # @see OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent#data
54
+ class Data < OpenAI::Internal::Type::BaseModel
55
+ # @!attribute call_id
56
+ # The unique ID of this call.
57
+ #
58
+ # @return [String]
59
+ required :call_id, String
60
+
61
+ # @!attribute sip_headers
62
+ # Headers from the SIP Invite.
63
+ #
64
+ # @return [Array<OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent::Data::SipHeader>]
65
+ required :sip_headers,
66
+ -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Data::SipHeader] }
67
+
68
+ # @!method initialize(call_id:, sip_headers:)
69
+ # Some parameter documentations has been truncated, see
70
+ # {OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent::Data} for more
71
+ # details.
72
+ #
73
+ # Event data payload.
74
+ #
75
+ # @param call_id [String] The unique ID of this call.
76
+ #
77
+ # @param sip_headers [Array<OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent::Data::SipHeader>] Headers from the SIP Invite.
78
+
79
+ class SipHeader < OpenAI::Internal::Type::BaseModel
80
+ # @!attribute name
81
+ # Name of the SIP Header.
82
+ #
83
+ # @return [String]
84
+ required :name, String
85
+
86
+ # @!attribute value
87
+ # Value of the SIP Header.
88
+ #
89
+ # @return [String]
90
+ required :value, String
91
+
92
+ # @!method initialize(name:, value:)
93
+ # Some parameter documentations has been truncated, see
94
+ # {OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent::Data::SipHeader}
95
+ # for more details.
96
+ #
97
+ # A header from the SIP Invite.
98
+ #
99
+ # @param name [String] Name of the SIP Header.
100
+ #
101
+ # @param value [String] Value of the SIP Header.
102
+ end
103
+ end
104
+
105
+ # The object of the event. Always `event`.
106
+ #
107
+ # @see OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent#object
108
+ module Object
109
+ extend OpenAI::Internal::Type::Enum
110
+
111
+ EVENT = :event
112
+
113
+ # @!method self.values
114
+ # @return [Array<Symbol>]
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
@@ -39,6 +39,9 @@ module OpenAI
39
39
  # Sent when a fine-tuning job has succeeded.
40
40
  variant :"fine_tuning.job.succeeded", -> { OpenAI::Webhooks::FineTuningJobSucceededWebhookEvent }
41
41
 
42
+ # Sent when Realtime API Receives a incoming SIP call.
43
+ variant :"realtime.call.incoming", -> { OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent }
44
+
42
45
  # Sent when a background response has been cancelled.
43
46
  variant :"response.cancelled", -> { OpenAI::Webhooks::ResponseCancelledWebhookEvent }
44
47
 
@@ -52,7 +55,7 @@ module OpenAI
52
55
  variant :"response.incomplete", -> { OpenAI::Webhooks::ResponseIncompleteWebhookEvent }
53
56
 
54
57
  # @!method self.variants
55
- # @return [Array(OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent)]
58
+ # @return [Array(OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent)]
56
59
  end
57
60
  end
58
61
  end
data/lib/openai/models.rb CHANGED
@@ -203,6 +203,8 @@ module OpenAI
203
203
 
204
204
  OtherFileChunkingStrategyObject = OpenAI::Models::OtherFileChunkingStrategyObject
205
205
 
206
+ Realtime = OpenAI::Models::Realtime
207
+
206
208
  Reasoning = OpenAI::Models::Reasoning
207
209
 
208
210
  ReasoningEffort = OpenAI::Models::ReasoningEffort
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Realtime
6
+ class ClientSecrets
7
+ # Some parameter documentations has been truncated, see
8
+ # {OpenAI::Models::Realtime::ClientSecretCreateParams} for more details.
9
+ #
10
+ # Create a Realtime session and client secret for either realtime or
11
+ # transcription.
12
+ #
13
+ # @overload create(expires_after: nil, session: nil, request_options: {})
14
+ #
15
+ # @param expires_after [OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter] Configuration for the ephemeral token expiration.
16
+ #
17
+ # @param session [OpenAI::Models::Realtime::RealtimeSessionCreateRequest, OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest] Session configuration to use for the client secret. Choose either a realtime
18
+ #
19
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
20
+ #
21
+ # @return [OpenAI::Models::Realtime::ClientSecretCreateResponse]
22
+ #
23
+ # @see OpenAI::Models::Realtime::ClientSecretCreateParams
24
+ def create(params = {})
25
+ parsed, options = OpenAI::Realtime::ClientSecretCreateParams.dump_request(params)
26
+ @client.request(
27
+ method: :post,
28
+ path: "realtime/client_secrets",
29
+ body: parsed,
30
+ model: OpenAI::Models::Realtime::ClientSecretCreateResponse,
31
+ options: options
32
+ )
33
+ end
34
+
35
+ # @api private
36
+ #
37
+ # @param client [OpenAI::Client]
38
+ def initialize(client:)
39
+ @client = client
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Realtime
6
+ # @return [OpenAI::Resources::Realtime::ClientSecrets]
7
+ attr_reader :client_secrets
8
+
9
+ # @api private
10
+ #
11
+ # @param client [OpenAI::Client]
12
+ def initialize(client:)
13
+ @client = client
14
+ @client_secrets = OpenAI::Resources::Realtime::ClientSecrets.new(client: client)
15
+ end
16
+ end
17
+ end
18
+ end