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
@@ -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
@@ -67,7 +67,7 @@ module OpenAI
67
67
  #
68
68
  # @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
69
69
  #
70
- # @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
70
+ # @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
71
71
  #
72
72
  # @param top_logprobs [Integer, nil] An integer between 0 and 20 specifying the number of most likely tokens to
73
73
  #
@@ -284,7 +284,7 @@ module OpenAI
284
284
  #
285
285
  # @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
286
286
  #
287
- # @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
287
+ # @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
288
288
  #
289
289
  # @param top_logprobs [Integer, nil] An integer between 0 and 20 specifying the number of most likely tokens to
290
290
  #
@@ -12,7 +12,7 @@ module OpenAI
12
12
  # @param headers [Hash] The webhook headers
13
13
  # @param webhook_secret [String, nil] The webhook secret (optional, will use client webhook secret or ENV["OPENAI_WEBHOOK_SECRET"] if not provided)
14
14
  #
15
- # @return [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::ResponseCreatedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent]
15
+ # @return [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]
16
16
  #
17
17
  # @raise [ArgumentError] if signature verification fails
18
18
  def unwrap(
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.20.0"
4
+ VERSION = "0.21.0"
5
5
  end
data/lib/openai.rb CHANGED
@@ -380,6 +380,97 @@ require_relative "openai/models/moderation_model"
380
380
  require_relative "openai/models/moderation_multi_modal_input"
381
381
  require_relative "openai/models/moderation_text_input"
382
382
  require_relative "openai/models/other_file_chunking_strategy_object"
383
+ require_relative "openai/models/realtime/client_secret_create_params"
384
+ require_relative "openai/models/realtime/client_secret_create_response"
385
+ require_relative "openai/models/realtime/conversation_created_event"
386
+ require_relative "openai/models/realtime/conversation_item"
387
+ require_relative "openai/models/realtime/conversation_item_added"
388
+ require_relative "openai/models/realtime/conversation_item_created_event"
389
+ require_relative "openai/models/realtime/conversation_item_create_event"
390
+ require_relative "openai/models/realtime/conversation_item_deleted_event"
391
+ require_relative "openai/models/realtime/conversation_item_delete_event"
392
+ require_relative "openai/models/realtime/conversation_item_done"
393
+ require_relative "openai/models/realtime/conversation_item_input_audio_transcription_completed_event"
394
+ require_relative "openai/models/realtime/conversation_item_input_audio_transcription_delta_event"
395
+ require_relative "openai/models/realtime/conversation_item_input_audio_transcription_failed_event"
396
+ require_relative "openai/models/realtime/conversation_item_input_audio_transcription_segment"
397
+ require_relative "openai/models/realtime/conversation_item_retrieve_event"
398
+ require_relative "openai/models/realtime/conversation_item_truncated_event"
399
+ require_relative "openai/models/realtime/conversation_item_truncate_event"
400
+ require_relative "openai/models/realtime/conversation_item_with_reference"
401
+ require_relative "openai/models/realtime/input_audio_buffer_append_event"
402
+ require_relative "openai/models/realtime/input_audio_buffer_cleared_event"
403
+ require_relative "openai/models/realtime/input_audio_buffer_clear_event"
404
+ require_relative "openai/models/realtime/input_audio_buffer_commit_event"
405
+ require_relative "openai/models/realtime/input_audio_buffer_committed_event"
406
+ require_relative "openai/models/realtime/input_audio_buffer_speech_started_event"
407
+ require_relative "openai/models/realtime/input_audio_buffer_speech_stopped_event"
408
+ require_relative "openai/models/realtime/input_audio_buffer_timeout_triggered"
409
+ require_relative "openai/models/realtime/log_prob_properties"
410
+ require_relative "openai/models/realtime/mcp_list_tools_completed"
411
+ require_relative "openai/models/realtime/mcp_list_tools_failed"
412
+ require_relative "openai/models/realtime/mcp_list_tools_in_progress"
413
+ require_relative "openai/models/realtime/output_audio_buffer_clear_event"
414
+ require_relative "openai/models/realtime/rate_limits_updated_event"
415
+ require_relative "openai/models/realtime/realtime_audio_config"
416
+ require_relative "openai/models/realtime/realtime_client_event"
417
+ require_relative "openai/models/realtime/realtime_client_secret_config"
418
+ require_relative "openai/models/realtime/realtime_conversation_item_assistant_message"
419
+ require_relative "openai/models/realtime/realtime_conversation_item_function_call"
420
+ require_relative "openai/models/realtime/realtime_conversation_item_function_call_output"
421
+ require_relative "openai/models/realtime/realtime_conversation_item_system_message"
422
+ require_relative "openai/models/realtime/realtime_conversation_item_user_message"
423
+ require_relative "openai/models/realtime/realtime_error"
424
+ require_relative "openai/models/realtime/realtime_error_event"
425
+ require_relative "openai/models/realtime/realtime_mcp_approval_request"
426
+ require_relative "openai/models/realtime/realtime_mcp_approval_response"
427
+ require_relative "openai/models/realtime/realtime_mcphttp_error"
428
+ require_relative "openai/models/realtime/realtime_mcp_list_tools"
429
+ require_relative "openai/models/realtime/realtime_mcp_protocol_error"
430
+ require_relative "openai/models/realtime/realtime_mcp_tool_call"
431
+ require_relative "openai/models/realtime/realtime_mcp_tool_execution_error"
432
+ require_relative "openai/models/realtime/realtime_response"
433
+ require_relative "openai/models/realtime/realtime_response_status"
434
+ require_relative "openai/models/realtime/realtime_response_usage"
435
+ require_relative "openai/models/realtime/realtime_response_usage_input_token_details"
436
+ require_relative "openai/models/realtime/realtime_response_usage_output_token_details"
437
+ require_relative "openai/models/realtime/realtime_server_event"
438
+ require_relative "openai/models/realtime/realtime_session"
439
+ require_relative "openai/models/realtime/realtime_session_create_request"
440
+ require_relative "openai/models/realtime/realtime_session_create_response"
441
+ require_relative "openai/models/realtime/realtime_tool_choice_config"
442
+ require_relative "openai/models/realtime/realtime_tools_config"
443
+ require_relative "openai/models/realtime/realtime_tools_config_union"
444
+ require_relative "openai/models/realtime/realtime_tracing_config"
445
+ require_relative "openai/models/realtime/realtime_transcription_session_create_request"
446
+ require_relative "openai/models/realtime/realtime_truncation"
447
+ require_relative "openai/models/realtime/response_audio_delta_event"
448
+ require_relative "openai/models/realtime/response_audio_done_event"
449
+ require_relative "openai/models/realtime/response_audio_transcript_delta_event"
450
+ require_relative "openai/models/realtime/response_audio_transcript_done_event"
451
+ require_relative "openai/models/realtime/response_cancel_event"
452
+ require_relative "openai/models/realtime/response_content_part_added_event"
453
+ require_relative "openai/models/realtime/response_content_part_done_event"
454
+ require_relative "openai/models/realtime/response_created_event"
455
+ require_relative "openai/models/realtime/response_create_event"
456
+ require_relative "openai/models/realtime/response_done_event"
457
+ require_relative "openai/models/realtime/response_function_call_arguments_delta_event"
458
+ require_relative "openai/models/realtime/response_function_call_arguments_done_event"
459
+ require_relative "openai/models/realtime/response_mcp_call_arguments_delta"
460
+ require_relative "openai/models/realtime/response_mcp_call_arguments_done"
461
+ require_relative "openai/models/realtime/response_mcp_call_completed"
462
+ require_relative "openai/models/realtime/response_mcp_call_failed"
463
+ require_relative "openai/models/realtime/response_mcp_call_in_progress"
464
+ require_relative "openai/models/realtime/response_output_item_added_event"
465
+ require_relative "openai/models/realtime/response_output_item_done_event"
466
+ require_relative "openai/models/realtime/response_text_delta_event"
467
+ require_relative "openai/models/realtime/response_text_done_event"
468
+ require_relative "openai/models/realtime/session_created_event"
469
+ require_relative "openai/models/realtime/session_updated_event"
470
+ require_relative "openai/models/realtime/session_update_event"
471
+ require_relative "openai/models/realtime/transcription_session_created"
472
+ require_relative "openai/models/realtime/transcription_session_update"
473
+ require_relative "openai/models/realtime/transcription_session_updated_event"
383
474
  require_relative "openai/models/reasoning"
384
475
  require_relative "openai/models/response_format_json_object"
385
476
  require_relative "openai/models/response_format_json_schema"
@@ -495,6 +586,7 @@ require_relative "openai/models/responses/tool_choice_function"
495
586
  require_relative "openai/models/responses/tool_choice_mcp"
496
587
  require_relative "openai/models/responses/tool_choice_options"
497
588
  require_relative "openai/models/responses/tool_choice_types"
589
+ require_relative "openai/models/responses/web_search_preview_tool"
498
590
  require_relative "openai/models/responses/web_search_tool"
499
591
  require_relative "openai/models/responses_model"
500
592
  require_relative "openai/models/static_file_chunking_strategy"
@@ -539,6 +631,7 @@ require_relative "openai/models/webhooks/eval_run_succeeded_webhook_event"
539
631
  require_relative "openai/models/webhooks/fine_tuning_job_cancelled_webhook_event"
540
632
  require_relative "openai/models/webhooks/fine_tuning_job_failed_webhook_event"
541
633
  require_relative "openai/models/webhooks/fine_tuning_job_succeeded_webhook_event"
634
+ require_relative "openai/models/webhooks/realtime_call_incoming_webhook_event"
542
635
  require_relative "openai/models/webhooks/response_cancelled_webhook_event"
543
636
  require_relative "openai/models/webhooks/response_completed_webhook_event"
544
637
  require_relative "openai/models/webhooks/response_failed_webhook_event"
@@ -584,6 +677,8 @@ require_relative "openai/resources/graders/grader_models"
584
677
  require_relative "openai/resources/images"
585
678
  require_relative "openai/resources/models"
586
679
  require_relative "openai/resources/moderations"
680
+ require_relative "openai/resources/realtime"
681
+ require_relative "openai/resources/realtime/client_secrets"
587
682
  require_relative "openai/resources/responses"
588
683
  require_relative "openai/resources/responses/input_items"
589
684
  require_relative "openai/resources/uploads"
@@ -67,6 +67,9 @@ module OpenAI
67
67
  sig { returns(OpenAI::Resources::Responses) }
68
68
  attr_reader :responses
69
69
 
70
+ sig { returns(OpenAI::Resources::Realtime) }
71
+ attr_reader :realtime
72
+
70
73
  sig { returns(OpenAI::Resources::Conversations) }
71
74
  attr_reader :conversations
72
75
 
@@ -228,6 +228,16 @@ module OpenAI
228
228
  :verse,
229
229
  OpenAI::Audio::SpeechCreateParams::Voice::TaggedSymbol
230
230
  )
231
+ MARIN =
232
+ T.let(
233
+ :marin,
234
+ OpenAI::Audio::SpeechCreateParams::Voice::TaggedSymbol
235
+ )
236
+ CEDAR =
237
+ T.let(
238
+ :cedar,
239
+ OpenAI::Audio::SpeechCreateParams::Voice::TaggedSymbol
240
+ )
231
241
  end
232
242
 
233
243
  # The format to audio in. Supported formats are `mp3`, `opus`, `aac`, `flac`,
@@ -191,6 +191,16 @@ module OpenAI
191
191
  :verse,
192
192
  OpenAI::Chat::ChatCompletionAudioParam::Voice::TaggedSymbol
193
193
  )
194
+ MARIN =
195
+ T.let(
196
+ :marin,
197
+ OpenAI::Chat::ChatCompletionAudioParam::Voice::TaggedSymbol
198
+ )
199
+ CEDAR =
200
+ T.let(
201
+ :cedar,
202
+ OpenAI::Chat::ChatCompletionAudioParam::Voice::TaggedSymbol
203
+ )
194
204
  end
195
205
  end
196
206
  end
@@ -1175,8 +1175,8 @@ module OpenAI
1175
1175
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
1176
1176
  OpenAI::Responses::Tool::LocalShell::OrHash,
1177
1177
  OpenAI::Responses::CustomTool::OrHash,
1178
- OpenAI::Responses::Tool::WebSearchTool::OrHash,
1179
- OpenAI::Responses::WebSearchTool::OrHash
1178
+ OpenAI::Responses::WebSearchTool::OrHash,
1179
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
1180
1180
  )
1181
1181
  ]
1182
1182
  ).void
@@ -1208,8 +1208,8 @@ module OpenAI
1208
1208
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
1209
1209
  OpenAI::Responses::Tool::LocalShell::OrHash,
1210
1210
  OpenAI::Responses::CustomTool::OrHash,
1211
- OpenAI::Responses::Tool::WebSearchTool::OrHash,
1212
- OpenAI::Responses::WebSearchTool::OrHash
1211
+ OpenAI::Responses::WebSearchTool::OrHash,
1212
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
1213
1213
  )
1214
1214
  ],
1215
1215
  top_p: Float
@@ -1126,8 +1126,8 @@ module OpenAI
1126
1126
  OpenAI::Responses::Tool::ImageGeneration,
1127
1127
  OpenAI::Responses::Tool::LocalShell,
1128
1128
  OpenAI::Responses::CustomTool,
1129
- OpenAI::Responses::Tool::WebSearchTool,
1130
- OpenAI::Responses::WebSearchTool
1129
+ OpenAI::Responses::WebSearchTool,
1130
+ OpenAI::Responses::WebSearchPreviewTool
1131
1131
  )
1132
1132
  ]
1133
1133
  )
@@ -1148,8 +1148,8 @@ module OpenAI
1148
1148
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
1149
1149
  OpenAI::Responses::Tool::LocalShell::OrHash,
1150
1150
  OpenAI::Responses::CustomTool::OrHash,
1151
- OpenAI::Responses::Tool::WebSearchTool::OrHash,
1152
- OpenAI::Responses::WebSearchTool::OrHash
1151
+ OpenAI::Responses::WebSearchTool::OrHash,
1152
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
1153
1153
  )
1154
1154
  ]
1155
1155
  ).void
@@ -1181,8 +1181,8 @@ module OpenAI
1181
1181
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
1182
1182
  OpenAI::Responses::Tool::LocalShell::OrHash,
1183
1183
  OpenAI::Responses::CustomTool::OrHash,
1184
- OpenAI::Responses::Tool::WebSearchTool::OrHash,
1185
- OpenAI::Responses::WebSearchTool::OrHash
1184
+ OpenAI::Responses::WebSearchTool::OrHash,
1185
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
1186
1186
  )
1187
1187
  ],
1188
1188
  top_p: Float
@@ -1240,8 +1240,8 @@ module OpenAI
1240
1240
  OpenAI::Responses::Tool::ImageGeneration,
1241
1241
  OpenAI::Responses::Tool::LocalShell,
1242
1242
  OpenAI::Responses::CustomTool,
1243
- OpenAI::Responses::Tool::WebSearchTool,
1244
- OpenAI::Responses::WebSearchTool
1243
+ OpenAI::Responses::WebSearchTool,
1244
+ OpenAI::Responses::WebSearchPreviewTool
1245
1245
  )
1246
1246
  ],
1247
1247
  top_p: Float