openai 0.19.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 (346) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -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/chat/chat_completion_message.rb +7 -5
  9. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +7 -5
  10. data/lib/openai/models/conversations/item_list_params.rb +2 -0
  11. data/lib/openai/models/evals/run_cancel_response.rb +2 -2
  12. data/lib/openai/models/evals/run_create_params.rb +2 -2
  13. data/lib/openai/models/evals/run_create_response.rb +2 -2
  14. data/lib/openai/models/evals/run_list_response.rb +2 -2
  15. data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
  16. data/lib/openai/models/realtime/client_secret_create_params.rb +93 -0
  17. data/lib/openai/models/realtime/client_secret_create_response.rb +300 -0
  18. data/lib/openai/models/realtime/conversation_created_event.rb +70 -0
  19. data/lib/openai/models/realtime/conversation_item.rb +44 -0
  20. data/lib/openai/models/realtime/conversation_item_added.rb +48 -0
  21. data/lib/openai/models/realtime/conversation_item_create_event.rb +57 -0
  22. data/lib/openai/models/realtime/conversation_item_created_event.rb +59 -0
  23. data/lib/openai/models/realtime/conversation_item_delete_event.rb +39 -0
  24. data/lib/openai/models/realtime/conversation_item_deleted_event.rb +38 -0
  25. data/lib/openai/models/realtime/conversation_item_done.rb +48 -0
  26. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +189 -0
  27. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +63 -0
  28. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +96 -0
  29. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +84 -0
  30. data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +40 -0
  31. data/lib/openai/models/realtime/conversation_item_truncate_event.rb +68 -0
  32. data/lib/openai/models/realtime/conversation_item_truncated_event.rb +60 -0
  33. data/lib/openai/models/realtime/conversation_item_with_reference.rb +235 -0
  34. data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +49 -0
  35. data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +29 -0
  36. data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +29 -0
  37. data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +35 -0
  38. data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +51 -0
  39. data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +59 -0
  40. data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +51 -0
  41. data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +52 -0
  42. data/lib/openai/models/realtime/log_prob_properties.rb +39 -0
  43. data/lib/openai/models/realtime/mcp_list_tools_completed.rb +36 -0
  44. data/lib/openai/models/realtime/mcp_list_tools_failed.rb +36 -0
  45. data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +36 -0
  46. data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +32 -0
  47. data/lib/openai/models/realtime/rate_limits_updated_event.rb +91 -0
  48. data/lib/openai/models/realtime/realtime_audio_config.rb +446 -0
  49. data/lib/openai/models/realtime/realtime_client_event.rb +123 -0
  50. data/lib/openai/models/realtime/realtime_client_secret_config.rb +64 -0
  51. data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +118 -0
  52. data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +94 -0
  53. data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +86 -0
  54. data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +118 -0
  55. data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +135 -0
  56. data/lib/openai/models/realtime/realtime_error.rb +55 -0
  57. data/lib/openai/models/realtime/realtime_error_event.rb +38 -0
  58. data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +52 -0
  59. data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +52 -0
  60. data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +84 -0
  61. data/lib/openai/models/realtime/realtime_mcp_protocol_error.rb +29 -0
  62. data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +94 -0
  63. data/lib/openai/models/realtime/realtime_mcp_tool_execution_error.rb +23 -0
  64. data/lib/openai/models/realtime/realtime_mcphttp_error.rb +29 -0
  65. data/lib/openai/models/realtime/realtime_response.rb +259 -0
  66. data/lib/openai/models/realtime/realtime_response_status.rb +103 -0
  67. data/lib/openai/models/realtime/realtime_response_usage.rb +61 -0
  68. data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +36 -0
  69. data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +28 -0
  70. data/lib/openai/models/realtime/realtime_server_event.rb +369 -0
  71. data/lib/openai/models/realtime/realtime_session.rb +696 -0
  72. data/lib/openai/models/realtime/realtime_session_create_request.rb +234 -0
  73. data/lib/openai/models/realtime/realtime_session_create_response.rb +579 -0
  74. data/lib/openai/models/realtime/realtime_tool_choice_config.rb +32 -0
  75. data/lib/openai/models/realtime/realtime_tools_config.rb +11 -0
  76. data/lib/openai/models/realtime/realtime_tools_config_union.rb +379 -0
  77. data/lib/openai/models/realtime/realtime_tracing_config.rb +61 -0
  78. data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +312 -0
  79. data/lib/openai/models/realtime/realtime_truncation.rb +67 -0
  80. data/lib/openai/models/realtime/response_audio_delta_event.rb +68 -0
  81. data/lib/openai/models/realtime/response_audio_done_event.rb +61 -0
  82. data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +68 -0
  83. data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +70 -0
  84. data/lib/openai/models/realtime/response_cancel_event.rb +42 -0
  85. data/lib/openai/models/realtime/response_content_part_added_event.rb +120 -0
  86. data/lib/openai/models/realtime/response_content_part_done_event.rb +120 -0
  87. data/lib/openai/models/realtime/response_create_event.rb +391 -0
  88. data/lib/openai/models/realtime/response_created_event.rb +37 -0
  89. data/lib/openai/models/realtime/response_done_event.rb +38 -0
  90. data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +72 -0
  91. data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +73 -0
  92. data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +68 -0
  93. data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +60 -0
  94. data/lib/openai/models/realtime/response_mcp_call_completed.rb +44 -0
  95. data/lib/openai/models/realtime/response_mcp_call_failed.rb +44 -0
  96. data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +44 -0
  97. data/lib/openai/models/realtime/response_output_item_added_event.rb +52 -0
  98. data/lib/openai/models/realtime/response_output_item_done_event.rb +53 -0
  99. data/lib/openai/models/realtime/response_text_delta_event.rb +68 -0
  100. data/lib/openai/models/realtime/response_text_done_event.rb +69 -0
  101. data/lib/openai/models/realtime/session_created_event.rb +38 -0
  102. data/lib/openai/models/realtime/session_update_event.rb +44 -0
  103. data/lib/openai/models/realtime/session_updated_event.rb +37 -0
  104. data/lib/openai/models/realtime/transcription_session_created.rb +278 -0
  105. data/lib/openai/models/realtime/transcription_session_update.rb +36 -0
  106. data/lib/openai/models/realtime/transcription_session_updated_event.rb +279 -0
  107. data/lib/openai/models/responses/response.rb +6 -3
  108. data/lib/openai/models/responses/response_create_params.rb +8 -3
  109. data/lib/openai/models/responses/response_function_tool_call.rb +7 -5
  110. data/lib/openai/models/responses/response_function_web_search.rb +35 -1
  111. data/lib/openai/models/responses/response_includable.rb +2 -0
  112. data/lib/openai/models/responses/response_output_text.rb +7 -5
  113. data/lib/openai/models/responses/tool.rb +6 -2
  114. data/lib/openai/models/responses/web_search_preview_tool.rb +124 -0
  115. data/lib/openai/models/responses/web_search_tool.rb +58 -21
  116. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +119 -0
  117. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
  118. data/lib/openai/models.rb +2 -0
  119. data/lib/openai/resources/conversations.rb +1 -1
  120. data/lib/openai/resources/realtime/client_secrets.rb +44 -0
  121. data/lib/openai/resources/realtime.rb +18 -0
  122. data/lib/openai/resources/responses.rb +2 -2
  123. data/lib/openai/resources/webhooks.rb +1 -1
  124. data/lib/openai/version.rb +1 -1
  125. data/lib/openai.rb +95 -0
  126. data/rbi/openai/client.rbi +3 -0
  127. data/rbi/openai/models/audio/speech_create_params.rbi +10 -0
  128. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +10 -0
  129. data/rbi/openai/models/conversations/item_list_params.rbi +4 -0
  130. data/rbi/openai/models/evals/run_cancel_response.rbi +4 -2
  131. data/rbi/openai/models/evals/run_create_params.rbi +8 -4
  132. data/rbi/openai/models/evals/run_create_response.rbi +4 -2
  133. data/rbi/openai/models/evals/run_list_response.rbi +4 -2
  134. data/rbi/openai/models/evals/run_retrieve_response.rbi +4 -2
  135. data/rbi/openai/models/realtime/client_secret_create_params.rbi +222 -0
  136. data/rbi/openai/models/realtime/client_secret_create_response.rbi +676 -0
  137. data/rbi/openai/models/realtime/conversation_created_event.rbi +164 -0
  138. data/rbi/openai/models/realtime/conversation_item.rbi +35 -0
  139. data/rbi/openai/models/realtime/conversation_item_added.rbi +105 -0
  140. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +123 -0
  141. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +117 -0
  142. data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +57 -0
  143. data/rbi/openai/models/realtime/conversation_item_deleted_event.rbi +53 -0
  144. data/rbi/openai/models/realtime/conversation_item_done.rbi +105 -0
  145. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +305 -0
  146. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +93 -0
  147. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +158 -0
  148. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbi +107 -0
  149. data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +58 -0
  150. data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +94 -0
  151. data/rbi/openai/models/realtime/conversation_item_truncated_event.rbi +80 -0
  152. data/rbi/openai/models/realtime/conversation_item_with_reference.rbi +549 -0
  153. data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +65 -0
  154. data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +43 -0
  155. data/rbi/openai/models/realtime/input_audio_buffer_cleared_event.rbi +40 -0
  156. data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +49 -0
  157. data/rbi/openai/models/realtime/input_audio_buffer_committed_event.rbi +72 -0
  158. data/rbi/openai/models/realtime/input_audio_buffer_speech_started_event.rbi +82 -0
  159. data/rbi/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbi +73 -0
  160. data/rbi/openai/models/realtime/input_audio_buffer_timeout_triggered.rbi +75 -0
  161. data/rbi/openai/models/realtime/log_prob_properties.rbi +55 -0
  162. data/rbi/openai/models/realtime/mcp_list_tools_completed.rbi +51 -0
  163. data/rbi/openai/models/realtime/mcp_list_tools_failed.rbi +51 -0
  164. data/rbi/openai/models/realtime/mcp_list_tools_in_progress.rbi +51 -0
  165. data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +46 -0
  166. data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +187 -0
  167. data/rbi/openai/models/realtime/realtime_audio_config.rbi +1004 -0
  168. data/rbi/openai/models/realtime/realtime_client_event.rbi +38 -0
  169. data/rbi/openai/models/realtime/realtime_client_secret_config.rbi +147 -0
  170. data/rbi/openai/models/realtime/realtime_conversation_item_assistant_message.rbi +292 -0
  171. data/rbi/openai/models/realtime/realtime_conversation_item_function_call.rbi +199 -0
  172. data/rbi/openai/models/realtime/realtime_conversation_item_function_call_output.rbi +188 -0
  173. data/rbi/openai/models/realtime/realtime_conversation_item_system_message.rbi +292 -0
  174. data/rbi/openai/models/realtime/realtime_conversation_item_user_message.rbi +319 -0
  175. data/rbi/openai/models/realtime/realtime_error.rbi +72 -0
  176. data/rbi/openai/models/realtime/realtime_error_event.rbi +64 -0
  177. data/rbi/openai/models/realtime/realtime_mcp_approval_request.rbi +75 -0
  178. data/rbi/openai/models/realtime/realtime_mcp_approval_response.rbi +75 -0
  179. data/rbi/openai/models/realtime/realtime_mcp_list_tools.rbi +131 -0
  180. data/rbi/openai/models/realtime/realtime_mcp_protocol_error.rbi +40 -0
  181. data/rbi/openai/models/realtime/realtime_mcp_tool_call.rbi +145 -0
  182. data/rbi/openai/models/realtime/realtime_mcp_tool_execution_error.rbi +31 -0
  183. data/rbi/openai/models/realtime/realtime_mcphttp_error.rbi +40 -0
  184. data/rbi/openai/models/realtime/realtime_response.rbi +573 -0
  185. data/rbi/openai/models/realtime/realtime_response_status.rbi +233 -0
  186. data/rbi/openai/models/realtime/realtime_response_usage.rbi +121 -0
  187. data/rbi/openai/models/realtime/realtime_response_usage_input_token_details.rbi +68 -0
  188. data/rbi/openai/models/realtime/realtime_response_usage_output_token_details.rbi +51 -0
  189. data/rbi/openai/models/realtime/realtime_server_event.rbi +311 -0
  190. data/rbi/openai/models/realtime/realtime_session.rbi +1426 -0
  191. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +560 -0
  192. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +1249 -0
  193. data/rbi/openai/models/realtime/realtime_tool_choice_config.rbi +30 -0
  194. data/rbi/openai/models/realtime/realtime_tools_config.rbi +15 -0
  195. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +755 -0
  196. data/rbi/openai/models/realtime/realtime_tracing_config.rbi +95 -0
  197. data/rbi/openai/models/realtime/realtime_transcription_session_create_request.rbi +703 -0
  198. data/rbi/openai/models/realtime/realtime_truncation.rbi +117 -0
  199. data/rbi/openai/models/realtime/response_audio_delta_event.rbi +91 -0
  200. data/rbi/openai/models/realtime/response_audio_done_event.rbi +84 -0
  201. data/rbi/openai/models/realtime/response_audio_transcript_delta_event.rbi +91 -0
  202. data/rbi/openai/models/realtime/response_audio_transcript_done_event.rbi +93 -0
  203. data/rbi/openai/models/realtime/response_cancel_event.rbi +63 -0
  204. data/rbi/openai/models/realtime/response_content_part_added_event.rbi +219 -0
  205. data/rbi/openai/models/realtime/response_content_part_done_event.rbi +219 -0
  206. data/rbi/openai/models/realtime/response_create_event.rbi +863 -0
  207. data/rbi/openai/models/realtime/response_created_event.rbi +65 -0
  208. data/rbi/openai/models/realtime/response_done_event.rbi +66 -0
  209. data/rbi/openai/models/realtime/response_function_call_arguments_delta_event.rbi +91 -0
  210. data/rbi/openai/models/realtime/response_function_call_arguments_done_event.rbi +92 -0
  211. data/rbi/openai/models/realtime/response_mcp_call_arguments_delta.rbi +91 -0
  212. data/rbi/openai/models/realtime/response_mcp_call_arguments_done.rbi +83 -0
  213. data/rbi/openai/models/realtime/response_mcp_call_completed.rbi +67 -0
  214. data/rbi/openai/models/realtime/response_mcp_call_failed.rbi +67 -0
  215. data/rbi/openai/models/realtime/response_mcp_call_in_progress.rbi +67 -0
  216. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +111 -0
  217. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +112 -0
  218. data/rbi/openai/models/realtime/response_text_delta_event.rbi +91 -0
  219. data/rbi/openai/models/realtime/response_text_done_event.rbi +92 -0
  220. data/rbi/openai/models/realtime/session_created_event.rbi +64 -0
  221. data/rbi/openai/models/realtime/session_update_event.rbi +77 -0
  222. data/rbi/openai/models/realtime/session_updated_event.rbi +63 -0
  223. data/rbi/openai/models/realtime/transcription_session_created.rbi +653 -0
  224. data/rbi/openai/models/realtime/transcription_session_update.rbi +74 -0
  225. data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +657 -0
  226. data/rbi/openai/models/responses/response.rbi +10 -3
  227. data/rbi/openai/models/responses/response_create_params.rbi +20 -6
  228. data/rbi/openai/models/responses/response_function_web_search.rbi +78 -2
  229. data/rbi/openai/models/responses/response_includable.rbi +2 -0
  230. data/rbi/openai/models/responses/tool.rbi +2 -1
  231. data/rbi/openai/models/responses/web_search_preview_tool.rbi +245 -0
  232. data/rbi/openai/models/responses/web_search_tool.rbi +120 -23
  233. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +222 -0
  234. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  235. data/rbi/openai/models.rbi +2 -0
  236. data/rbi/openai/resources/conversations/items.rbi +2 -0
  237. data/rbi/openai/resources/conversations.rbi +1 -1
  238. data/rbi/openai/resources/realtime/client_secrets.rbi +38 -0
  239. data/rbi/openai/resources/realtime.rbi +15 -0
  240. data/rbi/openai/resources/responses.rbi +16 -4
  241. data/rbi/openai/resources/webhooks.rbi +1 -0
  242. data/sig/openai/client.rbs +2 -0
  243. data/sig/openai/models/audio/speech_create_params.rbs +4 -0
  244. data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -0
  245. data/sig/openai/models/realtime/client_secret_create_params.rbs +89 -0
  246. data/sig/openai/models/realtime/client_secret_create_response.rbs +292 -0
  247. data/sig/openai/models/realtime/conversation_created_event.rbs +70 -0
  248. data/sig/openai/models/realtime/conversation_item.rbs +22 -0
  249. data/sig/openai/models/realtime/conversation_item_added.rbs +37 -0
  250. data/sig/openai/models/realtime/conversation_item_create_event.rbs +41 -0
  251. data/sig/openai/models/realtime/conversation_item_created_event.rbs +37 -0
  252. data/sig/openai/models/realtime/conversation_item_delete_event.rbs +30 -0
  253. data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +32 -0
  254. data/sig/openai/models/realtime/conversation_item_done.rbs +37 -0
  255. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +136 -0
  256. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +51 -0
  257. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +77 -0
  258. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +62 -0
  259. data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +34 -0
  260. data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +44 -0
  261. data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +42 -0
  262. data/sig/openai/models/realtime/conversation_item_with_reference.rbs +207 -0
  263. data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +30 -0
  264. data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +23 -0
  265. data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +24 -0
  266. data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +23 -0
  267. data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +37 -0
  268. data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +37 -0
  269. data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +37 -0
  270. data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +42 -0
  271. data/sig/openai/models/realtime/log_prob_properties.rbs +28 -0
  272. data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +28 -0
  273. data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +28 -0
  274. data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +32 -0
  275. data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +23 -0
  276. data/sig/openai/models/realtime/rate_limits_updated_event.rbs +85 -0
  277. data/sig/openai/models/realtime/realtime_audio_config.rbs +354 -0
  278. data/sig/openai/models/realtime/realtime_client_event.rbs +25 -0
  279. data/sig/openai/models/realtime/realtime_client_secret_config.rbs +60 -0
  280. data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +117 -0
  281. data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +86 -0
  282. data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +79 -0
  283. data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +117 -0
  284. data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +132 -0
  285. data/sig/openai/models/realtime/realtime_error.rbs +42 -0
  286. data/sig/openai/models/realtime/realtime_error_event.rbs +32 -0
  287. data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +42 -0
  288. data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +42 -0
  289. data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +71 -0
  290. data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +28 -0
  291. data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +68 -0
  292. data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +18 -0
  293. data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +24 -0
  294. data/sig/openai/models/realtime/realtime_response.rbs +210 -0
  295. data/sig/openai/models/realtime/realtime_response_status.rbs +90 -0
  296. data/sig/openai/models/realtime/realtime_response_usage.rbs +56 -0
  297. data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +34 -0
  298. data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +22 -0
  299. data/sig/openai/models/realtime/realtime_server_event.rbs +168 -0
  300. data/sig/openai/models/realtime/realtime_session.rbs +521 -0
  301. data/sig/openai/models/realtime/realtime_session_create_request.rbs +178 -0
  302. data/sig/openai/models/realtime/realtime_session_create_response.rbs +526 -0
  303. data/sig/openai/models/realtime/realtime_tool_choice_config.rbs +16 -0
  304. data/sig/openai/models/realtime/realtime_tools_config.rbs +10 -0
  305. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +280 -0
  306. data/sig/openai/models/realtime/realtime_tracing_config.rbs +43 -0
  307. data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +242 -0
  308. data/sig/openai/models/realtime/realtime_truncation.rbs +53 -0
  309. data/sig/openai/models/realtime/response_audio_delta_event.rbs +52 -0
  310. data/sig/openai/models/realtime/response_audio_done_event.rbs +47 -0
  311. data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +52 -0
  312. data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +52 -0
  313. data/sig/openai/models/realtime/response_cancel_event.rbs +32 -0
  314. data/sig/openai/models/realtime/response_content_part_added_event.rbs +105 -0
  315. data/sig/openai/models/realtime/response_content_part_done_event.rbs +105 -0
  316. data/sig/openai/models/realtime/response_create_event.rbs +281 -0
  317. data/sig/openai/models/realtime/response_created_event.rbs +32 -0
  318. data/sig/openai/models/realtime/response_done_event.rbs +32 -0
  319. data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +52 -0
  320. data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +52 -0
  321. data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +52 -0
  322. data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +47 -0
  323. data/sig/openai/models/realtime/response_mcp_call_completed.rbs +37 -0
  324. data/sig/openai/models/realtime/response_mcp_call_failed.rbs +37 -0
  325. data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +37 -0
  326. data/sig/openai/models/realtime/response_output_item_added_event.rbs +42 -0
  327. data/sig/openai/models/realtime/response_output_item_done_event.rbs +42 -0
  328. data/sig/openai/models/realtime/response_text_delta_event.rbs +52 -0
  329. data/sig/openai/models/realtime/response_text_done_event.rbs +52 -0
  330. data/sig/openai/models/realtime/session_created_event.rbs +32 -0
  331. data/sig/openai/models/realtime/session_update_event.rbs +34 -0
  332. data/sig/openai/models/realtime/session_updated_event.rbs +32 -0
  333. data/sig/openai/models/realtime/transcription_session_created.rbs +282 -0
  334. data/sig/openai/models/realtime/transcription_session_update.rbs +34 -0
  335. data/sig/openai/models/realtime/transcription_session_updated_event.rbs +282 -0
  336. data/sig/openai/models/responses/response_function_web_search.rbs +34 -3
  337. data/sig/openai/models/responses/tool.rbs +1 -0
  338. data/sig/openai/models/responses/web_search_preview_tool.rbs +96 -0
  339. data/sig/openai/models/responses/web_search_tool.rbs +39 -10
  340. data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +90 -0
  341. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  342. data/sig/openai/models.rbs +2 -0
  343. data/sig/openai/resources/realtime/client_secrets.rbs +15 -0
  344. data/sig/openai/resources/realtime.rbs +9 -0
  345. data/sig/openai/resources/webhooks.rbs +1 -0
  346. metadata +287 -2
@@ -0,0 +1,259 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeResponse < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the response.
9
+ #
10
+ # @return [String, nil]
11
+ optional :id, String
12
+
13
+ # @!attribute conversation_id
14
+ # Which conversation the response is added to, determined by the `conversation`
15
+ # field in the `response.create` event. If `auto`, the response will be added to
16
+ # the default conversation and the value of `conversation_id` will be an id like
17
+ # `conv_1234`. If `none`, the response will not be added to any conversation and
18
+ # the value of `conversation_id` will be `null`. If responses are being triggered
19
+ # by server VAD, the response will be added to the default conversation, thus the
20
+ # `conversation_id` will be an id like `conv_1234`.
21
+ #
22
+ # @return [String, nil]
23
+ optional :conversation_id, String
24
+
25
+ # @!attribute max_output_tokens
26
+ # Maximum number of output tokens for a single assistant response, inclusive of
27
+ # tool calls, that was used in this response.
28
+ #
29
+ # @return [Integer, Symbol, :inf, nil]
30
+ optional :max_output_tokens, union: -> { OpenAI::Realtime::RealtimeResponse::MaxOutputTokens }
31
+
32
+ # @!attribute metadata
33
+ # Set of 16 key-value pairs that can be attached to an object. This can be useful
34
+ # for storing additional information about the object in a structured format, and
35
+ # querying for objects via API or the dashboard.
36
+ #
37
+ # Keys are strings with a maximum length of 64 characters. Values are strings with
38
+ # a maximum length of 512 characters.
39
+ #
40
+ # @return [Hash{Symbol=>String}, nil]
41
+ optional :metadata, OpenAI::Internal::Type::HashOf[String], nil?: true
42
+
43
+ # @!attribute modalities
44
+ # The set of modalities the model used to respond. If there are multiple
45
+ # modalities, the model will pick one, for example if `modalities` is
46
+ # `["text", "audio"]`, the model could be responding in either text or audio.
47
+ #
48
+ # @return [Array<Symbol, OpenAI::Models::Realtime::RealtimeResponse::Modality>, nil]
49
+ optional :modalities,
50
+ -> { OpenAI::Internal::Type::ArrayOf[enum: OpenAI::Realtime::RealtimeResponse::Modality] }
51
+
52
+ # @!attribute object
53
+ # The object type, must be `realtime.response`.
54
+ #
55
+ # @return [Symbol, OpenAI::Models::Realtime::RealtimeResponse::Object, nil]
56
+ optional :object, enum: -> { OpenAI::Realtime::RealtimeResponse::Object }
57
+
58
+ # @!attribute output
59
+ # The list of output items generated by the response.
60
+ #
61
+ # @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>, nil]
62
+ optional :output, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Realtime::ConversationItem] }
63
+
64
+ # @!attribute output_audio_format
65
+ # The format of output audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
66
+ #
67
+ # @return [Symbol, OpenAI::Models::Realtime::RealtimeResponse::OutputAudioFormat, nil]
68
+ optional :output_audio_format, enum: -> { OpenAI::Realtime::RealtimeResponse::OutputAudioFormat }
69
+
70
+ # @!attribute status
71
+ # The final status of the response (`completed`, `cancelled`, `failed`, or
72
+ # `incomplete`, `in_progress`).
73
+ #
74
+ # @return [Symbol, OpenAI::Models::Realtime::RealtimeResponse::Status, nil]
75
+ optional :status, enum: -> { OpenAI::Realtime::RealtimeResponse::Status }
76
+
77
+ # @!attribute status_details
78
+ # Additional details about the status.
79
+ #
80
+ # @return [OpenAI::Models::Realtime::RealtimeResponseStatus, nil]
81
+ optional :status_details, -> { OpenAI::Realtime::RealtimeResponseStatus }
82
+
83
+ # @!attribute temperature
84
+ # Sampling temperature for the model, limited to [0.6, 1.2]. Defaults to 0.8.
85
+ #
86
+ # @return [Float, nil]
87
+ optional :temperature, Float
88
+
89
+ # @!attribute usage
90
+ # Usage statistics for the Response, this will correspond to billing. A Realtime
91
+ # API session will maintain a conversation context and append new Items to the
92
+ # Conversation, thus output from previous turns (text and audio tokens) will
93
+ # become the input for later turns.
94
+ #
95
+ # @return [OpenAI::Models::Realtime::RealtimeResponseUsage, nil]
96
+ optional :usage, -> { OpenAI::Realtime::RealtimeResponseUsage }
97
+
98
+ # @!attribute voice
99
+ # The voice the model used to respond. Current voice options are `alloy`, `ash`,
100
+ # `ballad`, `coral`, `echo`, `sage`, `shimmer`, and `verse`.
101
+ #
102
+ # @return [String, Symbol, OpenAI::Models::Realtime::RealtimeResponse::Voice, nil]
103
+ optional :voice, union: -> { OpenAI::Realtime::RealtimeResponse::Voice }
104
+
105
+ # @!method initialize(id: nil, conversation_id: nil, max_output_tokens: nil, metadata: nil, modalities: nil, object: nil, output: nil, output_audio_format: nil, status: nil, status_details: nil, temperature: nil, usage: nil, voice: nil)
106
+ # Some parameter documentations has been truncated, see
107
+ # {OpenAI::Models::Realtime::RealtimeResponse} for more details.
108
+ #
109
+ # The response resource.
110
+ #
111
+ # @param id [String] The unique ID of the response.
112
+ #
113
+ # @param conversation_id [String] Which conversation the response is added to, determined by the `conversation`
114
+ #
115
+ # @param max_output_tokens [Integer, Symbol, :inf] Maximum number of output tokens for a single assistant response,
116
+ #
117
+ # @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
118
+ #
119
+ # @param modalities [Array<Symbol, OpenAI::Models::Realtime::RealtimeResponse::Modality>] The set of modalities the model used to respond. If there are multiple modalitie
120
+ #
121
+ # @param object [Symbol, OpenAI::Models::Realtime::RealtimeResponse::Object] The object type, must be `realtime.response`.
122
+ #
123
+ # @param output [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>] The list of output items generated by the response.
124
+ #
125
+ # @param output_audio_format [Symbol, OpenAI::Models::Realtime::RealtimeResponse::OutputAudioFormat] The format of output audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
126
+ #
127
+ # @param status [Symbol, OpenAI::Models::Realtime::RealtimeResponse::Status] The final status of the response (`completed`, `cancelled`, `failed`, or
128
+ #
129
+ # @param status_details [OpenAI::Models::Realtime::RealtimeResponseStatus] Additional details about the status.
130
+ #
131
+ # @param temperature [Float] Sampling temperature for the model, limited to [0.6, 1.2]. Defaults to 0.8.
132
+ #
133
+ # @param usage [OpenAI::Models::Realtime::RealtimeResponseUsage] Usage statistics for the Response, this will correspond to billing. A
134
+ #
135
+ # @param voice [String, Symbol, OpenAI::Models::Realtime::RealtimeResponse::Voice] The voice the model used to respond.
136
+
137
+ # Maximum number of output tokens for a single assistant response, inclusive of
138
+ # tool calls, that was used in this response.
139
+ #
140
+ # @see OpenAI::Models::Realtime::RealtimeResponse#max_output_tokens
141
+ module MaxOutputTokens
142
+ extend OpenAI::Internal::Type::Union
143
+
144
+ variant Integer
145
+
146
+ variant const: :inf
147
+
148
+ # @!method self.variants
149
+ # @return [Array(Integer, Symbol, :inf)]
150
+ end
151
+
152
+ module Modality
153
+ extend OpenAI::Internal::Type::Enum
154
+
155
+ TEXT = :text
156
+ AUDIO = :audio
157
+
158
+ # @!method self.values
159
+ # @return [Array<Symbol>]
160
+ end
161
+
162
+ # The object type, must be `realtime.response`.
163
+ #
164
+ # @see OpenAI::Models::Realtime::RealtimeResponse#object
165
+ module Object
166
+ extend OpenAI::Internal::Type::Enum
167
+
168
+ REALTIME_RESPONSE = :"realtime.response"
169
+
170
+ # @!method self.values
171
+ # @return [Array<Symbol>]
172
+ end
173
+
174
+ # The format of output audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
175
+ #
176
+ # @see OpenAI::Models::Realtime::RealtimeResponse#output_audio_format
177
+ module OutputAudioFormat
178
+ extend OpenAI::Internal::Type::Enum
179
+
180
+ PCM16 = :pcm16
181
+ G711_ULAW = :g711_ulaw
182
+ G711_ALAW = :g711_alaw
183
+
184
+ # @!method self.values
185
+ # @return [Array<Symbol>]
186
+ end
187
+
188
+ # The final status of the response (`completed`, `cancelled`, `failed`, or
189
+ # `incomplete`, `in_progress`).
190
+ #
191
+ # @see OpenAI::Models::Realtime::RealtimeResponse#status
192
+ module Status
193
+ extend OpenAI::Internal::Type::Enum
194
+
195
+ COMPLETED = :completed
196
+ CANCELLED = :cancelled
197
+ FAILED = :failed
198
+ INCOMPLETE = :incomplete
199
+ IN_PROGRESS = :in_progress
200
+
201
+ # @!method self.values
202
+ # @return [Array<Symbol>]
203
+ end
204
+
205
+ # The voice the model used to respond. Current voice options are `alloy`, `ash`,
206
+ # `ballad`, `coral`, `echo`, `sage`, `shimmer`, and `verse`.
207
+ #
208
+ # @see OpenAI::Models::Realtime::RealtimeResponse#voice
209
+ module Voice
210
+ extend OpenAI::Internal::Type::Union
211
+
212
+ variant String
213
+
214
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::ALLOY }
215
+
216
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::ASH }
217
+
218
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::BALLAD }
219
+
220
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::CORAL }
221
+
222
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::ECHO }
223
+
224
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::SAGE }
225
+
226
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::SHIMMER }
227
+
228
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::VERSE }
229
+
230
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::MARIN }
231
+
232
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::CEDAR }
233
+
234
+ # @!method self.variants
235
+ # @return [Array(String, Symbol)]
236
+
237
+ define_sorbet_constant!(:Variants) do
238
+ T.type_alias { T.any(String, OpenAI::Realtime::RealtimeResponse::Voice::TaggedSymbol) }
239
+ end
240
+
241
+ # @!group
242
+
243
+ ALLOY = :alloy
244
+ ASH = :ash
245
+ BALLAD = :ballad
246
+ CORAL = :coral
247
+ ECHO = :echo
248
+ SAGE = :sage
249
+ SHIMMER = :shimmer
250
+ VERSE = :verse
251
+ MARIN = :marin
252
+ CEDAR = :cedar
253
+
254
+ # @!endgroup
255
+ end
256
+ end
257
+ end
258
+ end
259
+ end
@@ -0,0 +1,103 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeResponseStatus < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute error
8
+ # A description of the error that caused the response to fail, populated when the
9
+ # `status` is `failed`.
10
+ #
11
+ # @return [OpenAI::Models::Realtime::RealtimeResponseStatus::Error, nil]
12
+ optional :error, -> { OpenAI::Realtime::RealtimeResponseStatus::Error }
13
+
14
+ # @!attribute reason
15
+ # The reason the Response did not complete. For a `cancelled` Response, one of
16
+ # `turn_detected` (the server VAD detected a new start of speech) or
17
+ # `client_cancelled` (the client sent a cancel event). For an `incomplete`
18
+ # Response, one of `max_output_tokens` or `content_filter` (the server-side safety
19
+ # filter activated and cut off the response).
20
+ #
21
+ # @return [Symbol, OpenAI::Models::Realtime::RealtimeResponseStatus::Reason, nil]
22
+ optional :reason, enum: -> { OpenAI::Realtime::RealtimeResponseStatus::Reason }
23
+
24
+ # @!attribute type
25
+ # The type of error that caused the response to fail, corresponding with the
26
+ # `status` field (`completed`, `cancelled`, `incomplete`, `failed`).
27
+ #
28
+ # @return [Symbol, OpenAI::Models::Realtime::RealtimeResponseStatus::Type, nil]
29
+ optional :type, enum: -> { OpenAI::Realtime::RealtimeResponseStatus::Type }
30
+
31
+ # @!method initialize(error: nil, reason: nil, type: nil)
32
+ # Some parameter documentations has been truncated, see
33
+ # {OpenAI::Models::Realtime::RealtimeResponseStatus} for more details.
34
+ #
35
+ # Additional details about the status.
36
+ #
37
+ # @param error [OpenAI::Models::Realtime::RealtimeResponseStatus::Error] A description of the error that caused the response to fail,
38
+ #
39
+ # @param reason [Symbol, OpenAI::Models::Realtime::RealtimeResponseStatus::Reason] The reason the Response did not complete. For a `cancelled` Response,
40
+ #
41
+ # @param type [Symbol, OpenAI::Models::Realtime::RealtimeResponseStatus::Type] The type of error that caused the response to fail, corresponding
42
+
43
+ # @see OpenAI::Models::Realtime::RealtimeResponseStatus#error
44
+ class Error < OpenAI::Internal::Type::BaseModel
45
+ # @!attribute code
46
+ # Error code, if any.
47
+ #
48
+ # @return [String, nil]
49
+ optional :code, String
50
+
51
+ # @!attribute type
52
+ # The type of error.
53
+ #
54
+ # @return [String, nil]
55
+ optional :type, String
56
+
57
+ # @!method initialize(code: nil, type: nil)
58
+ # A description of the error that caused the response to fail, populated when the
59
+ # `status` is `failed`.
60
+ #
61
+ # @param code [String] Error code, if any.
62
+ #
63
+ # @param type [String] The type of error.
64
+ end
65
+
66
+ # The reason the Response did not complete. For a `cancelled` Response, one of
67
+ # `turn_detected` (the server VAD detected a new start of speech) or
68
+ # `client_cancelled` (the client sent a cancel event). For an `incomplete`
69
+ # Response, one of `max_output_tokens` or `content_filter` (the server-side safety
70
+ # filter activated and cut off the response).
71
+ #
72
+ # @see OpenAI::Models::Realtime::RealtimeResponseStatus#reason
73
+ module Reason
74
+ extend OpenAI::Internal::Type::Enum
75
+
76
+ TURN_DETECTED = :turn_detected
77
+ CLIENT_CANCELLED = :client_cancelled
78
+ MAX_OUTPUT_TOKENS = :max_output_tokens
79
+ CONTENT_FILTER = :content_filter
80
+
81
+ # @!method self.values
82
+ # @return [Array<Symbol>]
83
+ end
84
+
85
+ # The type of error that caused the response to fail, corresponding with the
86
+ # `status` field (`completed`, `cancelled`, `incomplete`, `failed`).
87
+ #
88
+ # @see OpenAI::Models::Realtime::RealtimeResponseStatus#type
89
+ module Type
90
+ extend OpenAI::Internal::Type::Enum
91
+
92
+ COMPLETED = :completed
93
+ CANCELLED = :cancelled
94
+ INCOMPLETE = :incomplete
95
+ FAILED = :failed
96
+
97
+ # @!method self.values
98
+ # @return [Array<Symbol>]
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeResponseUsage < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute input_token_details
8
+ # Details about the input tokens used in the Response.
9
+ #
10
+ # @return [OpenAI::Models::Realtime::RealtimeResponseUsageInputTokenDetails, nil]
11
+ optional :input_token_details, -> { OpenAI::Realtime::RealtimeResponseUsageInputTokenDetails }
12
+
13
+ # @!attribute input_tokens
14
+ # The number of input tokens used in the Response, including text and audio
15
+ # tokens.
16
+ #
17
+ # @return [Integer, nil]
18
+ optional :input_tokens, Integer
19
+
20
+ # @!attribute output_token_details
21
+ # Details about the output tokens used in the Response.
22
+ #
23
+ # @return [OpenAI::Models::Realtime::RealtimeResponseUsageOutputTokenDetails, nil]
24
+ optional :output_token_details, -> { OpenAI::Realtime::RealtimeResponseUsageOutputTokenDetails }
25
+
26
+ # @!attribute output_tokens
27
+ # The number of output tokens sent in the Response, including text and audio
28
+ # tokens.
29
+ #
30
+ # @return [Integer, nil]
31
+ optional :output_tokens, Integer
32
+
33
+ # @!attribute total_tokens
34
+ # The total number of tokens in the Response including input and output text and
35
+ # audio tokens.
36
+ #
37
+ # @return [Integer, nil]
38
+ optional :total_tokens, Integer
39
+
40
+ # @!method initialize(input_token_details: nil, input_tokens: nil, output_token_details: nil, output_tokens: nil, total_tokens: nil)
41
+ # Some parameter documentations has been truncated, see
42
+ # {OpenAI::Models::Realtime::RealtimeResponseUsage} for more details.
43
+ #
44
+ # Usage statistics for the Response, this will correspond to billing. A Realtime
45
+ # API session will maintain a conversation context and append new Items to the
46
+ # Conversation, thus output from previous turns (text and audio tokens) will
47
+ # become the input for later turns.
48
+ #
49
+ # @param input_token_details [OpenAI::Models::Realtime::RealtimeResponseUsageInputTokenDetails] Details about the input tokens used in the Response.
50
+ #
51
+ # @param input_tokens [Integer] The number of input tokens used in the Response, including text and
52
+ #
53
+ # @param output_token_details [OpenAI::Models::Realtime::RealtimeResponseUsageOutputTokenDetails] Details about the output tokens used in the Response.
54
+ #
55
+ # @param output_tokens [Integer] The number of output tokens sent in the Response, including text and
56
+ #
57
+ # @param total_tokens [Integer] The total number of tokens in the Response including input and output
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeResponseUsageInputTokenDetails < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute audio_tokens
8
+ # The number of audio tokens used in the Response.
9
+ #
10
+ # @return [Integer, nil]
11
+ optional :audio_tokens, Integer
12
+
13
+ # @!attribute cached_tokens
14
+ # The number of cached tokens used in the Response.
15
+ #
16
+ # @return [Integer, nil]
17
+ optional :cached_tokens, Integer
18
+
19
+ # @!attribute text_tokens
20
+ # The number of text tokens used in the Response.
21
+ #
22
+ # @return [Integer, nil]
23
+ optional :text_tokens, Integer
24
+
25
+ # @!method initialize(audio_tokens: nil, cached_tokens: nil, text_tokens: nil)
26
+ # Details about the input tokens used in the Response.
27
+ #
28
+ # @param audio_tokens [Integer] The number of audio tokens used in the Response.
29
+ #
30
+ # @param cached_tokens [Integer] The number of cached tokens used in the Response.
31
+ #
32
+ # @param text_tokens [Integer] The number of text tokens used in the Response.
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeResponseUsageOutputTokenDetails < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute audio_tokens
8
+ # The number of audio tokens used in the Response.
9
+ #
10
+ # @return [Integer, nil]
11
+ optional :audio_tokens, Integer
12
+
13
+ # @!attribute text_tokens
14
+ # The number of text tokens used in the Response.
15
+ #
16
+ # @return [Integer, nil]
17
+ optional :text_tokens, Integer
18
+
19
+ # @!method initialize(audio_tokens: nil, text_tokens: nil)
20
+ # Details about the output tokens used in the Response.
21
+ #
22
+ # @param audio_tokens [Integer] The number of audio tokens used in the Response.
23
+ #
24
+ # @param text_tokens [Integer] The number of text tokens used in the Response.
25
+ end
26
+ end
27
+ end
28
+ end