openai 0.22.1 → 0.23.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 (158) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/realtime/audio_transcription.rb +60 -0
  5. data/lib/openai/models/realtime/client_secret_create_params.rb +18 -9
  6. data/lib/openai/models/realtime/client_secret_create_response.rb +11 -250
  7. data/lib/openai/models/realtime/conversation_item.rb +1 -1
  8. data/lib/openai/models/realtime/conversation_item_added.rb +14 -1
  9. data/lib/openai/models/realtime/conversation_item_done.rb +3 -0
  10. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +10 -8
  11. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +14 -5
  12. data/lib/openai/models/realtime/conversation_item_truncate_event.rb +2 -2
  13. data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +10 -5
  14. data/lib/openai/models/realtime/models.rb +58 -0
  15. data/lib/openai/models/realtime/noise_reduction_type.rb +20 -0
  16. data/lib/openai/models/realtime/realtime_audio_config.rb +6 -427
  17. data/lib/openai/models/realtime/realtime_audio_config_input.rb +89 -0
  18. data/lib/openai/models/realtime/realtime_audio_config_output.rb +100 -0
  19. data/lib/openai/models/realtime/realtime_audio_formats.rb +121 -0
  20. data/lib/openai/models/realtime/realtime_audio_input_turn_detection.rb +131 -0
  21. data/lib/openai/models/realtime/realtime_client_event.rb +31 -23
  22. data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +43 -10
  23. data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +16 -7
  24. data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +15 -7
  25. data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +18 -6
  26. data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +62 -13
  27. data/lib/openai/models/realtime/realtime_response.rb +117 -107
  28. data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +100 -0
  29. data/lib/openai/models/realtime/realtime_response_create_mcp_tool.rb +310 -0
  30. data/lib/openai/models/realtime/realtime_response_create_params.rb +225 -0
  31. data/lib/openai/models/realtime/realtime_response_status.rb +1 -1
  32. data/lib/openai/models/realtime/realtime_response_usage.rb +5 -2
  33. data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +58 -8
  34. data/lib/openai/models/realtime/realtime_server_event.rb +21 -5
  35. data/lib/openai/models/realtime/realtime_session.rb +9 -125
  36. data/lib/openai/models/realtime/realtime_session_client_secret.rb +36 -0
  37. data/lib/openai/models/realtime/realtime_session_create_request.rb +50 -71
  38. data/lib/openai/models/realtime/realtime_session_create_response.rb +621 -219
  39. data/lib/openai/models/realtime/realtime_tools_config_union.rb +2 -53
  40. data/lib/openai/models/realtime/realtime_tracing_config.rb +7 -6
  41. data/lib/openai/models/realtime/realtime_transcription_session_audio.rb +19 -0
  42. data/lib/openai/models/realtime/realtime_transcription_session_audio_input.rb +90 -0
  43. data/lib/openai/models/realtime/realtime_transcription_session_audio_input_turn_detection.rb +131 -0
  44. data/lib/openai/models/realtime/realtime_transcription_session_client_secret.rb +38 -0
  45. data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +12 -270
  46. data/lib/openai/models/realtime/realtime_transcription_session_create_response.rb +78 -0
  47. data/lib/openai/models/realtime/realtime_transcription_session_input_audio_transcription.rb +66 -0
  48. data/lib/openai/models/realtime/realtime_transcription_session_turn_detection.rb +57 -0
  49. data/lib/openai/models/realtime/realtime_truncation.rb +8 -40
  50. data/lib/openai/models/realtime/realtime_truncation_retention_ratio.rb +34 -0
  51. data/lib/openai/models/realtime/response_cancel_event.rb +3 -1
  52. data/lib/openai/models/realtime/response_create_event.rb +18 -348
  53. data/lib/openai/models/realtime/response_done_event.rb +7 -0
  54. data/lib/openai/models/realtime/session_created_event.rb +20 -4
  55. data/lib/openai/models/realtime/session_update_event.rb +36 -12
  56. data/lib/openai/models/realtime/session_updated_event.rb +20 -4
  57. data/lib/openai/models/realtime/transcription_session_created.rb +8 -243
  58. data/lib/openai/models/realtime/transcription_session_update.rb +179 -3
  59. data/lib/openai/models/realtime/transcription_session_updated_event.rb +8 -243
  60. data/lib/openai/resources/realtime/client_secrets.rb +2 -3
  61. data/lib/openai/version.rb +1 -1
  62. data/lib/openai.rb +19 -1
  63. data/rbi/openai/models/realtime/audio_transcription.rbi +132 -0
  64. data/rbi/openai/models/realtime/client_secret_create_params.rbi +25 -11
  65. data/rbi/openai/models/realtime/client_secret_create_response.rbi +2 -587
  66. data/rbi/openai/models/realtime/conversation_item_added.rbi +14 -1
  67. data/rbi/openai/models/realtime/conversation_item_done.rbi +3 -0
  68. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +11 -8
  69. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +15 -5
  70. data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +2 -2
  71. data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +10 -5
  72. data/rbi/openai/models/realtime/models.rbi +97 -0
  73. data/rbi/openai/models/realtime/noise_reduction_type.rbi +31 -0
  74. data/rbi/openai/models/realtime/realtime_audio_config.rbi +8 -956
  75. data/rbi/openai/models/realtime/realtime_audio_config_input.rbi +221 -0
  76. data/rbi/openai/models/realtime/realtime_audio_config_output.rbi +222 -0
  77. data/rbi/openai/models/realtime/realtime_audio_formats.rbi +329 -0
  78. data/rbi/openai/models/realtime/realtime_audio_input_turn_detection.rbi +262 -0
  79. data/rbi/openai/models/realtime/realtime_conversation_item_assistant_message.rbi +51 -10
  80. data/rbi/openai/models/realtime/realtime_conversation_item_function_call.rbi +16 -7
  81. data/rbi/openai/models/realtime/realtime_conversation_item_function_call_output.rbi +14 -7
  82. data/rbi/openai/models/realtime/realtime_conversation_item_system_message.rbi +16 -6
  83. data/rbi/openai/models/realtime/realtime_conversation_item_user_message.rbi +110 -12
  84. data/rbi/openai/models/realtime/realtime_response.rbi +287 -212
  85. data/rbi/openai/models/realtime/realtime_response_create_audio_output.rbi +250 -0
  86. data/rbi/openai/models/realtime/realtime_response_create_mcp_tool.rbi +616 -0
  87. data/rbi/openai/models/realtime/realtime_response_create_params.rbi +529 -0
  88. data/rbi/openai/models/realtime/realtime_response_usage.rbi +8 -2
  89. data/rbi/openai/models/realtime/realtime_response_usage_input_token_details.rbi +106 -7
  90. data/rbi/openai/models/realtime/realtime_server_event.rbi +4 -1
  91. data/rbi/openai/models/realtime/realtime_session.rbi +12 -262
  92. data/rbi/openai/models/realtime/realtime_session_client_secret.rbi +49 -0
  93. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +112 -133
  94. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +1229 -405
  95. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +1 -117
  96. data/rbi/openai/models/realtime/realtime_tracing_config.rbi +11 -10
  97. data/rbi/openai/models/realtime/realtime_transcription_session_audio.rbi +50 -0
  98. data/rbi/openai/models/realtime/realtime_transcription_session_audio_input.rbi +226 -0
  99. data/rbi/openai/models/realtime/realtime_transcription_session_audio_input_turn_detection.rbi +259 -0
  100. data/rbi/openai/models/realtime/realtime_transcription_session_client_secret.rbi +51 -0
  101. data/rbi/openai/models/realtime/realtime_transcription_session_create_request.rbi +25 -597
  102. data/rbi/openai/models/realtime/realtime_transcription_session_create_response.rbi +195 -0
  103. data/rbi/openai/models/realtime/realtime_transcription_session_input_audio_transcription.rbi +144 -0
  104. data/rbi/openai/models/realtime/realtime_transcription_session_turn_detection.rbi +94 -0
  105. data/rbi/openai/models/realtime/realtime_truncation.rbi +5 -56
  106. data/rbi/openai/models/realtime/realtime_truncation_retention_ratio.rbi +45 -0
  107. data/rbi/openai/models/realtime/response_cancel_event.rbi +3 -1
  108. data/rbi/openai/models/realtime/response_create_event.rbi +19 -786
  109. data/rbi/openai/models/realtime/response_done_event.rbi +7 -0
  110. data/rbi/openai/models/realtime/session_created_event.rbi +42 -9
  111. data/rbi/openai/models/realtime/session_update_event.rbi +57 -19
  112. data/rbi/openai/models/realtime/session_updated_event.rbi +42 -9
  113. data/rbi/openai/models/realtime/transcription_session_created.rbi +17 -591
  114. data/rbi/openai/models/realtime/transcription_session_update.rbi +425 -7
  115. data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +14 -591
  116. data/rbi/openai/resources/realtime/client_secrets.rbi +5 -3
  117. data/sig/openai/models/realtime/audio_transcription.rbs +57 -0
  118. data/sig/openai/models/realtime/client_secret_create_response.rbs +1 -251
  119. data/sig/openai/models/realtime/models.rbs +57 -0
  120. data/sig/openai/models/realtime/noise_reduction_type.rbs +16 -0
  121. data/sig/openai/models/realtime/realtime_audio_config.rbs +12 -331
  122. data/sig/openai/models/realtime/realtime_audio_config_input.rbs +72 -0
  123. data/sig/openai/models/realtime/realtime_audio_config_output.rbs +72 -0
  124. data/sig/openai/models/realtime/realtime_audio_formats.rbs +128 -0
  125. data/sig/openai/models/realtime/realtime_audio_input_turn_detection.rbs +99 -0
  126. data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +17 -2
  127. data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +30 -1
  128. data/sig/openai/models/realtime/realtime_response.rbs +103 -82
  129. data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +84 -0
  130. data/sig/openai/models/realtime/realtime_response_create_mcp_tool.rbs +218 -0
  131. data/sig/openai/models/realtime/realtime_response_create_params.rbs +148 -0
  132. data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +50 -1
  133. data/sig/openai/models/realtime/realtime_session.rbs +16 -106
  134. data/sig/openai/models/realtime/realtime_session_client_secret.rbs +20 -0
  135. data/sig/openai/models/realtime/realtime_session_create_request.rbs +27 -43
  136. data/sig/openai/models/realtime/realtime_session_create_response.rbs +389 -187
  137. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +1 -53
  138. data/sig/openai/models/realtime/realtime_transcription_session_audio.rbs +24 -0
  139. data/sig/openai/models/realtime/realtime_transcription_session_audio_input.rbs +72 -0
  140. data/sig/openai/models/realtime/realtime_transcription_session_audio_input_turn_detection.rbs +99 -0
  141. data/sig/openai/models/realtime/realtime_transcription_session_client_secret.rbs +20 -0
  142. data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +11 -203
  143. data/sig/openai/models/realtime/realtime_transcription_session_create_response.rbs +69 -0
  144. data/sig/openai/models/realtime/realtime_transcription_session_input_audio_transcription.rbs +59 -0
  145. data/sig/openai/models/realtime/realtime_transcription_session_turn_detection.rbs +47 -0
  146. data/sig/openai/models/realtime/realtime_truncation.rbs +1 -28
  147. data/sig/openai/models/realtime/realtime_truncation_retention_ratio.rbs +21 -0
  148. data/sig/openai/models/realtime/response_create_event.rbs +6 -249
  149. data/sig/openai/models/realtime/session_created_event.rbs +14 -4
  150. data/sig/openai/models/realtime/session_update_event.rbs +14 -4
  151. data/sig/openai/models/realtime/session_updated_event.rbs +14 -4
  152. data/sig/openai/models/realtime/transcription_session_created.rbs +4 -254
  153. data/sig/openai/models/realtime/transcription_session_update.rbs +154 -4
  154. data/sig/openai/models/realtime/transcription_session_updated_event.rbs +4 -254
  155. metadata +59 -5
  156. data/lib/openai/models/realtime/realtime_client_secret_config.rb +0 -64
  157. data/rbi/openai/models/realtime/realtime_client_secret_config.rbi +0 -147
  158. data/sig/openai/models/realtime/realtime_client_secret_config.rbs +0 -60
@@ -0,0 +1,218 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_response_create_mcp_tool =
5
+ {
6
+ server_label: String,
7
+ type: :mcp,
8
+ allowed_tools: OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::allowed_tools?,
9
+ authorization: String,
10
+ connector_id: OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::connector_id,
11
+ headers: ::Hash[Symbol, String]?,
12
+ require_approval: OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::require_approval?,
13
+ server_description: String,
14
+ server_url: String
15
+ }
16
+
17
+ class RealtimeResponseCreateMcpTool < OpenAI::Internal::Type::BaseModel
18
+ attr_accessor server_label: String
19
+
20
+ attr_accessor type: :mcp
21
+
22
+ attr_accessor allowed_tools: OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::allowed_tools?
23
+
24
+ attr_reader authorization: String?
25
+
26
+ def authorization=: (String) -> String
27
+
28
+ attr_reader connector_id: OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::connector_id?
29
+
30
+ def connector_id=: (
31
+ OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::connector_id
32
+ ) -> OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::connector_id
33
+
34
+ attr_accessor headers: ::Hash[Symbol, String]?
35
+
36
+ attr_accessor require_approval: OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::require_approval?
37
+
38
+ attr_reader server_description: String?
39
+
40
+ def server_description=: (String) -> String
41
+
42
+ attr_reader server_url: String?
43
+
44
+ def server_url=: (String) -> String
45
+
46
+ def initialize: (
47
+ server_label: String,
48
+ ?allowed_tools: OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::allowed_tools?,
49
+ ?authorization: String,
50
+ ?connector_id: OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::connector_id,
51
+ ?headers: ::Hash[Symbol, String]?,
52
+ ?require_approval: OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::require_approval?,
53
+ ?server_description: String,
54
+ ?server_url: String,
55
+ ?type: :mcp
56
+ ) -> void
57
+
58
+ def to_hash: -> {
59
+ server_label: String,
60
+ type: :mcp,
61
+ allowed_tools: OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::allowed_tools?,
62
+ authorization: String,
63
+ connector_id: OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::connector_id,
64
+ headers: ::Hash[Symbol, String]?,
65
+ require_approval: OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::require_approval?,
66
+ server_description: String,
67
+ server_url: String
68
+ }
69
+
70
+ type allowed_tools =
71
+ ::Array[String]
72
+ | OpenAI::Realtime::RealtimeResponseCreateMcpTool::AllowedTools::McpToolFilter
73
+
74
+ module AllowedTools
75
+ extend OpenAI::Internal::Type::Union
76
+
77
+ type mcp_tool_filter =
78
+ { read_only: bool, tool_names: ::Array[String] }
79
+
80
+ class McpToolFilter < OpenAI::Internal::Type::BaseModel
81
+ attr_reader read_only: bool?
82
+
83
+ def read_only=: (bool) -> bool
84
+
85
+ attr_reader tool_names: ::Array[String]?
86
+
87
+ def tool_names=: (::Array[String]) -> ::Array[String]
88
+
89
+ def initialize: (
90
+ ?read_only: bool,
91
+ ?tool_names: ::Array[String]
92
+ ) -> void
93
+
94
+ def to_hash: -> { read_only: bool, tool_names: ::Array[String] }
95
+ end
96
+
97
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::allowed_tools]
98
+
99
+ StringArray: OpenAI::Internal::Type::Converter
100
+ end
101
+
102
+ type connector_id =
103
+ :connector_dropbox
104
+ | :connector_gmail
105
+ | :connector_googlecalendar
106
+ | :connector_googledrive
107
+ | :connector_microsoftteams
108
+ | :connector_outlookcalendar
109
+ | :connector_outlookemail
110
+ | :connector_sharepoint
111
+
112
+ module ConnectorID
113
+ extend OpenAI::Internal::Type::Enum
114
+
115
+ CONNECTOR_DROPBOX: :connector_dropbox
116
+ CONNECTOR_GMAIL: :connector_gmail
117
+ CONNECTOR_GOOGLECALENDAR: :connector_googlecalendar
118
+ CONNECTOR_GOOGLEDRIVE: :connector_googledrive
119
+ CONNECTOR_MICROSOFTTEAMS: :connector_microsoftteams
120
+ CONNECTOR_OUTLOOKCALENDAR: :connector_outlookcalendar
121
+ CONNECTOR_OUTLOOKEMAIL: :connector_outlookemail
122
+ CONNECTOR_SHAREPOINT: :connector_sharepoint
123
+
124
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::connector_id]
125
+ end
126
+
127
+ type require_approval =
128
+ OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter
129
+ | OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::mcp_tool_approval_setting
130
+
131
+ module RequireApproval
132
+ extend OpenAI::Internal::Type::Union
133
+
134
+ type mcp_tool_approval_filter =
135
+ {
136
+ always: OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter::Always,
137
+ never: OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter::Never
138
+ }
139
+
140
+ class McpToolApprovalFilter < OpenAI::Internal::Type::BaseModel
141
+ attr_reader always: OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter::Always?
142
+
143
+ def always=: (
144
+ OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter::Always
145
+ ) -> OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter::Always
146
+
147
+ attr_reader never: OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter::Never?
148
+
149
+ def never=: (
150
+ OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter::Never
151
+ ) -> OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter::Never
152
+
153
+ def initialize: (
154
+ ?always: OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter::Always,
155
+ ?never: OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter::Never
156
+ ) -> void
157
+
158
+ def to_hash: -> {
159
+ always: OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter::Always,
160
+ never: OpenAI::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::McpToolApprovalFilter::Never
161
+ }
162
+
163
+ type always = { read_only: bool, tool_names: ::Array[String] }
164
+
165
+ class Always < OpenAI::Internal::Type::BaseModel
166
+ attr_reader read_only: bool?
167
+
168
+ def read_only=: (bool) -> bool
169
+
170
+ attr_reader tool_names: ::Array[String]?
171
+
172
+ def tool_names=: (::Array[String]) -> ::Array[String]
173
+
174
+ def initialize: (
175
+ ?read_only: bool,
176
+ ?tool_names: ::Array[String]
177
+ ) -> void
178
+
179
+ def to_hash: -> { read_only: bool, tool_names: ::Array[String] }
180
+ end
181
+
182
+ type never = { read_only: bool, tool_names: ::Array[String] }
183
+
184
+ class Never < OpenAI::Internal::Type::BaseModel
185
+ attr_reader read_only: bool?
186
+
187
+ def read_only=: (bool) -> bool
188
+
189
+ attr_reader tool_names: ::Array[String]?
190
+
191
+ def tool_names=: (::Array[String]) -> ::Array[String]
192
+
193
+ def initialize: (
194
+ ?read_only: bool,
195
+ ?tool_names: ::Array[String]
196
+ ) -> void
197
+
198
+ def to_hash: -> { read_only: bool, tool_names: ::Array[String] }
199
+ end
200
+ end
201
+
202
+ type mcp_tool_approval_setting = :always | :never
203
+
204
+ module McpToolApprovalSetting
205
+ extend OpenAI::Internal::Type::Enum
206
+
207
+ ALWAYS: :always
208
+ NEVER: :never
209
+
210
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::RequireApproval::mcp_tool_approval_setting]
211
+ end
212
+
213
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateMcpTool::require_approval]
214
+ end
215
+ end
216
+ end
217
+ end
218
+ end
@@ -0,0 +1,148 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_response_create_params =
5
+ {
6
+ audio: OpenAI::Realtime::RealtimeResponseCreateAudioOutput,
7
+ conversation: OpenAI::Models::Realtime::RealtimeResponseCreateParams::conversation,
8
+ input: ::Array[OpenAI::Models::Realtime::conversation_item],
9
+ instructions: String,
10
+ max_output_tokens: OpenAI::Models::Realtime::RealtimeResponseCreateParams::max_output_tokens,
11
+ metadata: OpenAI::Models::metadata?,
12
+ output_modalities: ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::output_modality],
13
+ prompt: OpenAI::Responses::ResponsePrompt?,
14
+ tool_choice: OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool_choice,
15
+ tools: ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool]
16
+ }
17
+
18
+ class RealtimeResponseCreateParams < OpenAI::Internal::Type::BaseModel
19
+ attr_reader audio: OpenAI::Realtime::RealtimeResponseCreateAudioOutput?
20
+
21
+ def audio=: (
22
+ OpenAI::Realtime::RealtimeResponseCreateAudioOutput
23
+ ) -> OpenAI::Realtime::RealtimeResponseCreateAudioOutput
24
+
25
+ attr_reader conversation: OpenAI::Models::Realtime::RealtimeResponseCreateParams::conversation?
26
+
27
+ def conversation=: (
28
+ OpenAI::Models::Realtime::RealtimeResponseCreateParams::conversation
29
+ ) -> OpenAI::Models::Realtime::RealtimeResponseCreateParams::conversation
30
+
31
+ attr_reader input: ::Array[OpenAI::Models::Realtime::conversation_item]?
32
+
33
+ def input=: (
34
+ ::Array[OpenAI::Models::Realtime::conversation_item]
35
+ ) -> ::Array[OpenAI::Models::Realtime::conversation_item]
36
+
37
+ attr_reader instructions: String?
38
+
39
+ def instructions=: (String) -> String
40
+
41
+ attr_reader max_output_tokens: OpenAI::Models::Realtime::RealtimeResponseCreateParams::max_output_tokens?
42
+
43
+ def max_output_tokens=: (
44
+ OpenAI::Models::Realtime::RealtimeResponseCreateParams::max_output_tokens
45
+ ) -> OpenAI::Models::Realtime::RealtimeResponseCreateParams::max_output_tokens
46
+
47
+ attr_accessor metadata: OpenAI::Models::metadata?
48
+
49
+ attr_reader output_modalities: ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::output_modality]?
50
+
51
+ def output_modalities=: (
52
+ ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::output_modality]
53
+ ) -> ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::output_modality]
54
+
55
+ attr_accessor prompt: OpenAI::Responses::ResponsePrompt?
56
+
57
+ attr_reader tool_choice: OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool_choice?
58
+
59
+ def tool_choice=: (
60
+ OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool_choice
61
+ ) -> OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool_choice
62
+
63
+ attr_reader tools: ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool]?
64
+
65
+ def tools=: (
66
+ ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool]
67
+ ) -> ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool]
68
+
69
+ def initialize: (
70
+ ?audio: OpenAI::Realtime::RealtimeResponseCreateAudioOutput,
71
+ ?conversation: OpenAI::Models::Realtime::RealtimeResponseCreateParams::conversation,
72
+ ?input: ::Array[OpenAI::Models::Realtime::conversation_item],
73
+ ?instructions: String,
74
+ ?max_output_tokens: OpenAI::Models::Realtime::RealtimeResponseCreateParams::max_output_tokens,
75
+ ?metadata: OpenAI::Models::metadata?,
76
+ ?output_modalities: ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::output_modality],
77
+ ?prompt: OpenAI::Responses::ResponsePrompt?,
78
+ ?tool_choice: OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool_choice,
79
+ ?tools: ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool]
80
+ ) -> void
81
+
82
+ def to_hash: -> {
83
+ audio: OpenAI::Realtime::RealtimeResponseCreateAudioOutput,
84
+ conversation: OpenAI::Models::Realtime::RealtimeResponseCreateParams::conversation,
85
+ input: ::Array[OpenAI::Models::Realtime::conversation_item],
86
+ instructions: String,
87
+ max_output_tokens: OpenAI::Models::Realtime::RealtimeResponseCreateParams::max_output_tokens,
88
+ metadata: OpenAI::Models::metadata?,
89
+ output_modalities: ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::output_modality],
90
+ prompt: OpenAI::Responses::ResponsePrompt?,
91
+ tool_choice: OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool_choice,
92
+ tools: ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool]
93
+ }
94
+
95
+ type conversation = String | :auto | :none
96
+
97
+ module Conversation
98
+ extend OpenAI::Internal::Type::Union
99
+
100
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::conversation]
101
+
102
+ AUTO: :auto
103
+ NONE: :none
104
+ end
105
+
106
+ type max_output_tokens = Integer | :inf
107
+
108
+ module MaxOutputTokens
109
+ extend OpenAI::Internal::Type::Union
110
+
111
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::max_output_tokens]
112
+ end
113
+
114
+ type output_modality = :text | :audio
115
+
116
+ module OutputModality
117
+ extend OpenAI::Internal::Type::Enum
118
+
119
+ TEXT: :text
120
+ AUDIO: :audio
121
+
122
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::output_modality]
123
+ end
124
+
125
+ type tool_choice =
126
+ OpenAI::Models::Responses::tool_choice_options
127
+ | OpenAI::Responses::ToolChoiceFunction
128
+ | OpenAI::Responses::ToolChoiceMcp
129
+
130
+ module ToolChoice
131
+ extend OpenAI::Internal::Type::Union
132
+
133
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool_choice]
134
+ end
135
+
136
+ type tool =
137
+ OpenAI::Realtime::Models
138
+ | OpenAI::Realtime::RealtimeResponseCreateMcpTool
139
+
140
+ module Tool
141
+ extend OpenAI::Internal::Type::Union
142
+
143
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeResponseCreateParams::tool]
144
+ end
145
+ end
146
+ end
147
+ end
148
+ end
@@ -2,7 +2,13 @@ module OpenAI
2
2
  module Models
3
3
  module Realtime
4
4
  type realtime_response_usage_input_token_details =
5
- { audio_tokens: Integer, cached_tokens: Integer, text_tokens: Integer }
5
+ {
6
+ audio_tokens: Integer,
7
+ cached_tokens: Integer,
8
+ cached_tokens_details: OpenAI::Realtime::RealtimeResponseUsageInputTokenDetails::CachedTokensDetails,
9
+ image_tokens: Integer,
10
+ text_tokens: Integer
11
+ }
6
12
 
7
13
  class RealtimeResponseUsageInputTokenDetails < OpenAI::Internal::Type::BaseModel
8
14
  attr_reader audio_tokens: Integer?
@@ -13,6 +19,16 @@ module OpenAI
13
19
 
14
20
  def cached_tokens=: (Integer) -> Integer
15
21
 
22
+ attr_reader cached_tokens_details: OpenAI::Realtime::RealtimeResponseUsageInputTokenDetails::CachedTokensDetails?
23
+
24
+ def cached_tokens_details=: (
25
+ OpenAI::Realtime::RealtimeResponseUsageInputTokenDetails::CachedTokensDetails
26
+ ) -> OpenAI::Realtime::RealtimeResponseUsageInputTokenDetails::CachedTokensDetails
27
+
28
+ attr_reader image_tokens: Integer?
29
+
30
+ def image_tokens=: (Integer) -> Integer
31
+
16
32
  attr_reader text_tokens: Integer?
17
33
 
18
34
  def text_tokens=: (Integer) -> Integer
@@ -20,14 +36,47 @@ module OpenAI
20
36
  def initialize: (
21
37
  ?audio_tokens: Integer,
22
38
  ?cached_tokens: Integer,
39
+ ?cached_tokens_details: OpenAI::Realtime::RealtimeResponseUsageInputTokenDetails::CachedTokensDetails,
40
+ ?image_tokens: Integer,
23
41
  ?text_tokens: Integer
24
42
  ) -> void
25
43
 
26
44
  def to_hash: -> {
27
45
  audio_tokens: Integer,
28
46
  cached_tokens: Integer,
47
+ cached_tokens_details: OpenAI::Realtime::RealtimeResponseUsageInputTokenDetails::CachedTokensDetails,
48
+ image_tokens: Integer,
29
49
  text_tokens: Integer
30
50
  }
51
+
52
+ type cached_tokens_details =
53
+ { audio_tokens: Integer, image_tokens: Integer, text_tokens: Integer }
54
+
55
+ class CachedTokensDetails < OpenAI::Internal::Type::BaseModel
56
+ attr_reader audio_tokens: Integer?
57
+
58
+ def audio_tokens=: (Integer) -> Integer
59
+
60
+ attr_reader image_tokens: Integer?
61
+
62
+ def image_tokens=: (Integer) -> Integer
63
+
64
+ attr_reader text_tokens: Integer?
65
+
66
+ def text_tokens=: (Integer) -> Integer
67
+
68
+ def initialize: (
69
+ ?audio_tokens: Integer,
70
+ ?image_tokens: Integer,
71
+ ?text_tokens: Integer
72
+ ) -> void
73
+
74
+ def to_hash: -> {
75
+ audio_tokens: Integer,
76
+ image_tokens: Integer,
77
+ text_tokens: Integer
78
+ }
79
+ end
31
80
  end
32
81
  end
33
82
  end
@@ -8,7 +8,7 @@ module OpenAI
8
8
  include: ::Array[OpenAI::Models::Realtime::RealtimeSession::include_]?,
9
9
  input_audio_format: OpenAI::Models::Realtime::RealtimeSession::input_audio_format,
10
10
  input_audio_noise_reduction: OpenAI::Realtime::RealtimeSession::InputAudioNoiseReduction,
11
- input_audio_transcription: OpenAI::Realtime::RealtimeSession::InputAudioTranscription?,
11
+ input_audio_transcription: OpenAI::Realtime::AudioTranscription?,
12
12
  instructions: String,
13
13
  max_response_output_tokens: OpenAI::Models::Realtime::RealtimeSession::max_response_output_tokens,
14
14
  modalities: ::Array[OpenAI::Models::Realtime::RealtimeSession::modality],
@@ -19,7 +19,7 @@ module OpenAI
19
19
  speed: Float,
20
20
  temperature: Float,
21
21
  tool_choice: String,
22
- tools: ::Array[OpenAI::Realtime::RealtimeSession::Tool],
22
+ tools: ::Array[OpenAI::Realtime::Models],
23
23
  tracing: OpenAI::Models::Realtime::RealtimeSession::tracing?,
24
24
  turn_detection: OpenAI::Realtime::RealtimeSession::TurnDetection?,
25
25
  voice: OpenAI::Models::Realtime::RealtimeSession::voice
@@ -48,7 +48,7 @@ module OpenAI
48
48
  OpenAI::Realtime::RealtimeSession::InputAudioNoiseReduction
49
49
  ) -> OpenAI::Realtime::RealtimeSession::InputAudioNoiseReduction
50
50
 
51
- attr_accessor input_audio_transcription: OpenAI::Realtime::RealtimeSession::InputAudioTranscription?
51
+ attr_accessor input_audio_transcription: OpenAI::Realtime::AudioTranscription?
52
52
 
53
53
  attr_reader instructions: String?
54
54
 
@@ -98,11 +98,11 @@ module OpenAI
98
98
 
99
99
  def tool_choice=: (String) -> String
100
100
 
101
- attr_reader tools: ::Array[OpenAI::Realtime::RealtimeSession::Tool]?
101
+ attr_reader tools: ::Array[OpenAI::Realtime::Models]?
102
102
 
103
103
  def tools=: (
104
- ::Array[OpenAI::Realtime::RealtimeSession::Tool]
105
- ) -> ::Array[OpenAI::Realtime::RealtimeSession::Tool]
104
+ ::Array[OpenAI::Realtime::Models]
105
+ ) -> ::Array[OpenAI::Realtime::Models]
106
106
 
107
107
  attr_accessor tracing: OpenAI::Models::Realtime::RealtimeSession::tracing?
108
108
 
@@ -120,7 +120,7 @@ module OpenAI
120
120
  ?include: ::Array[OpenAI::Models::Realtime::RealtimeSession::include_]?,
121
121
  ?input_audio_format: OpenAI::Models::Realtime::RealtimeSession::input_audio_format,
122
122
  ?input_audio_noise_reduction: OpenAI::Realtime::RealtimeSession::InputAudioNoiseReduction,
123
- ?input_audio_transcription: OpenAI::Realtime::RealtimeSession::InputAudioTranscription?,
123
+ ?input_audio_transcription: OpenAI::Realtime::AudioTranscription?,
124
124
  ?instructions: String,
125
125
  ?max_response_output_tokens: OpenAI::Models::Realtime::RealtimeSession::max_response_output_tokens,
126
126
  ?modalities: ::Array[OpenAI::Models::Realtime::RealtimeSession::modality],
@@ -131,7 +131,7 @@ module OpenAI
131
131
  ?speed: Float,
132
132
  ?temperature: Float,
133
133
  ?tool_choice: String,
134
- ?tools: ::Array[OpenAI::Realtime::RealtimeSession::Tool],
134
+ ?tools: ::Array[OpenAI::Realtime::Models],
135
135
  ?tracing: OpenAI::Models::Realtime::RealtimeSession::tracing?,
136
136
  ?turn_detection: OpenAI::Realtime::RealtimeSession::TurnDetection?,
137
137
  ?voice: OpenAI::Models::Realtime::RealtimeSession::voice
@@ -143,7 +143,7 @@ module OpenAI
143
143
  include: ::Array[OpenAI::Models::Realtime::RealtimeSession::include_]?,
144
144
  input_audio_format: OpenAI::Models::Realtime::RealtimeSession::input_audio_format,
145
145
  input_audio_noise_reduction: OpenAI::Realtime::RealtimeSession::InputAudioNoiseReduction,
146
- input_audio_transcription: OpenAI::Realtime::RealtimeSession::InputAudioTranscription?,
146
+ input_audio_transcription: OpenAI::Realtime::AudioTranscription?,
147
147
  instructions: String,
148
148
  max_response_output_tokens: OpenAI::Models::Realtime::RealtimeSession::max_response_output_tokens,
149
149
  modalities: ::Array[OpenAI::Models::Realtime::RealtimeSession::modality],
@@ -154,7 +154,7 @@ module OpenAI
154
154
  speed: Float,
155
155
  temperature: Float,
156
156
  tool_choice: String,
157
- tools: ::Array[OpenAI::Realtime::RealtimeSession::Tool],
157
+ tools: ::Array[OpenAI::Realtime::Models],
158
158
  tracing: OpenAI::Models::Realtime::RealtimeSession::tracing?,
159
159
  turn_detection: OpenAI::Realtime::RealtimeSession::TurnDetection?,
160
160
  voice: OpenAI::Models::Realtime::RealtimeSession::voice
@@ -183,60 +183,22 @@ module OpenAI
183
183
  end
184
184
 
185
185
  type input_audio_noise_reduction =
186
- {
187
- type: OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_
188
- }
186
+ { type: OpenAI::Models::Realtime::noise_reduction_type }
189
187
 
190
188
  class InputAudioNoiseReduction < OpenAI::Internal::Type::BaseModel
191
- attr_reader type: OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_?
189
+ attr_reader type: OpenAI::Models::Realtime::noise_reduction_type?
192
190
 
193
191
  def type=: (
194
- OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_
195
- ) -> OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_
192
+ OpenAI::Models::Realtime::noise_reduction_type
193
+ ) -> OpenAI::Models::Realtime::noise_reduction_type
196
194
 
197
195
  def initialize: (
198
- ?type: OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_
196
+ ?type: OpenAI::Models::Realtime::noise_reduction_type
199
197
  ) -> void
200
198
 
201
199
  def to_hash: -> {
202
- type: OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_
200
+ type: OpenAI::Models::Realtime::noise_reduction_type
203
201
  }
204
-
205
- type type_ = :near_field | :far_field
206
-
207
- module Type
208
- extend OpenAI::Internal::Type::Enum
209
-
210
- NEAR_FIELD: :near_field
211
- FAR_FIELD: :far_field
212
-
213
- def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::InputAudioNoiseReduction::type_]
214
- end
215
- end
216
-
217
- type input_audio_transcription =
218
- { language: String, model: String, prompt: String }
219
-
220
- class InputAudioTranscription < OpenAI::Internal::Type::BaseModel
221
- attr_reader language: String?
222
-
223
- def language=: (String) -> String
224
-
225
- attr_reader model: String?
226
-
227
- def model=: (String) -> String
228
-
229
- attr_reader prompt: String?
230
-
231
- def prompt=: (String) -> String
232
-
233
- def initialize: (
234
- ?language: String,
235
- ?model: String,
236
- ?prompt: String
237
- ) -> void
238
-
239
- def to_hash: -> { language: String, model: String, prompt: String }
240
202
  end
241
203
 
242
204
  type max_response_output_tokens = Integer | :inf
@@ -305,58 +267,6 @@ module OpenAI
305
267
  def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::output_audio_format]
306
268
  end
307
269
 
308
- type tool =
309
- {
310
- description: String,
311
- name: String,
312
- parameters: top,
313
- type: OpenAI::Models::Realtime::RealtimeSession::Tool::type_
314
- }
315
-
316
- class Tool < OpenAI::Internal::Type::BaseModel
317
- attr_reader description: String?
318
-
319
- def description=: (String) -> String
320
-
321
- attr_reader name: String?
322
-
323
- def name=: (String) -> String
324
-
325
- attr_reader parameters: top?
326
-
327
- def parameters=: (top) -> top
328
-
329
- attr_reader type: OpenAI::Models::Realtime::RealtimeSession::Tool::type_?
330
-
331
- def type=: (
332
- OpenAI::Models::Realtime::RealtimeSession::Tool::type_
333
- ) -> OpenAI::Models::Realtime::RealtimeSession::Tool::type_
334
-
335
- def initialize: (
336
- ?description: String,
337
- ?name: String,
338
- ?parameters: top,
339
- ?type: OpenAI::Models::Realtime::RealtimeSession::Tool::type_
340
- ) -> void
341
-
342
- def to_hash: -> {
343
- description: String,
344
- name: String,
345
- parameters: top,
346
- type: OpenAI::Models::Realtime::RealtimeSession::Tool::type_
347
- }
348
-
349
- type type_ = :function
350
-
351
- module Type
352
- extend OpenAI::Internal::Type::Enum
353
-
354
- FUNCTION: :function
355
-
356
- def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSession::Tool::type_]
357
- end
358
- end
359
-
360
270
  type tracing =
361
271
  :auto
362
272
  | OpenAI::Realtime::RealtimeSession::Tracing::TracingConfiguration
@@ -0,0 +1,20 @@
1
+ module OpenAI
2
+ module Models
3
+ class RealtimeSessionClientSecret = Realtime::RealtimeSessionClientSecret
4
+
5
+ module Realtime
6
+ type realtime_session_client_secret =
7
+ { expires_at: Integer, value: String }
8
+
9
+ class RealtimeSessionClientSecret < OpenAI::Internal::Type::BaseModel
10
+ attr_accessor expires_at: Integer
11
+
12
+ attr_accessor value: String
13
+
14
+ def initialize: (expires_at: Integer, value: String) -> void
15
+
16
+ def to_hash: -> { expires_at: Integer, value: String }
17
+ end
18
+ end
19
+ end
20
+ end