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,676 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ClientSecretCreateResponse < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Models::Realtime::ClientSecretCreateResponse,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Expiration timestamp for the client secret, in seconds since epoch.
16
+ sig { returns(Integer) }
17
+ attr_accessor :expires_at
18
+
19
+ # The session configuration for either a realtime or transcription session.
20
+ sig do
21
+ returns(
22
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::Variants
23
+ )
24
+ end
25
+ attr_accessor :session
26
+
27
+ # The generated client secret value.
28
+ sig { returns(String) }
29
+ attr_accessor :value
30
+
31
+ # Response from creating a session and client secret for the Realtime API.
32
+ sig do
33
+ params(
34
+ expires_at: Integer,
35
+ session:
36
+ T.any(
37
+ OpenAI::Realtime::RealtimeSessionCreateResponse::OrHash,
38
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::OrHash
39
+ ),
40
+ value: String
41
+ ).returns(T.attached_class)
42
+ end
43
+ def self.new(
44
+ # Expiration timestamp for the client secret, in seconds since epoch.
45
+ expires_at:,
46
+ # The session configuration for either a realtime or transcription session.
47
+ session:,
48
+ # The generated client secret value.
49
+ value:
50
+ )
51
+ end
52
+
53
+ sig do
54
+ override.returns(
55
+ {
56
+ expires_at: Integer,
57
+ session:
58
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::Variants,
59
+ value: String
60
+ }
61
+ )
62
+ end
63
+ def to_hash
64
+ end
65
+
66
+ # The session configuration for either a realtime or transcription session.
67
+ module Session
68
+ extend OpenAI::Internal::Type::Union
69
+
70
+ Variants =
71
+ T.type_alias do
72
+ T.any(
73
+ OpenAI::Realtime::RealtimeSessionCreateResponse,
74
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse
75
+ )
76
+ end
77
+
78
+ class RealtimeTranscriptionSessionCreateResponse < OpenAI::Internal::Type::BaseModel
79
+ OrHash =
80
+ T.type_alias do
81
+ T.any(
82
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse,
83
+ OpenAI::Internal::AnyHash
84
+ )
85
+ end
86
+
87
+ # Unique identifier for the session that looks like `sess_1234567890abcdef`.
88
+ sig { returns(T.nilable(String)) }
89
+ attr_reader :id
90
+
91
+ sig { params(id: String).void }
92
+ attr_writer :id
93
+
94
+ # Configuration for input audio for the session.
95
+ sig do
96
+ returns(
97
+ T.nilable(
98
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio
99
+ )
100
+ )
101
+ end
102
+ attr_reader :audio
103
+
104
+ sig do
105
+ params(
106
+ audio:
107
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::OrHash
108
+ ).void
109
+ end
110
+ attr_writer :audio
111
+
112
+ # Expiration timestamp for the session, in seconds since epoch.
113
+ sig { returns(T.nilable(Integer)) }
114
+ attr_reader :expires_at
115
+
116
+ sig { params(expires_at: Integer).void }
117
+ attr_writer :expires_at
118
+
119
+ # Additional fields to include in server outputs.
120
+ #
121
+ # - `item.input_audio_transcription.logprobs`: Include logprobs for input audio
122
+ # transcription.
123
+ sig do
124
+ returns(
125
+ T.nilable(
126
+ T::Array[
127
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include::TaggedSymbol
128
+ ]
129
+ )
130
+ )
131
+ end
132
+ attr_reader :include
133
+
134
+ sig do
135
+ params(
136
+ include:
137
+ T::Array[
138
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include::OrSymbol
139
+ ]
140
+ ).void
141
+ end
142
+ attr_writer :include
143
+
144
+ # The object type. Always `realtime.transcription_session`.
145
+ sig { returns(T.nilable(String)) }
146
+ attr_reader :object
147
+
148
+ sig { params(object: String).void }
149
+ attr_writer :object
150
+
151
+ # A Realtime transcription session configuration object.
152
+ sig do
153
+ params(
154
+ id: String,
155
+ audio:
156
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::OrHash,
157
+ expires_at: Integer,
158
+ include:
159
+ T::Array[
160
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include::OrSymbol
161
+ ],
162
+ object: String
163
+ ).returns(T.attached_class)
164
+ end
165
+ def self.new(
166
+ # Unique identifier for the session that looks like `sess_1234567890abcdef`.
167
+ id: nil,
168
+ # Configuration for input audio for the session.
169
+ audio: nil,
170
+ # Expiration timestamp for the session, in seconds since epoch.
171
+ expires_at: nil,
172
+ # Additional fields to include in server outputs.
173
+ #
174
+ # - `item.input_audio_transcription.logprobs`: Include logprobs for input audio
175
+ # transcription.
176
+ include: nil,
177
+ # The object type. Always `realtime.transcription_session`.
178
+ object: nil
179
+ )
180
+ end
181
+
182
+ sig do
183
+ override.returns(
184
+ {
185
+ id: String,
186
+ audio:
187
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio,
188
+ expires_at: Integer,
189
+ include:
190
+ T::Array[
191
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include::TaggedSymbol
192
+ ],
193
+ object: String
194
+ }
195
+ )
196
+ end
197
+ def to_hash
198
+ end
199
+
200
+ class Audio < OpenAI::Internal::Type::BaseModel
201
+ OrHash =
202
+ T.type_alias do
203
+ T.any(
204
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio,
205
+ OpenAI::Internal::AnyHash
206
+ )
207
+ end
208
+
209
+ sig do
210
+ returns(
211
+ T.nilable(
212
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input
213
+ )
214
+ )
215
+ end
216
+ attr_reader :input
217
+
218
+ sig do
219
+ params(
220
+ input:
221
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::OrHash
222
+ ).void
223
+ end
224
+ attr_writer :input
225
+
226
+ # Configuration for input audio for the session.
227
+ sig do
228
+ params(
229
+ input:
230
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::OrHash
231
+ ).returns(T.attached_class)
232
+ end
233
+ def self.new(input: nil)
234
+ end
235
+
236
+ sig do
237
+ override.returns(
238
+ {
239
+ input:
240
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input
241
+ }
242
+ )
243
+ end
244
+ def to_hash
245
+ end
246
+
247
+ class Input < OpenAI::Internal::Type::BaseModel
248
+ OrHash =
249
+ T.type_alias do
250
+ T.any(
251
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input,
252
+ OpenAI::Internal::AnyHash
253
+ )
254
+ end
255
+
256
+ # The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
257
+ sig { returns(T.nilable(String)) }
258
+ attr_reader :format_
259
+
260
+ sig { params(format_: String).void }
261
+ attr_writer :format_
262
+
263
+ # Configuration for input audio noise reduction.
264
+ sig do
265
+ returns(
266
+ T.nilable(
267
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction
268
+ )
269
+ )
270
+ end
271
+ attr_reader :noise_reduction
272
+
273
+ sig do
274
+ params(
275
+ noise_reduction:
276
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::OrHash
277
+ ).void
278
+ end
279
+ attr_writer :noise_reduction
280
+
281
+ # Configuration of the transcription model.
282
+ sig do
283
+ returns(
284
+ T.nilable(
285
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription
286
+ )
287
+ )
288
+ end
289
+ attr_reader :transcription
290
+
291
+ sig do
292
+ params(
293
+ transcription:
294
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::OrHash
295
+ ).void
296
+ end
297
+ attr_writer :transcription
298
+
299
+ # Configuration for turn detection.
300
+ sig do
301
+ returns(
302
+ T.nilable(
303
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection
304
+ )
305
+ )
306
+ end
307
+ attr_reader :turn_detection
308
+
309
+ sig do
310
+ params(
311
+ turn_detection:
312
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection::OrHash
313
+ ).void
314
+ end
315
+ attr_writer :turn_detection
316
+
317
+ sig do
318
+ params(
319
+ format_: String,
320
+ noise_reduction:
321
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::OrHash,
322
+ transcription:
323
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::OrHash,
324
+ turn_detection:
325
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection::OrHash
326
+ ).returns(T.attached_class)
327
+ end
328
+ def self.new(
329
+ # The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
330
+ format_: nil,
331
+ # Configuration for input audio noise reduction.
332
+ noise_reduction: nil,
333
+ # Configuration of the transcription model.
334
+ transcription: nil,
335
+ # Configuration for turn detection.
336
+ turn_detection: nil
337
+ )
338
+ end
339
+
340
+ sig do
341
+ override.returns(
342
+ {
343
+ format_: String,
344
+ noise_reduction:
345
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction,
346
+ transcription:
347
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription,
348
+ turn_detection:
349
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection
350
+ }
351
+ )
352
+ end
353
+ def to_hash
354
+ end
355
+
356
+ class NoiseReduction < OpenAI::Internal::Type::BaseModel
357
+ OrHash =
358
+ T.type_alias do
359
+ T.any(
360
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction,
361
+ OpenAI::Internal::AnyHash
362
+ )
363
+ end
364
+
365
+ sig do
366
+ returns(
367
+ T.nilable(
368
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type::TaggedSymbol
369
+ )
370
+ )
371
+ end
372
+ attr_reader :type
373
+
374
+ sig do
375
+ params(
376
+ type:
377
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type::OrSymbol
378
+ ).void
379
+ end
380
+ attr_writer :type
381
+
382
+ # Configuration for input audio noise reduction.
383
+ sig do
384
+ params(
385
+ type:
386
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type::OrSymbol
387
+ ).returns(T.attached_class)
388
+ end
389
+ def self.new(type: nil)
390
+ end
391
+
392
+ sig do
393
+ override.returns(
394
+ {
395
+ type:
396
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type::TaggedSymbol
397
+ }
398
+ )
399
+ end
400
+ def to_hash
401
+ end
402
+
403
+ module Type
404
+ extend OpenAI::Internal::Type::Enum
405
+
406
+ TaggedSymbol =
407
+ T.type_alias do
408
+ T.all(
409
+ Symbol,
410
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type
411
+ )
412
+ end
413
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
414
+
415
+ NEAR_FIELD =
416
+ T.let(
417
+ :near_field,
418
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type::TaggedSymbol
419
+ )
420
+ FAR_FIELD =
421
+ T.let(
422
+ :far_field,
423
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type::TaggedSymbol
424
+ )
425
+
426
+ sig do
427
+ override.returns(
428
+ T::Array[
429
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type::TaggedSymbol
430
+ ]
431
+ )
432
+ end
433
+ def self.values
434
+ end
435
+ end
436
+ end
437
+
438
+ class Transcription < OpenAI::Internal::Type::BaseModel
439
+ OrHash =
440
+ T.type_alias do
441
+ T.any(
442
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription,
443
+ OpenAI::Internal::AnyHash
444
+ )
445
+ end
446
+
447
+ # The language of the input audio. Supplying the input language in
448
+ # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`)
449
+ # format will improve accuracy and latency.
450
+ sig { returns(T.nilable(String)) }
451
+ attr_reader :language
452
+
453
+ sig { params(language: String).void }
454
+ attr_writer :language
455
+
456
+ # The model to use for transcription. Can be `gpt-4o-transcribe`,
457
+ # `gpt-4o-mini-transcribe`, or `whisper-1`.
458
+ sig do
459
+ returns(
460
+ T.nilable(
461
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model::TaggedSymbol
462
+ )
463
+ )
464
+ end
465
+ attr_reader :model
466
+
467
+ sig do
468
+ params(
469
+ model:
470
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model::OrSymbol
471
+ ).void
472
+ end
473
+ attr_writer :model
474
+
475
+ # An optional text to guide the model's style or continue a previous audio
476
+ # segment. The
477
+ # [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting)
478
+ # should match the audio language.
479
+ sig { returns(T.nilable(String)) }
480
+ attr_reader :prompt
481
+
482
+ sig { params(prompt: String).void }
483
+ attr_writer :prompt
484
+
485
+ # Configuration of the transcription model.
486
+ sig do
487
+ params(
488
+ language: String,
489
+ model:
490
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model::OrSymbol,
491
+ prompt: String
492
+ ).returns(T.attached_class)
493
+ end
494
+ def self.new(
495
+ # The language of the input audio. Supplying the input language in
496
+ # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`)
497
+ # format will improve accuracy and latency.
498
+ language: nil,
499
+ # The model to use for transcription. Can be `gpt-4o-transcribe`,
500
+ # `gpt-4o-mini-transcribe`, or `whisper-1`.
501
+ model: nil,
502
+ # An optional text to guide the model's style or continue a previous audio
503
+ # segment. The
504
+ # [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting)
505
+ # should match the audio language.
506
+ prompt: nil
507
+ )
508
+ end
509
+
510
+ sig do
511
+ override.returns(
512
+ {
513
+ language: String,
514
+ model:
515
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model::TaggedSymbol,
516
+ prompt: String
517
+ }
518
+ )
519
+ end
520
+ def to_hash
521
+ end
522
+
523
+ # The model to use for transcription. Can be `gpt-4o-transcribe`,
524
+ # `gpt-4o-mini-transcribe`, or `whisper-1`.
525
+ module Model
526
+ extend OpenAI::Internal::Type::Enum
527
+
528
+ TaggedSymbol =
529
+ T.type_alias do
530
+ T.all(
531
+ Symbol,
532
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model
533
+ )
534
+ end
535
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
536
+
537
+ GPT_4O_TRANSCRIBE =
538
+ T.let(
539
+ :"gpt-4o-transcribe",
540
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model::TaggedSymbol
541
+ )
542
+ GPT_4O_MINI_TRANSCRIBE =
543
+ T.let(
544
+ :"gpt-4o-mini-transcribe",
545
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model::TaggedSymbol
546
+ )
547
+ WHISPER_1 =
548
+ T.let(
549
+ :"whisper-1",
550
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model::TaggedSymbol
551
+ )
552
+
553
+ sig do
554
+ override.returns(
555
+ T::Array[
556
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model::TaggedSymbol
557
+ ]
558
+ )
559
+ end
560
+ def self.values
561
+ end
562
+ end
563
+ end
564
+
565
+ class TurnDetection < OpenAI::Internal::Type::BaseModel
566
+ OrHash =
567
+ T.type_alias do
568
+ T.any(
569
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection,
570
+ OpenAI::Internal::AnyHash
571
+ )
572
+ end
573
+
574
+ sig { returns(T.nilable(Integer)) }
575
+ attr_reader :prefix_padding_ms
576
+
577
+ sig { params(prefix_padding_ms: Integer).void }
578
+ attr_writer :prefix_padding_ms
579
+
580
+ sig { returns(T.nilable(Integer)) }
581
+ attr_reader :silence_duration_ms
582
+
583
+ sig { params(silence_duration_ms: Integer).void }
584
+ attr_writer :silence_duration_ms
585
+
586
+ sig { returns(T.nilable(Float)) }
587
+ attr_reader :threshold
588
+
589
+ sig { params(threshold: Float).void }
590
+ attr_writer :threshold
591
+
592
+ # Type of turn detection, only `server_vad` is currently supported.
593
+ sig { returns(T.nilable(String)) }
594
+ attr_reader :type
595
+
596
+ sig { params(type: String).void }
597
+ attr_writer :type
598
+
599
+ # Configuration for turn detection.
600
+ sig do
601
+ params(
602
+ prefix_padding_ms: Integer,
603
+ silence_duration_ms: Integer,
604
+ threshold: Float,
605
+ type: String
606
+ ).returns(T.attached_class)
607
+ end
608
+ def self.new(
609
+ prefix_padding_ms: nil,
610
+ silence_duration_ms: nil,
611
+ threshold: nil,
612
+ # Type of turn detection, only `server_vad` is currently supported.
613
+ type: nil
614
+ )
615
+ end
616
+
617
+ sig do
618
+ override.returns(
619
+ {
620
+ prefix_padding_ms: Integer,
621
+ silence_duration_ms: Integer,
622
+ threshold: Float,
623
+ type: String
624
+ }
625
+ )
626
+ end
627
+ def to_hash
628
+ end
629
+ end
630
+ end
631
+ end
632
+
633
+ module Include
634
+ extend OpenAI::Internal::Type::Enum
635
+
636
+ TaggedSymbol =
637
+ T.type_alias do
638
+ T.all(
639
+ Symbol,
640
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include
641
+ )
642
+ end
643
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
644
+
645
+ ITEM_INPUT_AUDIO_TRANSCRIPTION_LOGPROBS =
646
+ T.let(
647
+ :"item.input_audio_transcription.logprobs",
648
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include::TaggedSymbol
649
+ )
650
+
651
+ sig do
652
+ override.returns(
653
+ T::Array[
654
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include::TaggedSymbol
655
+ ]
656
+ )
657
+ end
658
+ def self.values
659
+ end
660
+ end
661
+ end
662
+
663
+ sig do
664
+ override.returns(
665
+ T::Array[
666
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::Variants
667
+ ]
668
+ )
669
+ end
670
+ def self.variants
671
+ end
672
+ end
673
+ end
674
+ end
675
+ end
676
+ end