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,521 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_session =
5
+ {
6
+ id: String,
7
+ expires_at: Integer,
8
+ include: ::Array[OpenAI::Models::Realtime::RealtimeSession::include_]?,
9
+ input_audio_format: OpenAI::Models::Realtime::RealtimeSession::input_audio_format,
10
+ input_audio_noise_reduction: OpenAI::Realtime::RealtimeSession::InputAudioNoiseReduction,
11
+ input_audio_transcription: OpenAI::Realtime::RealtimeSession::InputAudioTranscription?,
12
+ instructions: String,
13
+ max_response_output_tokens: OpenAI::Models::Realtime::RealtimeSession::max_response_output_tokens,
14
+ modalities: ::Array[OpenAI::Models::Realtime::RealtimeSession::modality],
15
+ model: OpenAI::Models::Realtime::RealtimeSession::model,
16
+ object: OpenAI::Models::Realtime::RealtimeSession::object,
17
+ output_audio_format: OpenAI::Models::Realtime::RealtimeSession::output_audio_format,
18
+ prompt: OpenAI::Responses::ResponsePrompt?,
19
+ speed: Float,
20
+ temperature: Float,
21
+ tool_choice: String,
22
+ tools: ::Array[OpenAI::Realtime::RealtimeSession::Tool],
23
+ tracing: OpenAI::Models::Realtime::RealtimeSession::tracing?,
24
+ turn_detection: OpenAI::Realtime::RealtimeSession::TurnDetection?,
25
+ voice: OpenAI::Models::Realtime::RealtimeSession::voice
26
+ }
27
+
28
+ class RealtimeSession < OpenAI::Internal::Type::BaseModel
29
+ attr_reader id: String?
30
+
31
+ def id=: (String) -> String
32
+
33
+ attr_reader expires_at: Integer?
34
+
35
+ def expires_at=: (Integer) -> Integer
36
+
37
+ attr_accessor include: ::Array[OpenAI::Models::Realtime::RealtimeSession::include_]?
38
+
39
+ attr_reader input_audio_format: OpenAI::Models::Realtime::RealtimeSession::input_audio_format?
40
+
41
+ def input_audio_format=: (
42
+ OpenAI::Models::Realtime::RealtimeSession::input_audio_format
43
+ ) -> OpenAI::Models::Realtime::RealtimeSession::input_audio_format
44
+
45
+ attr_reader input_audio_noise_reduction: OpenAI::Realtime::RealtimeSession::InputAudioNoiseReduction?
46
+
47
+ def input_audio_noise_reduction=: (
48
+ OpenAI::Realtime::RealtimeSession::InputAudioNoiseReduction
49
+ ) -> OpenAI::Realtime::RealtimeSession::InputAudioNoiseReduction
50
+
51
+ attr_accessor input_audio_transcription: OpenAI::Realtime::RealtimeSession::InputAudioTranscription?
52
+
53
+ attr_reader instructions: String?
54
+
55
+ def instructions=: (String) -> String
56
+
57
+ attr_reader max_response_output_tokens: OpenAI::Models::Realtime::RealtimeSession::max_response_output_tokens?
58
+
59
+ def max_response_output_tokens=: (
60
+ OpenAI::Models::Realtime::RealtimeSession::max_response_output_tokens
61
+ ) -> OpenAI::Models::Realtime::RealtimeSession::max_response_output_tokens
62
+
63
+ attr_reader modalities: ::Array[OpenAI::Models::Realtime::RealtimeSession::modality]?
64
+
65
+ def modalities=: (
66
+ ::Array[OpenAI::Models::Realtime::RealtimeSession::modality]
67
+ ) -> ::Array[OpenAI::Models::Realtime::RealtimeSession::modality]
68
+
69
+ attr_reader model: OpenAI::Models::Realtime::RealtimeSession::model?
70
+
71
+ def model=: (
72
+ OpenAI::Models::Realtime::RealtimeSession::model
73
+ ) -> OpenAI::Models::Realtime::RealtimeSession::model
74
+
75
+ attr_reader object: OpenAI::Models::Realtime::RealtimeSession::object?
76
+
77
+ def object=: (
78
+ OpenAI::Models::Realtime::RealtimeSession::object
79
+ ) -> OpenAI::Models::Realtime::RealtimeSession::object
80
+
81
+ attr_reader output_audio_format: OpenAI::Models::Realtime::RealtimeSession::output_audio_format?
82
+
83
+ def output_audio_format=: (
84
+ OpenAI::Models::Realtime::RealtimeSession::output_audio_format
85
+ ) -> OpenAI::Models::Realtime::RealtimeSession::output_audio_format
86
+
87
+ attr_accessor prompt: OpenAI::Responses::ResponsePrompt?
88
+
89
+ attr_reader speed: Float?
90
+
91
+ def speed=: (Float) -> Float
92
+
93
+ attr_reader temperature: Float?
94
+
95
+ def temperature=: (Float) -> Float
96
+
97
+ attr_reader tool_choice: String?
98
+
99
+ def tool_choice=: (String) -> String
100
+
101
+ attr_reader tools: ::Array[OpenAI::Realtime::RealtimeSession::Tool]?
102
+
103
+ def tools=: (
104
+ ::Array[OpenAI::Realtime::RealtimeSession::Tool]
105
+ ) -> ::Array[OpenAI::Realtime::RealtimeSession::Tool]
106
+
107
+ attr_accessor tracing: OpenAI::Models::Realtime::RealtimeSession::tracing?
108
+
109
+ attr_accessor turn_detection: OpenAI::Realtime::RealtimeSession::TurnDetection?
110
+
111
+ attr_reader voice: OpenAI::Models::Realtime::RealtimeSession::voice?
112
+
113
+ def voice=: (
114
+ OpenAI::Models::Realtime::RealtimeSession::voice
115
+ ) -> OpenAI::Models::Realtime::RealtimeSession::voice
116
+
117
+ def initialize: (
118
+ ?id: String,
119
+ ?expires_at: Integer,
120
+ ?include: ::Array[OpenAI::Models::Realtime::RealtimeSession::include_]?,
121
+ ?input_audio_format: OpenAI::Models::Realtime::RealtimeSession::input_audio_format,
122
+ ?input_audio_noise_reduction: OpenAI::Realtime::RealtimeSession::InputAudioNoiseReduction,
123
+ ?input_audio_transcription: OpenAI::Realtime::RealtimeSession::InputAudioTranscription?,
124
+ ?instructions: String,
125
+ ?max_response_output_tokens: OpenAI::Models::Realtime::RealtimeSession::max_response_output_tokens,
126
+ ?modalities: ::Array[OpenAI::Models::Realtime::RealtimeSession::modality],
127
+ ?model: OpenAI::Models::Realtime::RealtimeSession::model,
128
+ ?object: OpenAI::Models::Realtime::RealtimeSession::object,
129
+ ?output_audio_format: OpenAI::Models::Realtime::RealtimeSession::output_audio_format,
130
+ ?prompt: OpenAI::Responses::ResponsePrompt?,
131
+ ?speed: Float,
132
+ ?temperature: Float,
133
+ ?tool_choice: String,
134
+ ?tools: ::Array[OpenAI::Realtime::RealtimeSession::Tool],
135
+ ?tracing: OpenAI::Models::Realtime::RealtimeSession::tracing?,
136
+ ?turn_detection: OpenAI::Realtime::RealtimeSession::TurnDetection?,
137
+ ?voice: OpenAI::Models::Realtime::RealtimeSession::voice
138
+ ) -> void
139
+
140
+ def to_hash: -> {
141
+ id: String,
142
+ expires_at: Integer,
143
+ include: ::Array[OpenAI::Models::Realtime::RealtimeSession::include_]?,
144
+ input_audio_format: OpenAI::Models::Realtime::RealtimeSession::input_audio_format,
145
+ input_audio_noise_reduction: OpenAI::Realtime::RealtimeSession::InputAudioNoiseReduction,
146
+ input_audio_transcription: OpenAI::Realtime::RealtimeSession::InputAudioTranscription?,
147
+ instructions: String,
148
+ max_response_output_tokens: OpenAI::Models::Realtime::RealtimeSession::max_response_output_tokens,
149
+ modalities: ::Array[OpenAI::Models::Realtime::RealtimeSession::modality],
150
+ model: OpenAI::Models::Realtime::RealtimeSession::model,
151
+ object: OpenAI::Models::Realtime::RealtimeSession::object,
152
+ output_audio_format: OpenAI::Models::Realtime::RealtimeSession::output_audio_format,
153
+ prompt: OpenAI::Responses::ResponsePrompt?,
154
+ speed: Float,
155
+ temperature: Float,
156
+ tool_choice: String,
157
+ tools: ::Array[OpenAI::Realtime::RealtimeSession::Tool],
158
+ tracing: OpenAI::Models::Realtime::RealtimeSession::tracing?,
159
+ turn_detection: OpenAI::Realtime::RealtimeSession::TurnDetection?,
160
+ voice: OpenAI::Models::Realtime::RealtimeSession::voice
161
+ }
162
+
163
+ type include_ = :"item.input_audio_transcription.logprobs"
164
+
165
+ module Include
166
+ extend OpenAI::Internal::Type::Enum
167
+
168
+ ITEM_INPUT_AUDIO_TRANSCRIPTION_LOGPROBS: :"item.input_audio_transcription.logprobs"
169
+
170
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::include_]
171
+ end
172
+
173
+ type input_audio_format = :pcm16 | :g711_ulaw | :g711_alaw
174
+
175
+ module InputAudioFormat
176
+ extend OpenAI::Internal::Type::Enum
177
+
178
+ PCM16: :pcm16
179
+ G711_ULAW: :g711_ulaw
180
+ G711_ALAW: :g711_alaw
181
+
182
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::input_audio_format]
183
+ end
184
+
185
+ type input_audio_noise_reduction =
186
+ {
187
+ type: OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_
188
+ }
189
+
190
+ class InputAudioNoiseReduction < OpenAI::Internal::Type::BaseModel
191
+ attr_reader type: OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_?
192
+
193
+ def type=: (
194
+ OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_
195
+ ) -> OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_
196
+
197
+ def initialize: (
198
+ ?type: OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_
199
+ ) -> void
200
+
201
+ def to_hash: -> {
202
+ type: OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_
203
+ }
204
+
205
+ type type_ = :near_field | :far_field
206
+
207
+ module Type
208
+ extend OpenAI::Internal::Type::Enum
209
+
210
+ NEAR_FIELD: :near_field
211
+ FAR_FIELD: :far_field
212
+
213
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_]
214
+ end
215
+ end
216
+
217
+ type input_audio_transcription =
218
+ { language: String, model: String, prompt: String }
219
+
220
+ class InputAudioTranscription < OpenAI::Internal::Type::BaseModel
221
+ attr_reader language: String?
222
+
223
+ def language=: (String) -> String
224
+
225
+ attr_reader model: String?
226
+
227
+ def model=: (String) -> String
228
+
229
+ attr_reader prompt: String?
230
+
231
+ def prompt=: (String) -> String
232
+
233
+ def initialize: (
234
+ ?language: String,
235
+ ?model: String,
236
+ ?prompt: String
237
+ ) -> void
238
+
239
+ def to_hash: -> { language: String, model: String, prompt: String }
240
+ end
241
+
242
+ type max_response_output_tokens = Integer | :inf
243
+
244
+ module MaxResponseOutputTokens
245
+ extend OpenAI::Internal::Type::Union
246
+
247
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::max_response_output_tokens]
248
+ end
249
+
250
+ type modality = :text | :audio
251
+
252
+ module Modality
253
+ extend OpenAI::Internal::Type::Enum
254
+
255
+ TEXT: :text
256
+ AUDIO: :audio
257
+
258
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::modality]
259
+ end
260
+
261
+ type model =
262
+ :"gpt-4o-realtime-preview"
263
+ | :"gpt-4o-realtime-preview-2024-10-01"
264
+ | :"gpt-4o-realtime-preview-2024-12-17"
265
+ | :"gpt-4o-realtime-preview-2025-06-03"
266
+ | :"gpt-4o-mini-realtime-preview"
267
+ | :"gpt-4o-mini-realtime-preview-2024-12-17"
268
+
269
+ module Model
270
+ extend OpenAI::Internal::Type::Enum
271
+
272
+ GPT_4O_REALTIME_PREVIEW: :"gpt-4o-realtime-preview"
273
+ GPT_4O_REALTIME_PREVIEW_2024_10_01: :"gpt-4o-realtime-preview-2024-10-01"
274
+ GPT_4O_REALTIME_PREVIEW_2024_12_17: :"gpt-4o-realtime-preview-2024-12-17"
275
+ GPT_4O_REALTIME_PREVIEW_2025_06_03: :"gpt-4o-realtime-preview-2025-06-03"
276
+ GPT_4O_MINI_REALTIME_PREVIEW: :"gpt-4o-mini-realtime-preview"
277
+ GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17: :"gpt-4o-mini-realtime-preview-2024-12-17"
278
+
279
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::model]
280
+ end
281
+
282
+ type object = :"realtime.session"
283
+
284
+ module Object
285
+ extend OpenAI::Internal::Type::Enum
286
+
287
+ REALTIME_SESSION: :"realtime.session"
288
+
289
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::object]
290
+ end
291
+
292
+ type output_audio_format = :pcm16 | :g711_ulaw | :g711_alaw
293
+
294
+ module OutputAudioFormat
295
+ extend OpenAI::Internal::Type::Enum
296
+
297
+ PCM16: :pcm16
298
+ G711_ULAW: :g711_ulaw
299
+ G711_ALAW: :g711_alaw
300
+
301
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::output_audio_format]
302
+ end
303
+
304
+ type tool =
305
+ {
306
+ description: String,
307
+ name: String,
308
+ parameters: top,
309
+ type: OpenAI::Models::Realtime::RealtimeSession::Tool::type_
310
+ }
311
+
312
+ class Tool < OpenAI::Internal::Type::BaseModel
313
+ attr_reader description: String?
314
+
315
+ def description=: (String) -> String
316
+
317
+ attr_reader name: String?
318
+
319
+ def name=: (String) -> String
320
+
321
+ attr_reader parameters: top?
322
+
323
+ def parameters=: (top) -> top
324
+
325
+ attr_reader type: OpenAI::Models::Realtime::RealtimeSession::Tool::type_?
326
+
327
+ def type=: (
328
+ OpenAI::Models::Realtime::RealtimeSession::Tool::type_
329
+ ) -> OpenAI::Models::Realtime::RealtimeSession::Tool::type_
330
+
331
+ def initialize: (
332
+ ?description: String,
333
+ ?name: String,
334
+ ?parameters: top,
335
+ ?type: OpenAI::Models::Realtime::RealtimeSession::Tool::type_
336
+ ) -> void
337
+
338
+ def to_hash: -> {
339
+ description: String,
340
+ name: String,
341
+ parameters: top,
342
+ type: OpenAI::Models::Realtime::RealtimeSession::Tool::type_
343
+ }
344
+
345
+ type type_ = :function
346
+
347
+ module Type
348
+ extend OpenAI::Internal::Type::Enum
349
+
350
+ FUNCTION: :function
351
+
352
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::Tool::type_]
353
+ end
354
+ end
355
+
356
+ type tracing =
357
+ :auto
358
+ | OpenAI::Realtime::RealtimeSession::Tracing::TracingConfiguration
359
+
360
+ module Tracing
361
+ extend OpenAI::Internal::Type::Union
362
+
363
+ type tracing_configuration =
364
+ { group_id: String, metadata: top, workflow_name: String }
365
+
366
+ class TracingConfiguration < OpenAI::Internal::Type::BaseModel
367
+ attr_reader group_id: String?
368
+
369
+ def group_id=: (String) -> String
370
+
371
+ attr_reader metadata: top?
372
+
373
+ def metadata=: (top) -> top
374
+
375
+ attr_reader workflow_name: String?
376
+
377
+ def workflow_name=: (String) -> String
378
+
379
+ def initialize: (
380
+ ?group_id: String,
381
+ ?metadata: top,
382
+ ?workflow_name: String
383
+ ) -> void
384
+
385
+ def to_hash: -> {
386
+ group_id: String,
387
+ metadata: top,
388
+ workflow_name: String
389
+ }
390
+ end
391
+
392
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::tracing]
393
+ end
394
+
395
+ type turn_detection =
396
+ {
397
+ create_response: bool,
398
+ eagerness: OpenAI::Models::Realtime::RealtimeSession::TurnDetection::eagerness,
399
+ idle_timeout_ms: Integer?,
400
+ interrupt_response: bool,
401
+ prefix_padding_ms: Integer,
402
+ silence_duration_ms: Integer,
403
+ threshold: Float,
404
+ type: OpenAI::Models::Realtime::RealtimeSession::TurnDetection::type_
405
+ }
406
+
407
+ class TurnDetection < OpenAI::Internal::Type::BaseModel
408
+ attr_reader create_response: bool?
409
+
410
+ def create_response=: (bool) -> bool
411
+
412
+ attr_reader eagerness: OpenAI::Models::Realtime::RealtimeSession::TurnDetection::eagerness?
413
+
414
+ def eagerness=: (
415
+ OpenAI::Models::Realtime::RealtimeSession::TurnDetection::eagerness
416
+ ) -> OpenAI::Models::Realtime::RealtimeSession::TurnDetection::eagerness
417
+
418
+ attr_accessor idle_timeout_ms: Integer?
419
+
420
+ attr_reader interrupt_response: bool?
421
+
422
+ def interrupt_response=: (bool) -> bool
423
+
424
+ attr_reader prefix_padding_ms: Integer?
425
+
426
+ def prefix_padding_ms=: (Integer) -> Integer
427
+
428
+ attr_reader silence_duration_ms: Integer?
429
+
430
+ def silence_duration_ms=: (Integer) -> Integer
431
+
432
+ attr_reader threshold: Float?
433
+
434
+ def threshold=: (Float) -> Float
435
+
436
+ attr_reader type: OpenAI::Models::Realtime::RealtimeSession::TurnDetection::type_?
437
+
438
+ def type=: (
439
+ OpenAI::Models::Realtime::RealtimeSession::TurnDetection::type_
440
+ ) -> OpenAI::Models::Realtime::RealtimeSession::TurnDetection::type_
441
+
442
+ def initialize: (
443
+ ?create_response: bool,
444
+ ?eagerness: OpenAI::Models::Realtime::RealtimeSession::TurnDetection::eagerness,
445
+ ?idle_timeout_ms: Integer?,
446
+ ?interrupt_response: bool,
447
+ ?prefix_padding_ms: Integer,
448
+ ?silence_duration_ms: Integer,
449
+ ?threshold: Float,
450
+ ?type: OpenAI::Models::Realtime::RealtimeSession::TurnDetection::type_
451
+ ) -> void
452
+
453
+ def to_hash: -> {
454
+ create_response: bool,
455
+ eagerness: OpenAI::Models::Realtime::RealtimeSession::TurnDetection::eagerness,
456
+ idle_timeout_ms: Integer?,
457
+ interrupt_response: bool,
458
+ prefix_padding_ms: Integer,
459
+ silence_duration_ms: Integer,
460
+ threshold: Float,
461
+ type: OpenAI::Models::Realtime::RealtimeSession::TurnDetection::type_
462
+ }
463
+
464
+ type eagerness = :low | :medium | :high | :auto
465
+
466
+ module Eagerness
467
+ extend OpenAI::Internal::Type::Enum
468
+
469
+ LOW: :low
470
+ MEDIUM: :medium
471
+ HIGH: :high
472
+ AUTO: :auto
473
+
474
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::TurnDetection::eagerness]
475
+ end
476
+
477
+ type type_ = :server_vad | :semantic_vad
478
+
479
+ module Type
480
+ extend OpenAI::Internal::Type::Enum
481
+
482
+ SERVER_VAD: :server_vad
483
+ SEMANTIC_VAD: :semantic_vad
484
+
485
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::TurnDetection::type_]
486
+ end
487
+ end
488
+
489
+ type voice =
490
+ String
491
+ | :alloy
492
+ | :ash
493
+ | :ballad
494
+ | :coral
495
+ | :echo
496
+ | :sage
497
+ | :shimmer
498
+ | :verse
499
+ | :marin
500
+ | :cedar
501
+
502
+ module Voice
503
+ extend OpenAI::Internal::Type::Union
504
+
505
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::voice]
506
+
507
+ ALLOY: :alloy
508
+ ASH: :ash
509
+ BALLAD: :ballad
510
+ CORAL: :coral
511
+ ECHO: :echo
512
+ SAGE: :sage
513
+ SHIMMER: :shimmer
514
+ VERSE: :verse
515
+ MARIN: :marin
516
+ CEDAR: :cedar
517
+ end
518
+ end
519
+ end
520
+ end
521
+ end
@@ -0,0 +1,178 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_session_create_request =
5
+ {
6
+ model: OpenAI::Models::Realtime::RealtimeSessionCreateRequest::model,
7
+ type: :realtime,
8
+ audio: OpenAI::Realtime::RealtimeAudioConfig,
9
+ client_secret: OpenAI::Realtime::RealtimeClientSecretConfig,
10
+ include: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::include_],
11
+ instructions: String,
12
+ max_output_tokens: OpenAI::Models::Realtime::RealtimeSessionCreateRequest::max_output_tokens,
13
+ output_modalities: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::output_modality],
14
+ prompt: OpenAI::Responses::ResponsePrompt?,
15
+ temperature: Float,
16
+ tool_choice: OpenAI::Models::Realtime::realtime_tool_choice_config,
17
+ tools: OpenAI::Models::Realtime::realtime_tools_config,
18
+ tracing: OpenAI::Models::Realtime::realtime_tracing_config?,
19
+ truncation: OpenAI::Models::Realtime::realtime_truncation
20
+ }
21
+
22
+ class RealtimeSessionCreateRequest < OpenAI::Internal::Type::BaseModel
23
+ attr_accessor model: OpenAI::Models::Realtime::RealtimeSessionCreateRequest::model
24
+
25
+ attr_accessor type: :realtime
26
+
27
+ attr_reader audio: OpenAI::Realtime::RealtimeAudioConfig?
28
+
29
+ def audio=: (
30
+ OpenAI::Realtime::RealtimeAudioConfig
31
+ ) -> OpenAI::Realtime::RealtimeAudioConfig
32
+
33
+ attr_reader client_secret: OpenAI::Realtime::RealtimeClientSecretConfig?
34
+
35
+ def client_secret=: (
36
+ OpenAI::Realtime::RealtimeClientSecretConfig
37
+ ) -> OpenAI::Realtime::RealtimeClientSecretConfig
38
+
39
+ attr_reader include: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::include_]?
40
+
41
+ def include=: (
42
+ ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::include_]
43
+ ) -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::include_]
44
+
45
+ attr_reader instructions: String?
46
+
47
+ def instructions=: (String) -> String
48
+
49
+ attr_reader max_output_tokens: OpenAI::Models::Realtime::RealtimeSessionCreateRequest::max_output_tokens?
50
+
51
+ def max_output_tokens=: (
52
+ OpenAI::Models::Realtime::RealtimeSessionCreateRequest::max_output_tokens
53
+ ) -> OpenAI::Models::Realtime::RealtimeSessionCreateRequest::max_output_tokens
54
+
55
+ attr_reader output_modalities: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::output_modality]?
56
+
57
+ def output_modalities=: (
58
+ ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::output_modality]
59
+ ) -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::output_modality]
60
+
61
+ attr_accessor prompt: OpenAI::Responses::ResponsePrompt?
62
+
63
+ attr_reader temperature: Float?
64
+
65
+ def temperature=: (Float) -> Float
66
+
67
+ attr_reader tool_choice: OpenAI::Models::Realtime::realtime_tool_choice_config?
68
+
69
+ def tool_choice=: (
70
+ OpenAI::Models::Realtime::realtime_tool_choice_config
71
+ ) -> OpenAI::Models::Realtime::realtime_tool_choice_config
72
+
73
+ attr_reader tools: OpenAI::Models::Realtime::realtime_tools_config?
74
+
75
+ def tools=: (
76
+ OpenAI::Models::Realtime::realtime_tools_config
77
+ ) -> OpenAI::Models::Realtime::realtime_tools_config
78
+
79
+ attr_accessor tracing: OpenAI::Models::Realtime::realtime_tracing_config?
80
+
81
+ attr_reader truncation: OpenAI::Models::Realtime::realtime_truncation?
82
+
83
+ def truncation=: (
84
+ OpenAI::Models::Realtime::realtime_truncation
85
+ ) -> OpenAI::Models::Realtime::realtime_truncation
86
+
87
+ def initialize: (
88
+ model: OpenAI::Models::Realtime::RealtimeSessionCreateRequest::model,
89
+ ?audio: OpenAI::Realtime::RealtimeAudioConfig,
90
+ ?client_secret: OpenAI::Realtime::RealtimeClientSecretConfig,
91
+ ?include: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::include_],
92
+ ?instructions: String,
93
+ ?max_output_tokens: OpenAI::Models::Realtime::RealtimeSessionCreateRequest::max_output_tokens,
94
+ ?output_modalities: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::output_modality],
95
+ ?prompt: OpenAI::Responses::ResponsePrompt?,
96
+ ?temperature: Float,
97
+ ?tool_choice: OpenAI::Models::Realtime::realtime_tool_choice_config,
98
+ ?tools: OpenAI::Models::Realtime::realtime_tools_config,
99
+ ?tracing: OpenAI::Models::Realtime::realtime_tracing_config?,
100
+ ?truncation: OpenAI::Models::Realtime::realtime_truncation,
101
+ ?type: :realtime
102
+ ) -> void
103
+
104
+ def to_hash: -> {
105
+ model: OpenAI::Models::Realtime::RealtimeSessionCreateRequest::model,
106
+ type: :realtime,
107
+ audio: OpenAI::Realtime::RealtimeAudioConfig,
108
+ client_secret: OpenAI::Realtime::RealtimeClientSecretConfig,
109
+ include: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::include_],
110
+ instructions: String,
111
+ max_output_tokens: OpenAI::Models::Realtime::RealtimeSessionCreateRequest::max_output_tokens,
112
+ output_modalities: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::output_modality],
113
+ prompt: OpenAI::Responses::ResponsePrompt?,
114
+ temperature: Float,
115
+ tool_choice: OpenAI::Models::Realtime::realtime_tool_choice_config,
116
+ tools: OpenAI::Models::Realtime::realtime_tools_config,
117
+ tracing: OpenAI::Models::Realtime::realtime_tracing_config?,
118
+ truncation: OpenAI::Models::Realtime::realtime_truncation
119
+ }
120
+
121
+ type model =
122
+ String
123
+ | :"gpt-4o-realtime"
124
+ | :"gpt-4o-mini-realtime"
125
+ | :"gpt-4o-realtime-preview"
126
+ | :"gpt-4o-realtime-preview-2024-10-01"
127
+ | :"gpt-4o-realtime-preview-2024-12-17"
128
+ | :"gpt-4o-realtime-preview-2025-06-03"
129
+ | :"gpt-4o-mini-realtime-preview"
130
+ | :"gpt-4o-mini-realtime-preview-2024-12-17"
131
+
132
+ module Model
133
+ extend OpenAI::Internal::Type::Union
134
+
135
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::model]
136
+
137
+ GPT_4O_REALTIME: :"gpt-4o-realtime"
138
+ GPT_4O_MINI_REALTIME: :"gpt-4o-mini-realtime"
139
+ GPT_4O_REALTIME_PREVIEW: :"gpt-4o-realtime-preview"
140
+ GPT_4O_REALTIME_PREVIEW_2024_10_01: :"gpt-4o-realtime-preview-2024-10-01"
141
+ GPT_4O_REALTIME_PREVIEW_2024_12_17: :"gpt-4o-realtime-preview-2024-12-17"
142
+ GPT_4O_REALTIME_PREVIEW_2025_06_03: :"gpt-4o-realtime-preview-2025-06-03"
143
+ GPT_4O_MINI_REALTIME_PREVIEW: :"gpt-4o-mini-realtime-preview"
144
+ GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17: :"gpt-4o-mini-realtime-preview-2024-12-17"
145
+ end
146
+
147
+ type include_ = :"item.input_audio_transcription.logprobs"
148
+
149
+ module Include
150
+ extend OpenAI::Internal::Type::Enum
151
+
152
+ ITEM_INPUT_AUDIO_TRANSCRIPTION_LOGPROBS: :"item.input_audio_transcription.logprobs"
153
+
154
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::include_]
155
+ end
156
+
157
+ type max_output_tokens = Integer | :inf
158
+
159
+ module MaxOutputTokens
160
+ extend OpenAI::Internal::Type::Union
161
+
162
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::max_output_tokens]
163
+ end
164
+
165
+ type output_modality = :text | :audio
166
+
167
+ module OutputModality
168
+ extend OpenAI::Internal::Type::Enum
169
+
170
+ TEXT: :text
171
+ AUDIO: :audio
172
+
173
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateRequest::output_modality]
174
+ end
175
+ end
176
+ end
177
+ end
178
+ end