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,280 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_tools_config_union =
5
+ OpenAI::Realtime::RealtimeToolsConfigUnion::Function
6
+ | OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp
7
+
8
+ module RealtimeToolsConfigUnion
9
+ extend OpenAI::Internal::Type::Union
10
+
11
+ type function =
12
+ {
13
+ description: String,
14
+ name: String,
15
+ parameters: top,
16
+ type: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Function::type_
17
+ }
18
+
19
+ class Function < OpenAI::Internal::Type::BaseModel
20
+ attr_reader description: String?
21
+
22
+ def description=: (String) -> String
23
+
24
+ attr_reader name: String?
25
+
26
+ def name=: (String) -> String
27
+
28
+ attr_reader parameters: top?
29
+
30
+ def parameters=: (top) -> top
31
+
32
+ attr_reader type: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Function::type_?
33
+
34
+ def type=: (
35
+ OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Function::type_
36
+ ) -> OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Function::type_
37
+
38
+ def initialize: (
39
+ ?description: String,
40
+ ?name: String,
41
+ ?parameters: top,
42
+ ?type: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Function::type_
43
+ ) -> void
44
+
45
+ def to_hash: -> {
46
+ description: String,
47
+ name: String,
48
+ parameters: top,
49
+ type: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Function::type_
50
+ }
51
+
52
+ type type_ = :function
53
+
54
+ module Type
55
+ extend OpenAI::Internal::Type::Enum
56
+
57
+ FUNCTION: :function
58
+
59
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Function::type_]
60
+ end
61
+ end
62
+
63
+ type mcp =
64
+ {
65
+ server_label: String,
66
+ type: :mcp,
67
+ allowed_tools: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::allowed_tools?,
68
+ authorization: String,
69
+ connector_id: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::connector_id,
70
+ headers: ::Hash[Symbol, String]?,
71
+ require_approval: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::require_approval?,
72
+ server_description: String,
73
+ server_url: String
74
+ }
75
+
76
+ class Mcp < OpenAI::Internal::Type::BaseModel
77
+ attr_accessor server_label: String
78
+
79
+ attr_accessor type: :mcp
80
+
81
+ attr_accessor allowed_tools: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::allowed_tools?
82
+
83
+ attr_reader authorization: String?
84
+
85
+ def authorization=: (String) -> String
86
+
87
+ attr_reader connector_id: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::connector_id?
88
+
89
+ def connector_id=: (
90
+ OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::connector_id
91
+ ) -> OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::connector_id
92
+
93
+ attr_accessor headers: ::Hash[Symbol, String]?
94
+
95
+ attr_accessor require_approval: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::require_approval?
96
+
97
+ attr_reader server_description: String?
98
+
99
+ def server_description=: (String) -> String
100
+
101
+ attr_reader server_url: String?
102
+
103
+ def server_url=: (String) -> String
104
+
105
+ def initialize: (
106
+ server_label: String,
107
+ ?allowed_tools: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::allowed_tools?,
108
+ ?authorization: String,
109
+ ?connector_id: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::connector_id,
110
+ ?headers: ::Hash[Symbol, String]?,
111
+ ?require_approval: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::require_approval?,
112
+ ?server_description: String,
113
+ ?server_url: String,
114
+ ?type: :mcp
115
+ ) -> void
116
+
117
+ def to_hash: -> {
118
+ server_label: String,
119
+ type: :mcp,
120
+ allowed_tools: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::allowed_tools?,
121
+ authorization: String,
122
+ connector_id: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::connector_id,
123
+ headers: ::Hash[Symbol, String]?,
124
+ require_approval: OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::require_approval?,
125
+ server_description: String,
126
+ server_url: String
127
+ }
128
+
129
+ type allowed_tools =
130
+ ::Array[String]
131
+ | OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::AllowedTools::McpToolFilter
132
+
133
+ module AllowedTools
134
+ extend OpenAI::Internal::Type::Union
135
+
136
+ type mcp_tool_filter =
137
+ { read_only: bool, tool_names: ::Array[String] }
138
+
139
+ class McpToolFilter < OpenAI::Internal::Type::BaseModel
140
+ attr_reader read_only: bool?
141
+
142
+ def read_only=: (bool) -> bool
143
+
144
+ attr_reader tool_names: ::Array[String]?
145
+
146
+ def tool_names=: (::Array[String]) -> ::Array[String]
147
+
148
+ def initialize: (
149
+ ?read_only: bool,
150
+ ?tool_names: ::Array[String]
151
+ ) -> void
152
+
153
+ def to_hash: -> { read_only: bool, tool_names: ::Array[String] }
154
+ end
155
+
156
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::allowed_tools]
157
+
158
+ StringArray: OpenAI::Internal::Type::Converter
159
+ end
160
+
161
+ type connector_id =
162
+ :connector_dropbox
163
+ | :connector_gmail
164
+ | :connector_googlecalendar
165
+ | :connector_googledrive
166
+ | :connector_microsoftteams
167
+ | :connector_outlookcalendar
168
+ | :connector_outlookemail
169
+ | :connector_sharepoint
170
+
171
+ module ConnectorID
172
+ extend OpenAI::Internal::Type::Enum
173
+
174
+ CONNECTOR_DROPBOX: :connector_dropbox
175
+ CONNECTOR_GMAIL: :connector_gmail
176
+ CONNECTOR_GOOGLECALENDAR: :connector_googlecalendar
177
+ CONNECTOR_GOOGLEDRIVE: :connector_googledrive
178
+ CONNECTOR_MICROSOFTTEAMS: :connector_microsoftteams
179
+ CONNECTOR_OUTLOOKCALENDAR: :connector_outlookcalendar
180
+ CONNECTOR_OUTLOOKEMAIL: :connector_outlookemail
181
+ CONNECTOR_SHAREPOINT: :connector_sharepoint
182
+
183
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::connector_id]
184
+ end
185
+
186
+ type require_approval =
187
+ OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter
188
+ | OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::mcp_tool_approval_setting
189
+
190
+ module RequireApproval
191
+ extend OpenAI::Internal::Type::Union
192
+
193
+ type mcp_tool_approval_filter =
194
+ {
195
+ always: OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter::Always,
196
+ never: OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter::Never
197
+ }
198
+
199
+ class McpToolApprovalFilter < OpenAI::Internal::Type::BaseModel
200
+ attr_reader always: OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter::Always?
201
+
202
+ def always=: (
203
+ OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter::Always
204
+ ) -> OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter::Always
205
+
206
+ attr_reader never: OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter::Never?
207
+
208
+ def never=: (
209
+ OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter::Never
210
+ ) -> OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter::Never
211
+
212
+ def initialize: (
213
+ ?always: OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter::Always,
214
+ ?never: OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter::Never
215
+ ) -> void
216
+
217
+ def to_hash: -> {
218
+ always: OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter::Always,
219
+ never: OpenAI::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::McpToolApprovalFilter::Never
220
+ }
221
+
222
+ type always = { read_only: bool, tool_names: ::Array[String] }
223
+
224
+ class Always < OpenAI::Internal::Type::BaseModel
225
+ attr_reader read_only: bool?
226
+
227
+ def read_only=: (bool) -> bool
228
+
229
+ attr_reader tool_names: ::Array[String]?
230
+
231
+ def tool_names=: (::Array[String]) -> ::Array[String]
232
+
233
+ def initialize: (
234
+ ?read_only: bool,
235
+ ?tool_names: ::Array[String]
236
+ ) -> void
237
+
238
+ def to_hash: -> { read_only: bool, tool_names: ::Array[String] }
239
+ end
240
+
241
+ type never = { read_only: bool, tool_names: ::Array[String] }
242
+
243
+ class Never < OpenAI::Internal::Type::BaseModel
244
+ attr_reader read_only: bool?
245
+
246
+ def read_only=: (bool) -> bool
247
+
248
+ attr_reader tool_names: ::Array[String]?
249
+
250
+ def tool_names=: (::Array[String]) -> ::Array[String]
251
+
252
+ def initialize: (
253
+ ?read_only: bool,
254
+ ?tool_names: ::Array[String]
255
+ ) -> void
256
+
257
+ def to_hash: -> { read_only: bool, tool_names: ::Array[String] }
258
+ end
259
+ end
260
+
261
+ type mcp_tool_approval_setting = :always | :never
262
+
263
+ module McpToolApprovalSetting
264
+ extend OpenAI::Internal::Type::Enum
265
+
266
+ ALWAYS: :always
267
+ NEVER: :never
268
+
269
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::RequireApproval::mcp_tool_approval_setting]
270
+ end
271
+
272
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp::require_approval]
273
+ end
274
+ end
275
+
276
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::realtime_tools_config_union]
277
+ end
278
+ end
279
+ end
280
+ end
@@ -0,0 +1,43 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_tracing_config =
5
+ :auto | OpenAI::Realtime::RealtimeTracingConfig::TracingConfiguration
6
+
7
+ module RealtimeTracingConfig
8
+ extend OpenAI::Internal::Type::Union
9
+
10
+ type tracing_configuration =
11
+ { group_id: String, metadata: top, workflow_name: String }
12
+
13
+ class TracingConfiguration < OpenAI::Internal::Type::BaseModel
14
+ attr_reader group_id: String?
15
+
16
+ def group_id=: (String) -> String
17
+
18
+ attr_reader metadata: top?
19
+
20
+ def metadata=: (top) -> top
21
+
22
+ attr_reader workflow_name: String?
23
+
24
+ def workflow_name=: (String) -> String
25
+
26
+ def initialize: (
27
+ ?group_id: String,
28
+ ?metadata: top,
29
+ ?workflow_name: String
30
+ ) -> void
31
+
32
+ def to_hash: -> {
33
+ group_id: String,
34
+ metadata: top,
35
+ workflow_name: String
36
+ }
37
+ end
38
+
39
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::realtime_tracing_config]
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,242 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_transcription_session_create_request =
5
+ {
6
+ model: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::model,
7
+ type: :transcription,
8
+ include: ::Array[OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::include_],
9
+ input_audio_format: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::input_audio_format,
10
+ input_audio_noise_reduction: OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction,
11
+ input_audio_transcription: OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription,
12
+ turn_detection: OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection
13
+ }
14
+
15
+ class RealtimeTranscriptionSessionCreateRequest < OpenAI::Internal::Type::BaseModel
16
+ attr_accessor model: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::model
17
+
18
+ attr_accessor type: :transcription
19
+
20
+ attr_reader include: ::Array[OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::include_]?
21
+
22
+ def include=: (
23
+ ::Array[OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::include_]
24
+ ) -> ::Array[OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::include_]
25
+
26
+ attr_reader input_audio_format: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::input_audio_format?
27
+
28
+ def input_audio_format=: (
29
+ OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::input_audio_format
30
+ ) -> OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::input_audio_format
31
+
32
+ attr_reader input_audio_noise_reduction: OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction?
33
+
34
+ def input_audio_noise_reduction=: (
35
+ OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction
36
+ ) -> OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction
37
+
38
+ attr_reader input_audio_transcription: OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription?
39
+
40
+ def input_audio_transcription=: (
41
+ OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription
42
+ ) -> OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription
43
+
44
+ attr_reader turn_detection: OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection?
45
+
46
+ def turn_detection=: (
47
+ OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection
48
+ ) -> OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection
49
+
50
+ def initialize: (
51
+ model: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::model,
52
+ ?include: ::Array[OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::include_],
53
+ ?input_audio_format: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::input_audio_format,
54
+ ?input_audio_noise_reduction: OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction,
55
+ ?input_audio_transcription: OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription,
56
+ ?turn_detection: OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection,
57
+ ?type: :transcription
58
+ ) -> void
59
+
60
+ def to_hash: -> {
61
+ model: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::model,
62
+ type: :transcription,
63
+ include: ::Array[OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::include_],
64
+ input_audio_format: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::input_audio_format,
65
+ input_audio_noise_reduction: OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction,
66
+ input_audio_transcription: OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription,
67
+ turn_detection: OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection
68
+ }
69
+
70
+ type model =
71
+ String
72
+ | :"whisper-1"
73
+ | :"gpt-4o-transcribe"
74
+ | :"gpt-4o-mini-transcribe"
75
+
76
+ module Model
77
+ extend OpenAI::Internal::Type::Union
78
+
79
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::model]
80
+
81
+ WHISPER_1: :"whisper-1"
82
+ GPT_4O_TRANSCRIBE: :"gpt-4o-transcribe"
83
+ GPT_4O_MINI_TRANSCRIBE: :"gpt-4o-mini-transcribe"
84
+ end
85
+
86
+ type include_ = :"item.input_audio_transcription.logprobs"
87
+
88
+ module Include
89
+ extend OpenAI::Internal::Type::Enum
90
+
91
+ ITEM_INPUT_AUDIO_TRANSCRIPTION_LOGPROBS: :"item.input_audio_transcription.logprobs"
92
+
93
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::include_]
94
+ end
95
+
96
+ type input_audio_format = :pcm16 | :g711_ulaw | :g711_alaw
97
+
98
+ module InputAudioFormat
99
+ extend OpenAI::Internal::Type::Enum
100
+
101
+ PCM16: :pcm16
102
+ G711_ULAW: :g711_ulaw
103
+ G711_ALAW: :g711_alaw
104
+
105
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::input_audio_format]
106
+ end
107
+
108
+ type input_audio_noise_reduction =
109
+ {
110
+ type: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction::type_
111
+ }
112
+
113
+ class InputAudioNoiseReduction < OpenAI::Internal::Type::BaseModel
114
+ attr_reader type: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction::type_?
115
+
116
+ def type=: (
117
+ OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction::type_
118
+ ) -> OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction::type_
119
+
120
+ def initialize: (
121
+ ?type: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction::type_
122
+ ) -> void
123
+
124
+ def to_hash: -> {
125
+ type: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction::type_
126
+ }
127
+
128
+ type type_ = :near_field | :far_field
129
+
130
+ module Type
131
+ extend OpenAI::Internal::Type::Enum
132
+
133
+ NEAR_FIELD: :near_field
134
+ FAR_FIELD: :far_field
135
+
136
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioNoiseReduction::type_]
137
+ end
138
+ end
139
+
140
+ type input_audio_transcription =
141
+ {
142
+ language: String,
143
+ model: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription::model,
144
+ prompt: String
145
+ }
146
+
147
+ class InputAudioTranscription < OpenAI::Internal::Type::BaseModel
148
+ attr_reader language: String?
149
+
150
+ def language=: (String) -> String
151
+
152
+ attr_reader model: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription::model?
153
+
154
+ def model=: (
155
+ OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription::model
156
+ ) -> OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription::model
157
+
158
+ attr_reader prompt: String?
159
+
160
+ def prompt=: (String) -> String
161
+
162
+ def initialize: (
163
+ ?language: String,
164
+ ?model: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription::model,
165
+ ?prompt: String
166
+ ) -> void
167
+
168
+ def to_hash: -> {
169
+ language: String,
170
+ model: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription::model,
171
+ prompt: String
172
+ }
173
+
174
+ type model =
175
+ :"gpt-4o-transcribe" | :"gpt-4o-mini-transcribe" | :"whisper-1"
176
+
177
+ module Model
178
+ extend OpenAI::Internal::Type::Enum
179
+
180
+ GPT_4O_TRANSCRIBE: :"gpt-4o-transcribe"
181
+ GPT_4O_MINI_TRANSCRIBE: :"gpt-4o-mini-transcribe"
182
+ WHISPER_1: :"whisper-1"
183
+
184
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::InputAudioTranscription::model]
185
+ end
186
+ end
187
+
188
+ type turn_detection =
189
+ {
190
+ prefix_padding_ms: Integer,
191
+ silence_duration_ms: Integer,
192
+ threshold: Float,
193
+ type: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection::type_
194
+ }
195
+
196
+ class TurnDetection < OpenAI::Internal::Type::BaseModel
197
+ attr_reader prefix_padding_ms: Integer?
198
+
199
+ def prefix_padding_ms=: (Integer) -> Integer
200
+
201
+ attr_reader silence_duration_ms: Integer?
202
+
203
+ def silence_duration_ms=: (Integer) -> Integer
204
+
205
+ attr_reader threshold: Float?
206
+
207
+ def threshold=: (Float) -> Float
208
+
209
+ attr_reader type: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection::type_?
210
+
211
+ def type=: (
212
+ OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection::type_
213
+ ) -> OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection::type_
214
+
215
+ def initialize: (
216
+ ?prefix_padding_ms: Integer,
217
+ ?silence_duration_ms: Integer,
218
+ ?threshold: Float,
219
+ ?type: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection::type_
220
+ ) -> void
221
+
222
+ def to_hash: -> {
223
+ prefix_padding_ms: Integer,
224
+ silence_duration_ms: Integer,
225
+ threshold: Float,
226
+ type: OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection::type_
227
+ }
228
+
229
+ type type_ = :server_vad
230
+
231
+ module Type
232
+ extend OpenAI::Internal::Type::Enum
233
+
234
+ SERVER_VAD: :server_vad
235
+
236
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest::TurnDetection::type_]
237
+ end
238
+ end
239
+ end
240
+ end
241
+ end
242
+ end
@@ -0,0 +1,53 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_truncation =
5
+ OpenAI::Models::Realtime::RealtimeTruncation::realtime_truncation_strategy
6
+ | OpenAI::Realtime::RealtimeTruncation::RetentionRatioTruncation
7
+
8
+ module RealtimeTruncation
9
+ extend OpenAI::Internal::Type::Union
10
+
11
+ type realtime_truncation_strategy = :auto | :disabled
12
+
13
+ module RealtimeTruncationStrategy
14
+ extend OpenAI::Internal::Type::Enum
15
+
16
+ AUTO: :auto
17
+ DISABLED: :disabled
18
+
19
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeTruncation::realtime_truncation_strategy]
20
+ end
21
+
22
+ type retention_ratio_truncation =
23
+ {
24
+ retention_ratio: Float,
25
+ type: :retention_ratio,
26
+ post_instructions_token_limit: Integer?
27
+ }
28
+
29
+ class RetentionRatioTruncation < OpenAI::Internal::Type::BaseModel
30
+ attr_accessor retention_ratio: Float
31
+
32
+ attr_accessor type: :retention_ratio
33
+
34
+ attr_accessor post_instructions_token_limit: Integer?
35
+
36
+ def initialize: (
37
+ retention_ratio: Float,
38
+ ?post_instructions_token_limit: Integer?,
39
+ ?type: :retention_ratio
40
+ ) -> void
41
+
42
+ def to_hash: -> {
43
+ retention_ratio: Float,
44
+ type: :retention_ratio,
45
+ post_instructions_token_limit: Integer?
46
+ }
47
+ end
48
+
49
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::realtime_truncation]
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,52 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type response_audio_delta_event =
5
+ {
6
+ content_index: Integer,
7
+ delta: String,
8
+ event_id: String,
9
+ item_id: String,
10
+ output_index: Integer,
11
+ response_id: String,
12
+ type: :"response.output_audio.delta"
13
+ }
14
+
15
+ class ResponseAudioDeltaEvent < OpenAI::Internal::Type::BaseModel
16
+ attr_accessor content_index: Integer
17
+
18
+ attr_accessor delta: String
19
+
20
+ attr_accessor event_id: String
21
+
22
+ attr_accessor item_id: String
23
+
24
+ attr_accessor output_index: Integer
25
+
26
+ attr_accessor response_id: String
27
+
28
+ attr_accessor type: :"response.output_audio.delta"
29
+
30
+ def initialize: (
31
+ content_index: Integer,
32
+ delta: String,
33
+ event_id: String,
34
+ item_id: String,
35
+ output_index: Integer,
36
+ response_id: String,
37
+ ?type: :"response.output_audio.delta"
38
+ ) -> void
39
+
40
+ def to_hash: -> {
41
+ content_index: Integer,
42
+ delta: String,
43
+ event_id: String,
44
+ item_id: String,
45
+ output_index: Integer,
46
+ response_id: String,
47
+ type: :"response.output_audio.delta"
48
+ }
49
+ end
50
+ end
51
+ end
52
+ end