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,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationCreatedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute conversation
8
+ # The conversation resource.
9
+ #
10
+ # @return [OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation]
11
+ required :conversation, -> { OpenAI::Realtime::ConversationCreatedEvent::Conversation }
12
+
13
+ # @!attribute event_id
14
+ # The unique ID of the server event.
15
+ #
16
+ # @return [String]
17
+ required :event_id, String
18
+
19
+ # @!attribute type
20
+ # The event type, must be `conversation.created`.
21
+ #
22
+ # @return [Symbol, :"conversation.created"]
23
+ required :type, const: :"conversation.created"
24
+
25
+ # @!method initialize(conversation:, event_id:, type: :"conversation.created")
26
+ # Returned when a conversation is created. Emitted right after session creation.
27
+ #
28
+ # @param conversation [OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation] The conversation resource.
29
+ #
30
+ # @param event_id [String] The unique ID of the server event.
31
+ #
32
+ # @param type [Symbol, :"conversation.created"] The event type, must be `conversation.created`.
33
+
34
+ # @see OpenAI::Models::Realtime::ConversationCreatedEvent#conversation
35
+ class Conversation < OpenAI::Internal::Type::BaseModel
36
+ # @!attribute id
37
+ # The unique ID of the conversation.
38
+ #
39
+ # @return [String, nil]
40
+ optional :id, String
41
+
42
+ # @!attribute object
43
+ # The object type, must be `realtime.conversation`.
44
+ #
45
+ # @return [Symbol, OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation::Object, nil]
46
+ optional :object, enum: -> { OpenAI::Realtime::ConversationCreatedEvent::Conversation::Object }
47
+
48
+ # @!method initialize(id: nil, object: nil)
49
+ # The conversation resource.
50
+ #
51
+ # @param id [String] The unique ID of the conversation.
52
+ #
53
+ # @param object [Symbol, OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation::Object] The object type, must be `realtime.conversation`.
54
+
55
+ # The object type, must be `realtime.conversation`.
56
+ #
57
+ # @see OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation#object
58
+ module Object
59
+ extend OpenAI::Internal::Type::Enum
60
+
61
+ REALTIME_CONVERSATION = :"realtime.conversation"
62
+
63
+ # @!method self.values
64
+ # @return [Array<Symbol>]
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ # A single item within a Realtime conversation.
7
+ module ConversationItem
8
+ extend OpenAI::Internal::Type::Union
9
+
10
+ discriminator :type
11
+
12
+ # A system message item in a Realtime conversation.
13
+ variant :message, -> { OpenAI::Realtime::RealtimeConversationItemSystemMessage }
14
+
15
+ # A user message item in a Realtime conversation.
16
+ variant :message, -> { OpenAI::Realtime::RealtimeConversationItemUserMessage }
17
+
18
+ # An assistant message item in a Realtime conversation.
19
+ variant :message, -> { OpenAI::Realtime::RealtimeConversationItemAssistantMessage }
20
+
21
+ # A function call item in a Realtime conversation.
22
+ variant :function_call, -> { OpenAI::Realtime::RealtimeConversationItemFunctionCall }
23
+
24
+ # A function call output item in a Realtime conversation.
25
+ variant :function_call_output, -> { OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput }
26
+
27
+ # A Realtime item responding to an MCP approval request.
28
+ variant :mcp_approval_response, -> { OpenAI::Realtime::RealtimeMcpApprovalResponse }
29
+
30
+ # A Realtime item listing tools available on an MCP server.
31
+ variant :mcp_list_tools, -> { OpenAI::Realtime::RealtimeMcpListTools }
32
+
33
+ # A Realtime item representing an invocation of a tool on an MCP server.
34
+ variant :mcp_tool_call, -> { OpenAI::Realtime::RealtimeMcpToolCall }
35
+
36
+ # A Realtime item requesting human approval of a tool invocation.
37
+ variant :mcp_approval_request, -> { OpenAI::Realtime::RealtimeMcpApprovalRequest }
38
+
39
+ # @!method self.variants
40
+ # @return [Array(OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest)]
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemAdded < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute item
14
+ # A single item within a Realtime conversation.
15
+ #
16
+ # @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
17
+ required :item, union: -> { OpenAI::Realtime::ConversationItem }
18
+
19
+ # @!attribute type
20
+ # The event type, must be `conversation.item.added`.
21
+ #
22
+ # @return [Symbol, :"conversation.item.added"]
23
+ required :type, const: :"conversation.item.added"
24
+
25
+ # @!attribute previous_item_id
26
+ # The ID of the item that precedes this one, if any. This is used to maintain
27
+ # ordering when items are inserted.
28
+ #
29
+ # @return [String, nil]
30
+ optional :previous_item_id, String, nil?: true
31
+
32
+ # @!method initialize(event_id:, item:, previous_item_id: nil, type: :"conversation.item.added")
33
+ # Some parameter documentations has been truncated, see
34
+ # {OpenAI::Models::Realtime::ConversationItemAdded} for more details.
35
+ #
36
+ # Returned when a conversation item is added.
37
+ #
38
+ # @param event_id [String] The unique ID of the server event.
39
+ #
40
+ # @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest] A single item within a Realtime conversation.
41
+ #
42
+ # @param previous_item_id [String, nil] The ID of the item that precedes this one, if any. This is used to
43
+ #
44
+ # @param type [Symbol, :"conversation.item.added"] The event type, must be `conversation.item.added`.
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemCreateEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute item
8
+ # A single item within a Realtime conversation.
9
+ #
10
+ # @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
11
+ required :item, union: -> { OpenAI::Realtime::ConversationItem }
12
+
13
+ # @!attribute type
14
+ # The event type, must be `conversation.item.create`.
15
+ #
16
+ # @return [Symbol, :"conversation.item.create"]
17
+ required :type, const: :"conversation.item.create"
18
+
19
+ # @!attribute event_id
20
+ # Optional client-generated ID used to identify this event.
21
+ #
22
+ # @return [String, nil]
23
+ optional :event_id, String
24
+
25
+ # @!attribute previous_item_id
26
+ # The ID of the preceding item after which the new item will be inserted. If not
27
+ # set, the new item will be appended to the end of the conversation. If set to
28
+ # `root`, the new item will be added to the beginning of the conversation. If set
29
+ # to an existing ID, it allows an item to be inserted mid-conversation. If the ID
30
+ # cannot be found, an error will be returned and the item will not be added.
31
+ #
32
+ # @return [String, nil]
33
+ optional :previous_item_id, String
34
+
35
+ # @!method initialize(item:, event_id: nil, previous_item_id: nil, type: :"conversation.item.create")
36
+ # Some parameter documentations has been truncated, see
37
+ # {OpenAI::Models::Realtime::ConversationItemCreateEvent} for more details.
38
+ #
39
+ # Add a new Item to the Conversation's context, including messages, function
40
+ # calls, and function call responses. This event can be used both to populate a
41
+ # "history" of the conversation and to add new items mid-stream, but has the
42
+ # current limitation that it cannot populate assistant audio messages.
43
+ #
44
+ # If successful, the server will respond with a `conversation.item.created` event,
45
+ # otherwise an `error` event will be sent.
46
+ #
47
+ # @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest] A single item within a Realtime conversation.
48
+ #
49
+ # @param event_id [String] Optional client-generated ID used to identify this event.
50
+ #
51
+ # @param previous_item_id [String] The ID of the preceding item after which the new item will be inserted.
52
+ #
53
+ # @param type [Symbol, :"conversation.item.create"] The event type, must be `conversation.item.create`.
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemCreatedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute item
14
+ # A single item within a Realtime conversation.
15
+ #
16
+ # @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
17
+ required :item, union: -> { OpenAI::Realtime::ConversationItem }
18
+
19
+ # @!attribute type
20
+ # The event type, must be `conversation.item.created`.
21
+ #
22
+ # @return [Symbol, :"conversation.item.created"]
23
+ required :type, const: :"conversation.item.created"
24
+
25
+ # @!attribute previous_item_id
26
+ # The ID of the preceding item in the Conversation context, allows the client to
27
+ # understand the order of the conversation. Can be `null` if the item has no
28
+ # predecessor.
29
+ #
30
+ # @return [String, nil]
31
+ optional :previous_item_id, String, nil?: true
32
+
33
+ # @!method initialize(event_id:, item:, previous_item_id: nil, type: :"conversation.item.created")
34
+ # Some parameter documentations has been truncated, see
35
+ # {OpenAI::Models::Realtime::ConversationItemCreatedEvent} for more details.
36
+ #
37
+ # Returned when a conversation item is created. There are several scenarios that
38
+ # produce this event:
39
+ #
40
+ # - The server is generating a Response, which if successful will produce either
41
+ # one or two Items, which will be of type `message` (role `assistant`) or type
42
+ # `function_call`.
43
+ # - The input audio buffer has been committed, either by the client or the server
44
+ # (in `server_vad` mode). The server will take the content of the input audio
45
+ # buffer and add it to a new user message Item.
46
+ # - The client has sent a `conversation.item.create` event to add a new Item to
47
+ # the Conversation.
48
+ #
49
+ # @param event_id [String] The unique ID of the server event.
50
+ #
51
+ # @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest] A single item within a Realtime conversation.
52
+ #
53
+ # @param previous_item_id [String, nil] The ID of the preceding item in the Conversation context, allows the
54
+ #
55
+ # @param type [Symbol, :"conversation.item.created"] The event type, must be `conversation.item.created`.
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemDeleteEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute item_id
8
+ # The ID of the item to delete.
9
+ #
10
+ # @return [String]
11
+ required :item_id, String
12
+
13
+ # @!attribute type
14
+ # The event type, must be `conversation.item.delete`.
15
+ #
16
+ # @return [Symbol, :"conversation.item.delete"]
17
+ required :type, const: :"conversation.item.delete"
18
+
19
+ # @!attribute event_id
20
+ # Optional client-generated ID used to identify this event.
21
+ #
22
+ # @return [String, nil]
23
+ optional :event_id, String
24
+
25
+ # @!method initialize(item_id:, event_id: nil, type: :"conversation.item.delete")
26
+ # Send this event when you want to remove any item from the conversation history.
27
+ # The server will respond with a `conversation.item.deleted` event, unless the
28
+ # item does not exist in the conversation history, in which case the server will
29
+ # respond with an error.
30
+ #
31
+ # @param item_id [String] The ID of the item to delete.
32
+ #
33
+ # @param event_id [String] Optional client-generated ID used to identify this event.
34
+ #
35
+ # @param type [Symbol, :"conversation.item.delete"] The event type, must be `conversation.item.delete`.
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemDeletedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute item_id
14
+ # The ID of the item that was deleted.
15
+ #
16
+ # @return [String]
17
+ required :item_id, String
18
+
19
+ # @!attribute type
20
+ # The event type, must be `conversation.item.deleted`.
21
+ #
22
+ # @return [Symbol, :"conversation.item.deleted"]
23
+ required :type, const: :"conversation.item.deleted"
24
+
25
+ # @!method initialize(event_id:, item_id:, type: :"conversation.item.deleted")
26
+ # Returned when an item in the conversation is deleted by the client with a
27
+ # `conversation.item.delete` event. This event is used to synchronize the server's
28
+ # understanding of the conversation history with the client's view.
29
+ #
30
+ # @param event_id [String] The unique ID of the server event.
31
+ #
32
+ # @param item_id [String] The ID of the item that was deleted.
33
+ #
34
+ # @param type [Symbol, :"conversation.item.deleted"] The event type, must be `conversation.item.deleted`.
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemDone < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute item
14
+ # A single item within a Realtime conversation.
15
+ #
16
+ # @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
17
+ required :item, union: -> { OpenAI::Realtime::ConversationItem }
18
+
19
+ # @!attribute type
20
+ # The event type, must be `conversation.item.done`.
21
+ #
22
+ # @return [Symbol, :"conversation.item.done"]
23
+ required :type, const: :"conversation.item.done"
24
+
25
+ # @!attribute previous_item_id
26
+ # The ID of the item that precedes this one, if any. This is used to maintain
27
+ # ordering when items are inserted.
28
+ #
29
+ # @return [String, nil]
30
+ optional :previous_item_id, String, nil?: true
31
+
32
+ # @!method initialize(event_id:, item:, previous_item_id: nil, type: :"conversation.item.done")
33
+ # Some parameter documentations has been truncated, see
34
+ # {OpenAI::Models::Realtime::ConversationItemDone} for more details.
35
+ #
36
+ # Returned when a conversation item is finalized.
37
+ #
38
+ # @param event_id [String] The unique ID of the server event.
39
+ #
40
+ # @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest] A single item within a Realtime conversation.
41
+ #
42
+ # @param previous_item_id [String, nil] The ID of the item that precedes this one, if any. This is used to
43
+ #
44
+ # @param type [Symbol, :"conversation.item.done"] The event type, must be `conversation.item.done`.
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,189 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemInputAudioTranscriptionCompletedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute content_index
8
+ # The index of the content part containing the audio.
9
+ #
10
+ # @return [Integer]
11
+ required :content_index, Integer
12
+
13
+ # @!attribute event_id
14
+ # The unique ID of the server event.
15
+ #
16
+ # @return [String]
17
+ required :event_id, String
18
+
19
+ # @!attribute item_id
20
+ # The ID of the user message item containing the audio.
21
+ #
22
+ # @return [String]
23
+ required :item_id, String
24
+
25
+ # @!attribute transcript
26
+ # The transcribed text.
27
+ #
28
+ # @return [String]
29
+ required :transcript, String
30
+
31
+ # @!attribute type
32
+ # The event type, must be `conversation.item.input_audio_transcription.completed`.
33
+ #
34
+ # @return [Symbol, :"conversation.item.input_audio_transcription.completed"]
35
+ required :type, const: :"conversation.item.input_audio_transcription.completed"
36
+
37
+ # @!attribute usage
38
+ # Usage statistics for the transcription.
39
+ #
40
+ # @return [OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageDuration]
41
+ required :usage,
42
+ union: -> { OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage }
43
+
44
+ # @!attribute logprobs
45
+ # The log probabilities of the transcription.
46
+ #
47
+ # @return [Array<OpenAI::Models::Realtime::LogProbProperties>, nil]
48
+ optional :logprobs,
49
+ -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Realtime::LogProbProperties] },
50
+ nil?: true
51
+
52
+ # @!method initialize(content_index:, event_id:, item_id:, transcript:, usage:, logprobs: nil, type: :"conversation.item.input_audio_transcription.completed")
53
+ # Some parameter documentations has been truncated, see
54
+ # {OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent}
55
+ # for more details.
56
+ #
57
+ # This event is the output of audio transcription for user audio written to the
58
+ # user audio buffer. Transcription begins when the input audio buffer is committed
59
+ # by the client or server (in `server_vad` mode). Transcription runs
60
+ # asynchronously with Response creation, so this event may come before or after
61
+ # the Response events.
62
+ #
63
+ # Realtime API models accept audio natively, and thus input transcription is a
64
+ # separate process run on a separate ASR (Automatic Speech Recognition) model. The
65
+ # transcript may diverge somewhat from the model's interpretation, and should be
66
+ # treated as a rough guide.
67
+ #
68
+ # @param content_index [Integer] The index of the content part containing the audio.
69
+ #
70
+ # @param event_id [String] The unique ID of the server event.
71
+ #
72
+ # @param item_id [String] The ID of the user message item containing the audio.
73
+ #
74
+ # @param transcript [String] The transcribed text.
75
+ #
76
+ # @param usage [OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageDuration] Usage statistics for the transcription.
77
+ #
78
+ # @param logprobs [Array<OpenAI::Models::Realtime::LogProbProperties>, nil] The log probabilities of the transcription.
79
+ #
80
+ # @param type [Symbol, :"conversation.item.input_audio_transcription.completed"] The event type, must be
81
+
82
+ # Usage statistics for the transcription.
83
+ #
84
+ # @see OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent#usage
85
+ module Usage
86
+ extend OpenAI::Internal::Type::Union
87
+
88
+ # Usage statistics for models billed by token usage.
89
+ variant -> { OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens }
90
+
91
+ # Usage statistics for models billed by audio input duration.
92
+ variant -> { OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageDuration }
93
+
94
+ class TranscriptTextUsageTokens < OpenAI::Internal::Type::BaseModel
95
+ # @!attribute input_tokens
96
+ # Number of input tokens billed for this request.
97
+ #
98
+ # @return [Integer]
99
+ required :input_tokens, Integer
100
+
101
+ # @!attribute output_tokens
102
+ # Number of output tokens generated.
103
+ #
104
+ # @return [Integer]
105
+ required :output_tokens, Integer
106
+
107
+ # @!attribute total_tokens
108
+ # Total number of tokens used (input + output).
109
+ #
110
+ # @return [Integer]
111
+ required :total_tokens, Integer
112
+
113
+ # @!attribute type
114
+ # The type of the usage object. Always `tokens` for this variant.
115
+ #
116
+ # @return [Symbol, :tokens]
117
+ required :type, const: :tokens
118
+
119
+ # @!attribute input_token_details
120
+ # Details about the input tokens billed for this request.
121
+ #
122
+ # @return [OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens::InputTokenDetails, nil]
123
+ optional :input_token_details,
124
+ -> { OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens::InputTokenDetails }
125
+
126
+ # @!method initialize(input_tokens:, output_tokens:, total_tokens:, input_token_details: nil, type: :tokens)
127
+ # Usage statistics for models billed by token usage.
128
+ #
129
+ # @param input_tokens [Integer] Number of input tokens billed for this request.
130
+ #
131
+ # @param output_tokens [Integer] Number of output tokens generated.
132
+ #
133
+ # @param total_tokens [Integer] Total number of tokens used (input + output).
134
+ #
135
+ # @param input_token_details [OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens::InputTokenDetails] Details about the input tokens billed for this request.
136
+ #
137
+ # @param type [Symbol, :tokens] The type of the usage object. Always `tokens` for this variant.
138
+
139
+ # @see OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens#input_token_details
140
+ class InputTokenDetails < OpenAI::Internal::Type::BaseModel
141
+ # @!attribute audio_tokens
142
+ # Number of audio tokens billed for this request.
143
+ #
144
+ # @return [Integer, nil]
145
+ optional :audio_tokens, Integer
146
+
147
+ # @!attribute text_tokens
148
+ # Number of text tokens billed for this request.
149
+ #
150
+ # @return [Integer, nil]
151
+ optional :text_tokens, Integer
152
+
153
+ # @!method initialize(audio_tokens: nil, text_tokens: nil)
154
+ # Details about the input tokens billed for this request.
155
+ #
156
+ # @param audio_tokens [Integer] Number of audio tokens billed for this request.
157
+ #
158
+ # @param text_tokens [Integer] Number of text tokens billed for this request.
159
+ end
160
+ end
161
+
162
+ class TranscriptTextUsageDuration < OpenAI::Internal::Type::BaseModel
163
+ # @!attribute seconds
164
+ # Duration of the input audio in seconds.
165
+ #
166
+ # @return [Float]
167
+ required :seconds, Float
168
+
169
+ # @!attribute type
170
+ # The type of the usage object. Always `duration` for this variant.
171
+ #
172
+ # @return [Symbol, :duration]
173
+ required :type, const: :duration
174
+
175
+ # @!method initialize(seconds:, type: :duration)
176
+ # Usage statistics for models billed by audio input duration.
177
+ #
178
+ # @param seconds [Float] Duration of the input audio in seconds.
179
+ #
180
+ # @param type [Symbol, :duration] The type of the usage object. Always `duration` for this variant.
181
+ end
182
+
183
+ # @!method self.variants
184
+ # @return [Array(OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageDuration)]
185
+ end
186
+ end
187
+ end
188
+ end
189
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemInputAudioTranscriptionDeltaEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute item_id
14
+ # The ID of the item.
15
+ #
16
+ # @return [String]
17
+ required :item_id, String
18
+
19
+ # @!attribute type
20
+ # The event type, must be `conversation.item.input_audio_transcription.delta`.
21
+ #
22
+ # @return [Symbol, :"conversation.item.input_audio_transcription.delta"]
23
+ required :type, const: :"conversation.item.input_audio_transcription.delta"
24
+
25
+ # @!attribute content_index
26
+ # The index of the content part in the item's content array.
27
+ #
28
+ # @return [Integer, nil]
29
+ optional :content_index, Integer
30
+
31
+ # @!attribute delta
32
+ # The text delta.
33
+ #
34
+ # @return [String, nil]
35
+ optional :delta, String
36
+
37
+ # @!attribute logprobs
38
+ # The log probabilities of the transcription.
39
+ #
40
+ # @return [Array<OpenAI::Models::Realtime::LogProbProperties>, nil]
41
+ optional :logprobs,
42
+ -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Realtime::LogProbProperties] },
43
+ nil?: true
44
+
45
+ # @!method initialize(event_id:, item_id:, content_index: nil, delta: nil, logprobs: nil, type: :"conversation.item.input_audio_transcription.delta")
46
+ # Returned when the text value of an input audio transcription content part is
47
+ # updated.
48
+ #
49
+ # @param event_id [String] The unique ID of the server event.
50
+ #
51
+ # @param item_id [String] The ID of the item.
52
+ #
53
+ # @param content_index [Integer] The index of the content part in the item's content array.
54
+ #
55
+ # @param delta [String] The text delta.
56
+ #
57
+ # @param logprobs [Array<OpenAI::Models::Realtime::LogProbProperties>, nil] The log probabilities of the transcription.
58
+ #
59
+ # @param type [Symbol, :"conversation.item.input_audio_transcription.delta"] The event type, must be `conversation.item.input_audio_transcription.delta`.
60
+ end
61
+ end
62
+ end
63
+ end