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,259 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeTranscriptionSessionAudioInputTurnDetection < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Whether or not to automatically generate a response when a VAD stop event
16
+ # occurs.
17
+ sig { returns(T.nilable(T::Boolean)) }
18
+ attr_reader :create_response
19
+
20
+ sig { params(create_response: T::Boolean).void }
21
+ attr_writer :create_response
22
+
23
+ # Used only for `semantic_vad` mode. The eagerness of the model to respond. `low`
24
+ # will wait longer for the user to continue speaking, `high` will respond more
25
+ # quickly. `auto` is the default and is equivalent to `medium`.
26
+ sig do
27
+ returns(
28
+ T.nilable(
29
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Eagerness::OrSymbol
30
+ )
31
+ )
32
+ end
33
+ attr_reader :eagerness
34
+
35
+ sig do
36
+ params(
37
+ eagerness:
38
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Eagerness::OrSymbol
39
+ ).void
40
+ end
41
+ attr_writer :eagerness
42
+
43
+ # Optional idle timeout after which turn detection will auto-timeout when no
44
+ # additional audio is received.
45
+ sig { returns(T.nilable(Integer)) }
46
+ attr_accessor :idle_timeout_ms
47
+
48
+ # Whether or not to automatically interrupt any ongoing response with output to
49
+ # the default conversation (i.e. `conversation` of `auto`) when a VAD start event
50
+ # occurs.
51
+ sig { returns(T.nilable(T::Boolean)) }
52
+ attr_reader :interrupt_response
53
+
54
+ sig { params(interrupt_response: T::Boolean).void }
55
+ attr_writer :interrupt_response
56
+
57
+ # Used only for `server_vad` mode. Amount of audio to include before the VAD
58
+ # detected speech (in milliseconds). Defaults to 300ms.
59
+ sig { returns(T.nilable(Integer)) }
60
+ attr_reader :prefix_padding_ms
61
+
62
+ sig { params(prefix_padding_ms: Integer).void }
63
+ attr_writer :prefix_padding_ms
64
+
65
+ # Used only for `server_vad` mode. Duration of silence to detect speech stop (in
66
+ # milliseconds). Defaults to 500ms. With shorter values the model will respond
67
+ # more quickly, but may jump in on short pauses from the user.
68
+ sig { returns(T.nilable(Integer)) }
69
+ attr_reader :silence_duration_ms
70
+
71
+ sig { params(silence_duration_ms: Integer).void }
72
+ attr_writer :silence_duration_ms
73
+
74
+ # Used only for `server_vad` mode. Activation threshold for VAD (0.0 to 1.0), this
75
+ # defaults to 0.5. A higher threshold will require louder audio to activate the
76
+ # model, and thus might perform better in noisy environments.
77
+ sig { returns(T.nilable(Float)) }
78
+ attr_reader :threshold
79
+
80
+ sig { params(threshold: Float).void }
81
+ attr_writer :threshold
82
+
83
+ # Type of turn detection.
84
+ sig do
85
+ returns(
86
+ T.nilable(
87
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Type::OrSymbol
88
+ )
89
+ )
90
+ end
91
+ attr_reader :type
92
+
93
+ sig do
94
+ params(
95
+ type:
96
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Type::OrSymbol
97
+ ).void
98
+ end
99
+ attr_writer :type
100
+
101
+ # Configuration for turn detection, ether Server VAD or Semantic VAD. This can be
102
+ # set to `null` to turn off, in which case the client must manually trigger model
103
+ # response. Server VAD means that the model will detect the start and end of
104
+ # speech based on audio volume and respond at the end of user speech. Semantic VAD
105
+ # is more advanced and uses a turn detection model (in conjunction with VAD) to
106
+ # semantically estimate whether the user has finished speaking, then dynamically
107
+ # sets a timeout based on this probability. For example, if user audio trails off
108
+ # with "uhhm", the model will score a low probability of turn end and wait longer
109
+ # for the user to continue speaking. This can be useful for more natural
110
+ # conversations, but may have a higher latency.
111
+ sig do
112
+ params(
113
+ create_response: T::Boolean,
114
+ eagerness:
115
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Eagerness::OrSymbol,
116
+ idle_timeout_ms: T.nilable(Integer),
117
+ interrupt_response: T::Boolean,
118
+ prefix_padding_ms: Integer,
119
+ silence_duration_ms: Integer,
120
+ threshold: Float,
121
+ type:
122
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Type::OrSymbol
123
+ ).returns(T.attached_class)
124
+ end
125
+ def self.new(
126
+ # Whether or not to automatically generate a response when a VAD stop event
127
+ # occurs.
128
+ create_response: nil,
129
+ # Used only for `semantic_vad` mode. The eagerness of the model to respond. `low`
130
+ # will wait longer for the user to continue speaking, `high` will respond more
131
+ # quickly. `auto` is the default and is equivalent to `medium`.
132
+ eagerness: nil,
133
+ # Optional idle timeout after which turn detection will auto-timeout when no
134
+ # additional audio is received.
135
+ idle_timeout_ms: nil,
136
+ # Whether or not to automatically interrupt any ongoing response with output to
137
+ # the default conversation (i.e. `conversation` of `auto`) when a VAD start event
138
+ # occurs.
139
+ interrupt_response: nil,
140
+ # Used only for `server_vad` mode. Amount of audio to include before the VAD
141
+ # detected speech (in milliseconds). Defaults to 300ms.
142
+ prefix_padding_ms: nil,
143
+ # Used only for `server_vad` mode. Duration of silence to detect speech stop (in
144
+ # milliseconds). Defaults to 500ms. With shorter values the model will respond
145
+ # more quickly, but may jump in on short pauses from the user.
146
+ silence_duration_ms: nil,
147
+ # Used only for `server_vad` mode. Activation threshold for VAD (0.0 to 1.0), this
148
+ # defaults to 0.5. A higher threshold will require louder audio to activate the
149
+ # model, and thus might perform better in noisy environments.
150
+ threshold: nil,
151
+ # Type of turn detection.
152
+ type: nil
153
+ )
154
+ end
155
+
156
+ sig do
157
+ override.returns(
158
+ {
159
+ create_response: T::Boolean,
160
+ eagerness:
161
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Eagerness::OrSymbol,
162
+ idle_timeout_ms: T.nilable(Integer),
163
+ interrupt_response: T::Boolean,
164
+ prefix_padding_ms: Integer,
165
+ silence_duration_ms: Integer,
166
+ threshold: Float,
167
+ type:
168
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Type::OrSymbol
169
+ }
170
+ )
171
+ end
172
+ def to_hash
173
+ end
174
+
175
+ # Used only for `semantic_vad` mode. The eagerness of the model to respond. `low`
176
+ # will wait longer for the user to continue speaking, `high` will respond more
177
+ # quickly. `auto` is the default and is equivalent to `medium`.
178
+ module Eagerness
179
+ extend OpenAI::Internal::Type::Enum
180
+
181
+ TaggedSymbol =
182
+ T.type_alias do
183
+ T.all(
184
+ Symbol,
185
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Eagerness
186
+ )
187
+ end
188
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
189
+
190
+ LOW =
191
+ T.let(
192
+ :low,
193
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Eagerness::TaggedSymbol
194
+ )
195
+ MEDIUM =
196
+ T.let(
197
+ :medium,
198
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Eagerness::TaggedSymbol
199
+ )
200
+ HIGH =
201
+ T.let(
202
+ :high,
203
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Eagerness::TaggedSymbol
204
+ )
205
+ AUTO =
206
+ T.let(
207
+ :auto,
208
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Eagerness::TaggedSymbol
209
+ )
210
+
211
+ sig do
212
+ override.returns(
213
+ T::Array[
214
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Eagerness::TaggedSymbol
215
+ ]
216
+ )
217
+ end
218
+ def self.values
219
+ end
220
+ end
221
+
222
+ # Type of turn detection.
223
+ module Type
224
+ extend OpenAI::Internal::Type::Enum
225
+
226
+ TaggedSymbol =
227
+ T.type_alias do
228
+ T.all(
229
+ Symbol,
230
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Type
231
+ )
232
+ end
233
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
234
+
235
+ SERVER_VAD =
236
+ T.let(
237
+ :server_vad,
238
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Type::TaggedSymbol
239
+ )
240
+ SEMANTIC_VAD =
241
+ T.let(
242
+ :semantic_vad,
243
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Type::TaggedSymbol
244
+ )
245
+
246
+ sig do
247
+ override.returns(
248
+ T::Array[
249
+ OpenAI::Realtime::RealtimeTranscriptionSessionAudioInputTurnDetection::Type::TaggedSymbol
250
+ ]
251
+ )
252
+ end
253
+ def self.values
254
+ end
255
+ end
256
+ end
257
+ end
258
+ end
259
+ end
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ RealtimeTranscriptionSessionClientSecret =
6
+ Realtime::RealtimeTranscriptionSessionClientSecret
7
+
8
+ module Realtime
9
+ class RealtimeTranscriptionSessionClientSecret < OpenAI::Internal::Type::BaseModel
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ OpenAI::Realtime::RealtimeTranscriptionSessionClientSecret,
14
+ OpenAI::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # Timestamp for when the token expires. Currently, all tokens expire after one
19
+ # minute.
20
+ sig { returns(Integer) }
21
+ attr_accessor :expires_at
22
+
23
+ # Ephemeral key usable in client environments to authenticate connections to the
24
+ # Realtime API. Use this in client-side environments rather than a standard API
25
+ # token, which should only be used server-side.
26
+ sig { returns(String) }
27
+ attr_accessor :value
28
+
29
+ # Ephemeral key returned by the API. Only present when the session is created on
30
+ # the server via REST API.
31
+ sig do
32
+ params(expires_at: Integer, value: String).returns(T.attached_class)
33
+ end
34
+ def self.new(
35
+ # Timestamp for when the token expires. Currently, all tokens expire after one
36
+ # minute.
37
+ expires_at:,
38
+ # Ephemeral key usable in client environments to authenticate connections to the
39
+ # Realtime API. Use this in client-side environments rather than a standard API
40
+ # token, which should only be used server-side.
41
+ value:
42
+ )
43
+ end
44
+
45
+ sig { override.returns({ expires_at: Integer, value: String }) }
46
+ def to_hash
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end