openai 0.20.0 → 0.21.0

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 (332) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -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/evals/run_cancel_response.rb +2 -2
  9. data/lib/openai/models/evals/run_create_params.rb +2 -2
  10. data/lib/openai/models/evals/run_create_response.rb +2 -2
  11. data/lib/openai/models/evals/run_list_response.rb +2 -2
  12. data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
  13. data/lib/openai/models/realtime/client_secret_create_params.rb +93 -0
  14. data/lib/openai/models/realtime/client_secret_create_response.rb +300 -0
  15. data/lib/openai/models/realtime/conversation_created_event.rb +70 -0
  16. data/lib/openai/models/realtime/conversation_item.rb +44 -0
  17. data/lib/openai/models/realtime/conversation_item_added.rb +48 -0
  18. data/lib/openai/models/realtime/conversation_item_create_event.rb +57 -0
  19. data/lib/openai/models/realtime/conversation_item_created_event.rb +59 -0
  20. data/lib/openai/models/realtime/conversation_item_delete_event.rb +39 -0
  21. data/lib/openai/models/realtime/conversation_item_deleted_event.rb +38 -0
  22. data/lib/openai/models/realtime/conversation_item_done.rb +48 -0
  23. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +189 -0
  24. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +63 -0
  25. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +96 -0
  26. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +84 -0
  27. data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +40 -0
  28. data/lib/openai/models/realtime/conversation_item_truncate_event.rb +68 -0
  29. data/lib/openai/models/realtime/conversation_item_truncated_event.rb +60 -0
  30. data/lib/openai/models/realtime/conversation_item_with_reference.rb +235 -0
  31. data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +49 -0
  32. data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +29 -0
  33. data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +29 -0
  34. data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +35 -0
  35. data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +51 -0
  36. data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +59 -0
  37. data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +51 -0
  38. data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +52 -0
  39. data/lib/openai/models/realtime/log_prob_properties.rb +39 -0
  40. data/lib/openai/models/realtime/mcp_list_tools_completed.rb +36 -0
  41. data/lib/openai/models/realtime/mcp_list_tools_failed.rb +36 -0
  42. data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +36 -0
  43. data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +32 -0
  44. data/lib/openai/models/realtime/rate_limits_updated_event.rb +91 -0
  45. data/lib/openai/models/realtime/realtime_audio_config.rb +446 -0
  46. data/lib/openai/models/realtime/realtime_client_event.rb +123 -0
  47. data/lib/openai/models/realtime/realtime_client_secret_config.rb +64 -0
  48. data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +118 -0
  49. data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +94 -0
  50. data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +86 -0
  51. data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +118 -0
  52. data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +135 -0
  53. data/lib/openai/models/realtime/realtime_error.rb +55 -0
  54. data/lib/openai/models/realtime/realtime_error_event.rb +38 -0
  55. data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +52 -0
  56. data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +52 -0
  57. data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +84 -0
  58. data/lib/openai/models/realtime/realtime_mcp_protocol_error.rb +29 -0
  59. data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +94 -0
  60. data/lib/openai/models/realtime/realtime_mcp_tool_execution_error.rb +23 -0
  61. data/lib/openai/models/realtime/realtime_mcphttp_error.rb +29 -0
  62. data/lib/openai/models/realtime/realtime_response.rb +259 -0
  63. data/lib/openai/models/realtime/realtime_response_status.rb +103 -0
  64. data/lib/openai/models/realtime/realtime_response_usage.rb +61 -0
  65. data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +36 -0
  66. data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +28 -0
  67. data/lib/openai/models/realtime/realtime_server_event.rb +369 -0
  68. data/lib/openai/models/realtime/realtime_session.rb +696 -0
  69. data/lib/openai/models/realtime/realtime_session_create_request.rb +234 -0
  70. data/lib/openai/models/realtime/realtime_session_create_response.rb +579 -0
  71. data/lib/openai/models/realtime/realtime_tool_choice_config.rb +32 -0
  72. data/lib/openai/models/realtime/realtime_tools_config.rb +11 -0
  73. data/lib/openai/models/realtime/realtime_tools_config_union.rb +379 -0
  74. data/lib/openai/models/realtime/realtime_tracing_config.rb +61 -0
  75. data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +312 -0
  76. data/lib/openai/models/realtime/realtime_truncation.rb +67 -0
  77. data/lib/openai/models/realtime/response_audio_delta_event.rb +68 -0
  78. data/lib/openai/models/realtime/response_audio_done_event.rb +61 -0
  79. data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +68 -0
  80. data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +70 -0
  81. data/lib/openai/models/realtime/response_cancel_event.rb +42 -0
  82. data/lib/openai/models/realtime/response_content_part_added_event.rb +120 -0
  83. data/lib/openai/models/realtime/response_content_part_done_event.rb +120 -0
  84. data/lib/openai/models/realtime/response_create_event.rb +391 -0
  85. data/lib/openai/models/realtime/response_created_event.rb +37 -0
  86. data/lib/openai/models/realtime/response_done_event.rb +38 -0
  87. data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +72 -0
  88. data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +73 -0
  89. data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +68 -0
  90. data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +60 -0
  91. data/lib/openai/models/realtime/response_mcp_call_completed.rb +44 -0
  92. data/lib/openai/models/realtime/response_mcp_call_failed.rb +44 -0
  93. data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +44 -0
  94. data/lib/openai/models/realtime/response_output_item_added_event.rb +52 -0
  95. data/lib/openai/models/realtime/response_output_item_done_event.rb +53 -0
  96. data/lib/openai/models/realtime/response_text_delta_event.rb +68 -0
  97. data/lib/openai/models/realtime/response_text_done_event.rb +69 -0
  98. data/lib/openai/models/realtime/session_created_event.rb +38 -0
  99. data/lib/openai/models/realtime/session_update_event.rb +44 -0
  100. data/lib/openai/models/realtime/session_updated_event.rb +37 -0
  101. data/lib/openai/models/realtime/transcription_session_created.rb +278 -0
  102. data/lib/openai/models/realtime/transcription_session_update.rb +36 -0
  103. data/lib/openai/models/realtime/transcription_session_updated_event.rb +279 -0
  104. data/lib/openai/models/responses/response.rb +6 -3
  105. data/lib/openai/models/responses/response_create_params.rb +6 -3
  106. data/lib/openai/models/responses/tool.rb +3 -156
  107. data/lib/openai/models/responses/web_search_preview_tool.rb +124 -0
  108. data/lib/openai/models/responses/web_search_tool.rb +58 -21
  109. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +119 -0
  110. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
  111. data/lib/openai/models.rb +2 -0
  112. data/lib/openai/resources/realtime/client_secrets.rb +44 -0
  113. data/lib/openai/resources/realtime.rb +18 -0
  114. data/lib/openai/resources/responses.rb +2 -2
  115. data/lib/openai/resources/webhooks.rb +1 -1
  116. data/lib/openai/version.rb +1 -1
  117. data/lib/openai.rb +95 -0
  118. data/rbi/openai/client.rbi +3 -0
  119. data/rbi/openai/models/audio/speech_create_params.rbi +10 -0
  120. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +10 -0
  121. data/rbi/openai/models/evals/run_cancel_response.rbi +4 -4
  122. data/rbi/openai/models/evals/run_create_params.rbi +8 -8
  123. data/rbi/openai/models/evals/run_create_response.rbi +4 -4
  124. data/rbi/openai/models/evals/run_list_response.rbi +4 -4
  125. data/rbi/openai/models/evals/run_retrieve_response.rbi +4 -4
  126. data/rbi/openai/models/realtime/client_secret_create_params.rbi +222 -0
  127. data/rbi/openai/models/realtime/client_secret_create_response.rbi +676 -0
  128. data/rbi/openai/models/realtime/conversation_created_event.rbi +164 -0
  129. data/rbi/openai/models/realtime/conversation_item.rbi +35 -0
  130. data/rbi/openai/models/realtime/conversation_item_added.rbi +105 -0
  131. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +123 -0
  132. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +117 -0
  133. data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +57 -0
  134. data/rbi/openai/models/realtime/conversation_item_deleted_event.rbi +53 -0
  135. data/rbi/openai/models/realtime/conversation_item_done.rbi +105 -0
  136. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +305 -0
  137. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +93 -0
  138. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +158 -0
  139. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbi +107 -0
  140. data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +58 -0
  141. data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +94 -0
  142. data/rbi/openai/models/realtime/conversation_item_truncated_event.rbi +80 -0
  143. data/rbi/openai/models/realtime/conversation_item_with_reference.rbi +549 -0
  144. data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +65 -0
  145. data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +43 -0
  146. data/rbi/openai/models/realtime/input_audio_buffer_cleared_event.rbi +40 -0
  147. data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +49 -0
  148. data/rbi/openai/models/realtime/input_audio_buffer_committed_event.rbi +72 -0
  149. data/rbi/openai/models/realtime/input_audio_buffer_speech_started_event.rbi +82 -0
  150. data/rbi/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbi +73 -0
  151. data/rbi/openai/models/realtime/input_audio_buffer_timeout_triggered.rbi +75 -0
  152. data/rbi/openai/models/realtime/log_prob_properties.rbi +55 -0
  153. data/rbi/openai/models/realtime/mcp_list_tools_completed.rbi +51 -0
  154. data/rbi/openai/models/realtime/mcp_list_tools_failed.rbi +51 -0
  155. data/rbi/openai/models/realtime/mcp_list_tools_in_progress.rbi +51 -0
  156. data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +46 -0
  157. data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +187 -0
  158. data/rbi/openai/models/realtime/realtime_audio_config.rbi +1004 -0
  159. data/rbi/openai/models/realtime/realtime_client_event.rbi +38 -0
  160. data/rbi/openai/models/realtime/realtime_client_secret_config.rbi +147 -0
  161. data/rbi/openai/models/realtime/realtime_conversation_item_assistant_message.rbi +292 -0
  162. data/rbi/openai/models/realtime/realtime_conversation_item_function_call.rbi +199 -0
  163. data/rbi/openai/models/realtime/realtime_conversation_item_function_call_output.rbi +188 -0
  164. data/rbi/openai/models/realtime/realtime_conversation_item_system_message.rbi +292 -0
  165. data/rbi/openai/models/realtime/realtime_conversation_item_user_message.rbi +319 -0
  166. data/rbi/openai/models/realtime/realtime_error.rbi +72 -0
  167. data/rbi/openai/models/realtime/realtime_error_event.rbi +64 -0
  168. data/rbi/openai/models/realtime/realtime_mcp_approval_request.rbi +75 -0
  169. data/rbi/openai/models/realtime/realtime_mcp_approval_response.rbi +75 -0
  170. data/rbi/openai/models/realtime/realtime_mcp_list_tools.rbi +131 -0
  171. data/rbi/openai/models/realtime/realtime_mcp_protocol_error.rbi +40 -0
  172. data/rbi/openai/models/realtime/realtime_mcp_tool_call.rbi +145 -0
  173. data/rbi/openai/models/realtime/realtime_mcp_tool_execution_error.rbi +31 -0
  174. data/rbi/openai/models/realtime/realtime_mcphttp_error.rbi +40 -0
  175. data/rbi/openai/models/realtime/realtime_response.rbi +573 -0
  176. data/rbi/openai/models/realtime/realtime_response_status.rbi +233 -0
  177. data/rbi/openai/models/realtime/realtime_response_usage.rbi +121 -0
  178. data/rbi/openai/models/realtime/realtime_response_usage_input_token_details.rbi +68 -0
  179. data/rbi/openai/models/realtime/realtime_response_usage_output_token_details.rbi +51 -0
  180. data/rbi/openai/models/realtime/realtime_server_event.rbi +311 -0
  181. data/rbi/openai/models/realtime/realtime_session.rbi +1426 -0
  182. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +560 -0
  183. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +1249 -0
  184. data/rbi/openai/models/realtime/realtime_tool_choice_config.rbi +30 -0
  185. data/rbi/openai/models/realtime/realtime_tools_config.rbi +15 -0
  186. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +755 -0
  187. data/rbi/openai/models/realtime/realtime_tracing_config.rbi +95 -0
  188. data/rbi/openai/models/realtime/realtime_transcription_session_create_request.rbi +703 -0
  189. data/rbi/openai/models/realtime/realtime_truncation.rbi +117 -0
  190. data/rbi/openai/models/realtime/response_audio_delta_event.rbi +91 -0
  191. data/rbi/openai/models/realtime/response_audio_done_event.rbi +84 -0
  192. data/rbi/openai/models/realtime/response_audio_transcript_delta_event.rbi +91 -0
  193. data/rbi/openai/models/realtime/response_audio_transcript_done_event.rbi +93 -0
  194. data/rbi/openai/models/realtime/response_cancel_event.rbi +63 -0
  195. data/rbi/openai/models/realtime/response_content_part_added_event.rbi +219 -0
  196. data/rbi/openai/models/realtime/response_content_part_done_event.rbi +219 -0
  197. data/rbi/openai/models/realtime/response_create_event.rbi +863 -0
  198. data/rbi/openai/models/realtime/response_created_event.rbi +65 -0
  199. data/rbi/openai/models/realtime/response_done_event.rbi +66 -0
  200. data/rbi/openai/models/realtime/response_function_call_arguments_delta_event.rbi +91 -0
  201. data/rbi/openai/models/realtime/response_function_call_arguments_done_event.rbi +92 -0
  202. data/rbi/openai/models/realtime/response_mcp_call_arguments_delta.rbi +91 -0
  203. data/rbi/openai/models/realtime/response_mcp_call_arguments_done.rbi +83 -0
  204. data/rbi/openai/models/realtime/response_mcp_call_completed.rbi +67 -0
  205. data/rbi/openai/models/realtime/response_mcp_call_failed.rbi +67 -0
  206. data/rbi/openai/models/realtime/response_mcp_call_in_progress.rbi +67 -0
  207. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +111 -0
  208. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +112 -0
  209. data/rbi/openai/models/realtime/response_text_delta_event.rbi +91 -0
  210. data/rbi/openai/models/realtime/response_text_done_event.rbi +92 -0
  211. data/rbi/openai/models/realtime/session_created_event.rbi +64 -0
  212. data/rbi/openai/models/realtime/session_update_event.rbi +77 -0
  213. data/rbi/openai/models/realtime/session_updated_event.rbi +63 -0
  214. data/rbi/openai/models/realtime/transcription_session_created.rbi +653 -0
  215. data/rbi/openai/models/realtime/transcription_session_update.rbi +74 -0
  216. data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +657 -0
  217. data/rbi/openai/models/responses/response.rbi +10 -4
  218. data/rbi/openai/models/responses/response_create_params.rbi +16 -10
  219. data/rbi/openai/models/responses/tool.rbi +2 -348
  220. data/rbi/openai/models/responses/web_search_preview_tool.rbi +245 -0
  221. data/rbi/openai/models/responses/web_search_tool.rbi +120 -23
  222. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +222 -0
  223. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  224. data/rbi/openai/models.rbi +2 -0
  225. data/rbi/openai/resources/realtime/client_secrets.rbi +38 -0
  226. data/rbi/openai/resources/realtime.rbi +15 -0
  227. data/rbi/openai/resources/responses.rbi +12 -6
  228. data/rbi/openai/resources/webhooks.rbi +1 -0
  229. data/sig/openai/client.rbs +2 -0
  230. data/sig/openai/models/audio/speech_create_params.rbs +4 -0
  231. data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -0
  232. data/sig/openai/models/realtime/client_secret_create_params.rbs +89 -0
  233. data/sig/openai/models/realtime/client_secret_create_response.rbs +292 -0
  234. data/sig/openai/models/realtime/conversation_created_event.rbs +70 -0
  235. data/sig/openai/models/realtime/conversation_item.rbs +22 -0
  236. data/sig/openai/models/realtime/conversation_item_added.rbs +37 -0
  237. data/sig/openai/models/realtime/conversation_item_create_event.rbs +41 -0
  238. data/sig/openai/models/realtime/conversation_item_created_event.rbs +37 -0
  239. data/sig/openai/models/realtime/conversation_item_delete_event.rbs +30 -0
  240. data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +32 -0
  241. data/sig/openai/models/realtime/conversation_item_done.rbs +37 -0
  242. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +136 -0
  243. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +51 -0
  244. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +77 -0
  245. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +62 -0
  246. data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +34 -0
  247. data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +44 -0
  248. data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +42 -0
  249. data/sig/openai/models/realtime/conversation_item_with_reference.rbs +207 -0
  250. data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +30 -0
  251. data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +23 -0
  252. data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +24 -0
  253. data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +23 -0
  254. data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +37 -0
  255. data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +37 -0
  256. data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +37 -0
  257. data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +42 -0
  258. data/sig/openai/models/realtime/log_prob_properties.rbs +28 -0
  259. data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +28 -0
  260. data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +28 -0
  261. data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +32 -0
  262. data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +23 -0
  263. data/sig/openai/models/realtime/rate_limits_updated_event.rbs +85 -0
  264. data/sig/openai/models/realtime/realtime_audio_config.rbs +354 -0
  265. data/sig/openai/models/realtime/realtime_client_event.rbs +25 -0
  266. data/sig/openai/models/realtime/realtime_client_secret_config.rbs +60 -0
  267. data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +117 -0
  268. data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +86 -0
  269. data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +79 -0
  270. data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +117 -0
  271. data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +132 -0
  272. data/sig/openai/models/realtime/realtime_error.rbs +42 -0
  273. data/sig/openai/models/realtime/realtime_error_event.rbs +32 -0
  274. data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +42 -0
  275. data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +42 -0
  276. data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +71 -0
  277. data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +28 -0
  278. data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +68 -0
  279. data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +18 -0
  280. data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +24 -0
  281. data/sig/openai/models/realtime/realtime_response.rbs +210 -0
  282. data/sig/openai/models/realtime/realtime_response_status.rbs +90 -0
  283. data/sig/openai/models/realtime/realtime_response_usage.rbs +56 -0
  284. data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +34 -0
  285. data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +22 -0
  286. data/sig/openai/models/realtime/realtime_server_event.rbs +168 -0
  287. data/sig/openai/models/realtime/realtime_session.rbs +521 -0
  288. data/sig/openai/models/realtime/realtime_session_create_request.rbs +178 -0
  289. data/sig/openai/models/realtime/realtime_session_create_response.rbs +526 -0
  290. data/sig/openai/models/realtime/realtime_tool_choice_config.rbs +16 -0
  291. data/sig/openai/models/realtime/realtime_tools_config.rbs +10 -0
  292. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +280 -0
  293. data/sig/openai/models/realtime/realtime_tracing_config.rbs +43 -0
  294. data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +242 -0
  295. data/sig/openai/models/realtime/realtime_truncation.rbs +53 -0
  296. data/sig/openai/models/realtime/response_audio_delta_event.rbs +52 -0
  297. data/sig/openai/models/realtime/response_audio_done_event.rbs +47 -0
  298. data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +52 -0
  299. data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +52 -0
  300. data/sig/openai/models/realtime/response_cancel_event.rbs +32 -0
  301. data/sig/openai/models/realtime/response_content_part_added_event.rbs +105 -0
  302. data/sig/openai/models/realtime/response_content_part_done_event.rbs +105 -0
  303. data/sig/openai/models/realtime/response_create_event.rbs +281 -0
  304. data/sig/openai/models/realtime/response_created_event.rbs +32 -0
  305. data/sig/openai/models/realtime/response_done_event.rbs +32 -0
  306. data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +52 -0
  307. data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +52 -0
  308. data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +52 -0
  309. data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +47 -0
  310. data/sig/openai/models/realtime/response_mcp_call_completed.rbs +37 -0
  311. data/sig/openai/models/realtime/response_mcp_call_failed.rbs +37 -0
  312. data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +37 -0
  313. data/sig/openai/models/realtime/response_output_item_added_event.rbs +42 -0
  314. data/sig/openai/models/realtime/response_output_item_done_event.rbs +42 -0
  315. data/sig/openai/models/realtime/response_text_delta_event.rbs +52 -0
  316. data/sig/openai/models/realtime/response_text_done_event.rbs +52 -0
  317. data/sig/openai/models/realtime/session_created_event.rbs +32 -0
  318. data/sig/openai/models/realtime/session_update_event.rbs +34 -0
  319. data/sig/openai/models/realtime/session_updated_event.rbs +32 -0
  320. data/sig/openai/models/realtime/transcription_session_created.rbs +282 -0
  321. data/sig/openai/models/realtime/transcription_session_update.rbs +34 -0
  322. data/sig/openai/models/realtime/transcription_session_updated_event.rbs +282 -0
  323. data/sig/openai/models/responses/tool.rbs +1 -121
  324. data/sig/openai/models/responses/web_search_preview_tool.rbs +96 -0
  325. data/sig/openai/models/responses/web_search_tool.rbs +39 -10
  326. data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +90 -0
  327. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  328. data/sig/openai/models.rbs +2 -0
  329. data/sig/openai/resources/realtime/client_secrets.rbs +15 -0
  330. data/sig/openai/resources/realtime.rbs +9 -0
  331. data/sig/openai/resources/webhooks.rbs +1 -0
  332. metadata +287 -2
@@ -0,0 +1,279 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class TranscriptionSessionUpdatedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute session
14
+ # A Realtime transcription session configuration object.
15
+ #
16
+ # @return [OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session]
17
+ required :session, -> { OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session }
18
+
19
+ # @!attribute type
20
+ # The event type, must be `transcription_session.updated`.
21
+ #
22
+ # @return [Symbol, :"transcription_session.updated"]
23
+ required :type, const: :"transcription_session.updated"
24
+
25
+ # @!method initialize(event_id:, session:, type: :"transcription_session.updated")
26
+ # Some parameter documentations has been truncated, see
27
+ # {OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent} for more details.
28
+ #
29
+ # Returned when a transcription session is updated with a
30
+ # `transcription_session.update` event, unless there is an error.
31
+ #
32
+ # @param event_id [String] The unique ID of the server event.
33
+ #
34
+ # @param session [OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session] A Realtime transcription session configuration object.
35
+ #
36
+ # @param type [Symbol, :"transcription_session.updated"] The event type, must be `transcription_session.updated`.
37
+
38
+ # @see OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent#session
39
+ class Session < OpenAI::Internal::Type::BaseModel
40
+ # @!attribute id
41
+ # Unique identifier for the session that looks like `sess_1234567890abcdef`.
42
+ #
43
+ # @return [String, nil]
44
+ optional :id, String
45
+
46
+ # @!attribute audio
47
+ # Configuration for input audio for the session.
48
+ #
49
+ # @return [OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio, nil]
50
+ optional :audio, -> { OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio }
51
+
52
+ # @!attribute expires_at
53
+ # Expiration timestamp for the session, in seconds since epoch.
54
+ #
55
+ # @return [Integer, nil]
56
+ optional :expires_at, Integer
57
+
58
+ # @!attribute include
59
+ # Additional fields to include in server outputs.
60
+ #
61
+ # - `item.input_audio_transcription.logprobs`: Include logprobs for input audio
62
+ # transcription.
63
+ #
64
+ # @return [Array<Symbol, OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Include>, nil]
65
+ optional :include,
66
+ -> { OpenAI::Internal::Type::ArrayOf[enum: OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Include] }
67
+
68
+ # @!attribute object
69
+ # The object type. Always `realtime.transcription_session`.
70
+ #
71
+ # @return [String, nil]
72
+ optional :object, String
73
+
74
+ # @!method initialize(id: nil, audio: nil, expires_at: nil, include: nil, object: nil)
75
+ # Some parameter documentations has been truncated, see
76
+ # {OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session} for more
77
+ # details.
78
+ #
79
+ # A Realtime transcription session configuration object.
80
+ #
81
+ # @param id [String] Unique identifier for the session that looks like `sess_1234567890abcdef`.
82
+ #
83
+ # @param audio [OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio] Configuration for input audio for the session.
84
+ #
85
+ # @param expires_at [Integer] Expiration timestamp for the session, in seconds since epoch.
86
+ #
87
+ # @param include [Array<Symbol, OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Include>] Additional fields to include in server outputs.
88
+ #
89
+ # @param object [String] The object type. Always `realtime.transcription_session`.
90
+
91
+ # @see OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session#audio
92
+ class Audio < OpenAI::Internal::Type::BaseModel
93
+ # @!attribute input
94
+ #
95
+ # @return [OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input, nil]
96
+ optional :input, -> { OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input }
97
+
98
+ # @!method initialize(input: nil)
99
+ # Configuration for input audio for the session.
100
+ #
101
+ # @param input [OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input]
102
+
103
+ # @see OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio#input
104
+ class Input < OpenAI::Internal::Type::BaseModel
105
+ # @!attribute format_
106
+ # The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
107
+ #
108
+ # @return [String, nil]
109
+ optional :format_, String, api_name: :format
110
+
111
+ # @!attribute noise_reduction
112
+ # Configuration for input audio noise reduction.
113
+ #
114
+ # @return [OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction, nil]
115
+ optional :noise_reduction,
116
+ -> { OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction }
117
+
118
+ # @!attribute transcription
119
+ # Configuration of the transcription model.
120
+ #
121
+ # @return [OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription, nil]
122
+ optional :transcription,
123
+ -> { OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription }
124
+
125
+ # @!attribute turn_detection
126
+ # Configuration for turn detection.
127
+ #
128
+ # @return [OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::TurnDetection, nil]
129
+ optional :turn_detection,
130
+ -> { OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::TurnDetection }
131
+
132
+ # @!method initialize(format_: nil, noise_reduction: nil, transcription: nil, turn_detection: nil)
133
+ # Some parameter documentations has been truncated, see
134
+ # {OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input}
135
+ # for more details.
136
+ #
137
+ # @param format_ [String] The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
138
+ #
139
+ # @param noise_reduction [OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction] Configuration for input audio noise reduction.
140
+ #
141
+ # @param transcription [OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription] Configuration of the transcription model.
142
+ #
143
+ # @param turn_detection [OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::TurnDetection] Configuration for turn detection.
144
+
145
+ # @see OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input#noise_reduction
146
+ class NoiseReduction < OpenAI::Internal::Type::BaseModel
147
+ # @!attribute type
148
+ #
149
+ # @return [Symbol, OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::Type, nil]
150
+ optional :type,
151
+ enum: -> { OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::Type }
152
+
153
+ # @!method initialize(type: nil)
154
+ # Configuration for input audio noise reduction.
155
+ #
156
+ # @param type [Symbol, OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::Type]
157
+
158
+ # @see OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction#type
159
+ module Type
160
+ extend OpenAI::Internal::Type::Enum
161
+
162
+ NEAR_FIELD = :near_field
163
+ FAR_FIELD = :far_field
164
+
165
+ # @!method self.values
166
+ # @return [Array<Symbol>]
167
+ end
168
+ end
169
+
170
+ # @see OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input#transcription
171
+ class Transcription < OpenAI::Internal::Type::BaseModel
172
+ # @!attribute language
173
+ # The language of the input audio. Supplying the input language in
174
+ # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`)
175
+ # format will improve accuracy and latency.
176
+ #
177
+ # @return [String, nil]
178
+ optional :language, String
179
+
180
+ # @!attribute model
181
+ # The model to use for transcription. Can be `gpt-4o-transcribe`,
182
+ # `gpt-4o-mini-transcribe`, or `whisper-1`.
183
+ #
184
+ # @return [Symbol, OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::Model, nil]
185
+ optional :model,
186
+ enum: -> { OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::Model }
187
+
188
+ # @!attribute prompt
189
+ # An optional text to guide the model's style or continue a previous audio
190
+ # segment. The
191
+ # [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting)
192
+ # should match the audio language.
193
+ #
194
+ # @return [String, nil]
195
+ optional :prompt, String
196
+
197
+ # @!method initialize(language: nil, model: nil, prompt: nil)
198
+ # Some parameter documentations has been truncated, see
199
+ # {OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription}
200
+ # for more details.
201
+ #
202
+ # Configuration of the transcription model.
203
+ #
204
+ # @param language [String] The language of the input audio. Supplying the input language in
205
+ #
206
+ # @param model [Symbol, OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::Model] The model to use for transcription. Can be `gpt-4o-transcribe`, `gpt-4o-mini-tra
207
+ #
208
+ # @param prompt [String] An optional text to guide the model's style or continue a previous audio segment
209
+
210
+ # The model to use for transcription. Can be `gpt-4o-transcribe`,
211
+ # `gpt-4o-mini-transcribe`, or `whisper-1`.
212
+ #
213
+ # @see OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription#model
214
+ module Model
215
+ extend OpenAI::Internal::Type::Enum
216
+
217
+ GPT_4O_TRANSCRIBE = :"gpt-4o-transcribe"
218
+ GPT_4O_MINI_TRANSCRIBE = :"gpt-4o-mini-transcribe"
219
+ WHISPER_1 = :"whisper-1"
220
+
221
+ # @!method self.values
222
+ # @return [Array<Symbol>]
223
+ end
224
+ end
225
+
226
+ # @see OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input#turn_detection
227
+ class TurnDetection < OpenAI::Internal::Type::BaseModel
228
+ # @!attribute prefix_padding_ms
229
+ #
230
+ # @return [Integer, nil]
231
+ optional :prefix_padding_ms, Integer
232
+
233
+ # @!attribute silence_duration_ms
234
+ #
235
+ # @return [Integer, nil]
236
+ optional :silence_duration_ms, Integer
237
+
238
+ # @!attribute threshold
239
+ #
240
+ # @return [Float, nil]
241
+ optional :threshold, Float
242
+
243
+ # @!attribute type
244
+ # Type of turn detection, only `server_vad` is currently supported.
245
+ #
246
+ # @return [String, nil]
247
+ optional :type, String
248
+
249
+ # @!method initialize(prefix_padding_ms: nil, silence_duration_ms: nil, threshold: nil, type: nil)
250
+ # Some parameter documentations has been truncated, see
251
+ # {OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::TurnDetection}
252
+ # for more details.
253
+ #
254
+ # Configuration for turn detection.
255
+ #
256
+ # @param prefix_padding_ms [Integer]
257
+ #
258
+ # @param silence_duration_ms [Integer]
259
+ #
260
+ # @param threshold [Float]
261
+ #
262
+ # @param type [String] Type of turn detection, only `server_vad` is currently supported.
263
+ end
264
+ end
265
+ end
266
+
267
+ module Include
268
+ extend OpenAI::Internal::Type::Enum
269
+
270
+ ITEM_INPUT_AUDIO_TRANSCRIPTION_LOGPROBS = :"item.input_audio_transcription.logprobs"
271
+
272
+ # @!method self.values
273
+ # @return [Array<Symbol>]
274
+ end
275
+ end
276
+ end
277
+ end
278
+ end
279
+ end
@@ -107,7 +107,7 @@ module OpenAI
107
107
  # An array of tools the model may call while generating a response. You can
108
108
  # specify which tool to use by setting the `tool_choice` parameter.
109
109
  #
110
- # The two categories of tools you can provide the model are:
110
+ # We support the following categories of tools:
111
111
  #
112
112
  # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
113
113
  # capabilities, like
@@ -115,13 +115,16 @@ module OpenAI
115
115
  # [file search](https://platform.openai.com/docs/guides/tools-file-search).
116
116
  # Learn more about
117
117
  # [built-in tools](https://platform.openai.com/docs/guides/tools).
118
+ # - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
119
+ # predefined connectors such as Google Drive and Notion. Learn more about
120
+ # [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
118
121
  # - **Function calls (custom tools)**: Functions that are defined by you, enabling
119
122
  # the model to call your own code with strongly typed arguments and outputs.
120
123
  # Learn more about
121
124
  # [function calling](https://platform.openai.com/docs/guides/function-calling).
122
125
  # You can also use custom tools to call your own code.
123
126
  #
124
- # @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>]
127
+ # @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>]
125
128
  required :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::Tool] }
126
129
 
127
130
  # @!attribute top_p
@@ -330,7 +333,7 @@ module OpenAI
330
333
  #
331
334
  # @param tool_choice [Symbol, OpenAI::Models::Responses::ToolChoiceOptions, OpenAI::Models::Responses::ToolChoiceAllowed, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction, OpenAI::Models::Responses::ToolChoiceMcp, OpenAI::Models::Responses::ToolChoiceCustom] How the model should select which tool (or tools) to use when generating
332
335
  #
333
- # @param tools [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>] An array of tools the model may call while generating a response. You
336
+ # @param tools [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>] An array of tools the model may call while generating a response. You
334
337
  #
335
338
  # @param top_p [Float, nil] An alternative to sampling with temperature, called nucleus sampling,
336
339
  #
@@ -236,7 +236,7 @@ module OpenAI
236
236
  # An array of tools the model may call while generating a response. You can
237
237
  # specify which tool to use by setting the `tool_choice` parameter.
238
238
  #
239
- # The two categories of tools you can provide the model are:
239
+ # We support the following categories of tools:
240
240
  #
241
241
  # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
242
242
  # capabilities, like
@@ -244,13 +244,16 @@ module OpenAI
244
244
  # [file search](https://platform.openai.com/docs/guides/tools-file-search).
245
245
  # Learn more about
246
246
  # [built-in tools](https://platform.openai.com/docs/guides/tools).
247
+ # - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
248
+ # predefined connectors such as Google Drive and Notion. Learn more about
249
+ # [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
247
250
  # - **Function calls (custom tools)**: Functions that are defined by you, enabling
248
251
  # the model to call your own code with strongly typed arguments and outputs.
249
252
  # Learn more about
250
253
  # [function calling](https://platform.openai.com/docs/guides/function-calling).
251
254
  # You can also use custom tools to call your own code.
252
255
  #
253
- # @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>, nil]
256
+ # @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>, nil]
254
257
  optional :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::Tool] }
255
258
 
256
259
  # @!attribute top_logprobs
@@ -340,7 +343,7 @@ module OpenAI
340
343
  #
341
344
  # @param tool_choice [Symbol, OpenAI::Models::Responses::ToolChoiceOptions, OpenAI::Models::Responses::ToolChoiceAllowed, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction, OpenAI::Models::Responses::ToolChoiceMcp, OpenAI::Models::Responses::ToolChoiceCustom] How the model should select which tool (or tools) to use when generating
342
345
  #
343
- # @param tools [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>] An array of tools the model may call while generating a response. You
346
+ # @param tools [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>] An array of tools the model may call while generating a response. You
344
347
  #
345
348
  # @param top_logprobs [Integer, nil] An integer between 0 and 20 specifying the number of most likely tokens to
346
349
  #
@@ -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