openai 0.61.0 → 0.62.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 (157) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +10 -1
  5. data/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +10 -1
  6. data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +10 -1
  7. data/lib/openai/models/admin/organization/usage_completions_response.rb +10 -1
  8. data/lib/openai/models/admin/organization/usage_costs_response.rb +10 -1
  9. data/lib/openai/models/admin/organization/usage_embeddings_response.rb +10 -1
  10. data/lib/openai/models/admin/organization/usage_images_response.rb +10 -1
  11. data/lib/openai/models/admin/organization/usage_moderations_response.rb +10 -1
  12. data/lib/openai/models/admin/organization/usage_vector_stores_response.rb +10 -1
  13. data/lib/openai/models/chat/chat_completion_token_logprob.rb +1 -2
  14. data/lib/openai/models/chat/completion_create_params.rb +4 -3
  15. data/lib/openai/models/image_edit_params.rb +85 -31
  16. data/lib/openai/models/image_generate_params.rb +78 -26
  17. data/lib/openai/models/image_model.rb +5 -2
  18. data/lib/openai/models/realtime/audio_transcription.rb +37 -5
  19. data/lib/openai/models/realtime/client_secret_create_response.rb +1 -2
  20. data/lib/openai/models/realtime/realtime_audio_config_input.rb +3 -0
  21. data/lib/openai/models/realtime/realtime_audio_input_turn_detection.rb +3 -0
  22. data/lib/openai/models/realtime/realtime_reasoning.rb +24 -0
  23. data/lib/openai/models/realtime/realtime_reasoning_effort.rb +22 -0
  24. data/lib/openai/models/realtime/realtime_response_create_params.rb +18 -1
  25. data/lib/openai/models/realtime/realtime_session.rb +6 -0
  26. data/lib/openai/models/realtime/realtime_session_create_request.rb +21 -1
  27. data/lib/openai/models/realtime/realtime_session_create_response.rb +41 -17
  28. data/lib/openai/models/realtime/realtime_transcription_session_audio_input.rb +3 -0
  29. data/lib/openai/models/realtime/realtime_transcription_session_audio_input_turn_detection.rb +3 -0
  30. data/lib/openai/models/realtime/realtime_transcription_session_create_response.rb +9 -5
  31. data/lib/openai/models/realtime/realtime_transcription_session_turn_detection.rb +2 -1
  32. data/lib/openai/models/realtime/realtime_translation_client_event.rb +45 -0
  33. data/lib/openai/models/realtime/realtime_translation_client_secret_create_request.rb +85 -0
  34. data/lib/openai/models/realtime/realtime_translation_client_secret_create_response.rb +42 -0
  35. data/lib/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rb +51 -0
  36. data/lib/openai/models/realtime/realtime_translation_input_transcript_delta_event.rb +55 -0
  37. data/lib/openai/models/realtime/realtime_translation_output_audio_delta_event.rb +89 -0
  38. data/lib/openai/models/realtime/realtime_translation_output_transcript_delta_event.rb +54 -0
  39. data/lib/openai/models/realtime/realtime_translation_server_event.rb +53 -0
  40. data/lib/openai/models/realtime/realtime_translation_session.rb +158 -0
  41. data/lib/openai/models/realtime/realtime_translation_session_close_event.rb +30 -0
  42. data/lib/openai/models/realtime/realtime_translation_session_closed_event.rb +28 -0
  43. data/lib/openai/models/realtime/realtime_translation_session_create_request.rb +138 -0
  44. data/lib/openai/models/realtime/realtime_translation_session_created_event.rb +38 -0
  45. data/lib/openai/models/realtime/realtime_translation_session_update_event.rb +43 -0
  46. data/lib/openai/models/realtime/realtime_translation_session_update_request.rb +129 -0
  47. data/lib/openai/models/realtime/realtime_translation_session_updated_event.rb +37 -0
  48. data/lib/openai/models/realtime/transcription_session_updated_event.rb +1 -2
  49. data/lib/openai/models/responses/response.rb +4 -3
  50. data/lib/openai/models/responses/response_create_params.rb +4 -3
  51. data/lib/openai/models/responses/response_includable.rb +2 -0
  52. data/lib/openai/models/responses/response_text_delta_event.rb +2 -2
  53. data/lib/openai/models/responses/response_text_done_event.rb +2 -2
  54. data/lib/openai/models/responses/responses_client_event.rb +4 -3
  55. data/lib/openai/models/responses/tool.rb +81 -16
  56. data/lib/openai/resources/chat/completions.rb +2 -2
  57. data/lib/openai/resources/images.rb +6 -6
  58. data/lib/openai/resources/realtime/calls.rb +5 -1
  59. data/lib/openai/resources/responses.rb +2 -2
  60. data/lib/openai/version.rb +1 -1
  61. data/lib/openai.rb +18 -1
  62. data/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi +11 -1
  63. data/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi +11 -1
  64. data/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi +11 -1
  65. data/rbi/openai/models/admin/organization/usage_completions_response.rbi +11 -1
  66. data/rbi/openai/models/admin/organization/usage_costs_response.rbi +11 -1
  67. data/rbi/openai/models/admin/organization/usage_embeddings_response.rbi +11 -1
  68. data/rbi/openai/models/admin/organization/usage_images_response.rbi +11 -1
  69. data/rbi/openai/models/admin/organization/usage_moderations_response.rbi +11 -1
  70. data/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi +11 -1
  71. data/rbi/openai/models/chat/chat_completion_token_logprob.rbi +2 -4
  72. data/rbi/openai/models/chat/completion_create_params.rbi +6 -4
  73. data/rbi/openai/models/image_edit_params.rbi +102 -45
  74. data/rbi/openai/models/image_generate_params.rbi +93 -39
  75. data/rbi/openai/models/image_model.rbi +8 -3
  76. data/rbi/openai/models/realtime/audio_transcription.rbi +85 -6
  77. data/rbi/openai/models/realtime/realtime_audio_config_input.rbi +6 -0
  78. data/rbi/openai/models/realtime/realtime_audio_input_turn_detection.rbi +3 -0
  79. data/rbi/openai/models/realtime/realtime_reasoning.rbi +54 -0
  80. data/rbi/openai/models/realtime/realtime_reasoning_effort.rbi +44 -0
  81. data/rbi/openai/models/realtime/realtime_response_create_params.rbi +26 -0
  82. data/rbi/openai/models/realtime/realtime_session.rbi +9 -0
  83. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +31 -0
  84. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +53 -32
  85. data/rbi/openai/models/realtime/realtime_transcription_session_audio_input.rbi +6 -0
  86. data/rbi/openai/models/realtime/realtime_transcription_session_audio_input_turn_detection.rbi +3 -0
  87. data/rbi/openai/models/realtime/realtime_transcription_session_create_response.rbi +13 -7
  88. data/rbi/openai/models/realtime/realtime_transcription_session_turn_detection.rbi +2 -1
  89. data/rbi/openai/models/realtime/realtime_translation_client_event.rbi +29 -0
  90. data/rbi/openai/models/realtime/realtime_translation_client_secret_create_request.rbi +193 -0
  91. data/rbi/openai/models/realtime/realtime_translation_client_secret_create_response.rbi +69 -0
  92. data/rbi/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rbi +69 -0
  93. data/rbi/openai/models/realtime/realtime_translation_input_transcript_delta_event.rbi +77 -0
  94. data/rbi/openai/models/realtime/realtime_translation_output_audio_delta_event.rbi +148 -0
  95. data/rbi/openai/models/realtime/realtime_translation_output_transcript_delta_event.rbi +76 -0
  96. data/rbi/openai/models/realtime/realtime_translation_server_event.rbi +33 -0
  97. data/rbi/openai/models/realtime/realtime_translation_session.rbi +339 -0
  98. data/rbi/openai/models/realtime/realtime_translation_session_close_event.rbi +44 -0
  99. data/rbi/openai/models/realtime/realtime_translation_session_closed_event.rbi +39 -0
  100. data/rbi/openai/models/realtime/realtime_translation_session_create_request.rbi +322 -0
  101. data/rbi/openai/models/realtime/realtime_translation_session_created_event.rbi +68 -0
  102. data/rbi/openai/models/realtime/realtime_translation_session_update_event.rbi +78 -0
  103. data/rbi/openai/models/realtime/realtime_translation_session_update_request.rbi +313 -0
  104. data/rbi/openai/models/realtime/realtime_translation_session_updated_event.rbi +67 -0
  105. data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +0 -2
  106. data/rbi/openai/models/responses/response.rbi +6 -4
  107. data/rbi/openai/models/responses/response_create_params.rbi +6 -4
  108. data/rbi/openai/models/responses/response_includable.rbi +2 -0
  109. data/rbi/openai/models/responses/response_text_delta_event.rbi +2 -2
  110. data/rbi/openai/models/responses/response_text_done_event.rbi +2 -2
  111. data/rbi/openai/models/responses/responses_client_event.rbi +6 -4
  112. data/rbi/openai/models/responses/tool.rbi +122 -27
  113. data/rbi/openai/resources/chat/completions.rbi +6 -4
  114. data/rbi/openai/resources/images.rbi +110 -44
  115. data/rbi/openai/resources/realtime/calls.rbi +7 -0
  116. data/rbi/openai/resources/responses.rbi +6 -4
  117. data/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +7 -2
  118. data/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +7 -2
  119. data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +7 -2
  120. data/sig/openai/models/admin/organization/usage_completions_response.rbs +7 -2
  121. data/sig/openai/models/admin/organization/usage_costs_response.rbs +7 -2
  122. data/sig/openai/models/admin/organization/usage_embeddings_response.rbs +7 -2
  123. data/sig/openai/models/admin/organization/usage_images_response.rbs +7 -2
  124. data/sig/openai/models/admin/organization/usage_moderations_response.rbs +7 -2
  125. data/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +7 -2
  126. data/sig/openai/models/image_edit_params.rbs +5 -4
  127. data/sig/openai/models/image_generate_params.rbs +5 -4
  128. data/sig/openai/models/image_model.rbs +11 -5
  129. data/sig/openai/models/realtime/audio_transcription.rbs +25 -0
  130. data/sig/openai/models/realtime/realtime_reasoning.rbs +24 -0
  131. data/sig/openai/models/realtime/realtime_reasoning_effort.rbs +20 -0
  132. data/sig/openai/models/realtime/realtime_response_create_params.rbs +16 -0
  133. data/sig/openai/models/realtime/realtime_session_create_request.rbs +18 -0
  134. data/sig/openai/models/realtime/realtime_session_create_response.rbs +27 -4
  135. data/sig/openai/models/realtime/realtime_transcription_session_create_response.rbs +4 -8
  136. data/sig/openai/models/realtime/realtime_translation_client_event.rbs +16 -0
  137. data/sig/openai/models/realtime/realtime_translation_client_secret_create_request.rbs +69 -0
  138. data/sig/openai/models/realtime/realtime_translation_client_secret_create_response.rbs +32 -0
  139. data/sig/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rbs +34 -0
  140. data/sig/openai/models/realtime/realtime_translation_input_transcript_delta_event.rbs +37 -0
  141. data/sig/openai/models/realtime/realtime_translation_output_audio_delta_event.rbs +70 -0
  142. data/sig/openai/models/realtime/realtime_translation_output_transcript_delta_event.rbs +37 -0
  143. data/sig/openai/models/realtime/realtime_translation_server_event.rbs +20 -0
  144. data/sig/openai/models/realtime/realtime_translation_session.rbs +131 -0
  145. data/sig/openai/models/realtime/realtime_translation_session_close_event.rbs +20 -0
  146. data/sig/openai/models/realtime/realtime_translation_session_closed_event.rbs +18 -0
  147. data/sig/openai/models/realtime/realtime_translation_session_create_request.rbs +120 -0
  148. data/sig/openai/models/realtime/realtime_translation_session_created_event.rbs +32 -0
  149. data/sig/openai/models/realtime/realtime_translation_session_update_event.rbs +34 -0
  150. data/sig/openai/models/realtime/realtime_translation_session_update_request.rbs +115 -0
  151. data/sig/openai/models/realtime/realtime_translation_session_updated_event.rbs +32 -0
  152. data/sig/openai/models/responses/tool.rbs +15 -5
  153. data/sig/openai/resources/realtime/calls.rbs +2 -0
  154. metadata +56 -5
  155. data/lib/openai/models/realtime/realtime_session_client_secret.rb +0 -36
  156. data/rbi/openai/models/realtime/realtime_session_client_secret.rbi +0 -49
  157. data/sig/openai/models/realtime/realtime_session_client_secret.rbs +0 -20
@@ -0,0 +1,76 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeTranslationOutputTranscriptDeltaEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::RealtimeTranslationOutputTranscriptDeltaEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Append-only transcript text for the translated output audio.
16
+ sig { returns(String) }
17
+ attr_accessor :delta
18
+
19
+ # The unique ID of the server event.
20
+ sig { returns(String) }
21
+ attr_accessor :event_id
22
+
23
+ # The event type, must be `session.output_transcript.delta`.
24
+ sig { returns(Symbol) }
25
+ attr_accessor :type
26
+
27
+ # Timing metadata for stream alignment, derived from the translation frame when
28
+ # available. It advances in 200 ms increments, but multiple transcript deltas may
29
+ # share the same `elapsed_ms`. Treat it as alignment metadata, not a unique
30
+ # transcript-delta identifier.
31
+ sig { returns(T.nilable(Integer)) }
32
+ attr_accessor :elapsed_ms
33
+
34
+ # Returned when translated transcript text is available.
35
+ #
36
+ # Transcript deltas are append-only text fragments. Clients should not insert
37
+ # unconditional spaces between deltas.
38
+ sig do
39
+ params(
40
+ delta: String,
41
+ event_id: String,
42
+ elapsed_ms: T.nilable(Integer),
43
+ type: Symbol
44
+ ).returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+ # Append-only transcript text for the translated output audio.
48
+ delta:,
49
+ # The unique ID of the server event.
50
+ event_id:,
51
+ # Timing metadata for stream alignment, derived from the translation frame when
52
+ # available. It advances in 200 ms increments, but multiple transcript deltas may
53
+ # share the same `elapsed_ms`. Treat it as alignment metadata, not a unique
54
+ # transcript-delta identifier.
55
+ elapsed_ms: nil,
56
+ # The event type, must be `session.output_transcript.delta`.
57
+ type: :"session.output_transcript.delta"
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ delta: String,
65
+ event_id: String,
66
+ type: Symbol,
67
+ elapsed_ms: T.nilable(Integer)
68
+ }
69
+ )
70
+ end
71
+ def to_hash
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,33 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ # A Realtime translation server event.
7
+ module RealtimeTranslationServerEvent
8
+ extend OpenAI::Internal::Type::Union
9
+
10
+ Variants =
11
+ T.type_alias do
12
+ T.any(
13
+ OpenAI::Realtime::RealtimeErrorEvent,
14
+ OpenAI::Realtime::RealtimeTranslationSessionCreatedEvent,
15
+ OpenAI::Realtime::RealtimeTranslationSessionUpdatedEvent,
16
+ OpenAI::Realtime::RealtimeTranslationSessionClosedEvent,
17
+ OpenAI::Realtime::RealtimeTranslationInputTranscriptDeltaEvent,
18
+ OpenAI::Realtime::RealtimeTranslationOutputTranscriptDeltaEvent,
19
+ OpenAI::Realtime::RealtimeTranslationOutputAudioDeltaEvent
20
+ )
21
+ end
22
+
23
+ sig do
24
+ override.returns(
25
+ T::Array[OpenAI::Realtime::RealtimeTranslationServerEvent::Variants]
26
+ )
27
+ end
28
+ def self.variants
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,339 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeTranslationSession < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::RealtimeTranslationSession,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Unique identifier for the session that looks like `sess_1234567890abcdef`.
16
+ sig { returns(String) }
17
+ attr_accessor :id
18
+
19
+ # Configuration for translation input and output audio.
20
+ sig { returns(OpenAI::Realtime::RealtimeTranslationSession::Audio) }
21
+ attr_reader :audio
22
+
23
+ sig do
24
+ params(
25
+ audio: OpenAI::Realtime::RealtimeTranslationSession::Audio::OrHash
26
+ ).void
27
+ end
28
+ attr_writer :audio
29
+
30
+ # Expiration timestamp for the session, in seconds since epoch.
31
+ sig { returns(Integer) }
32
+ attr_accessor :expires_at
33
+
34
+ # The Realtime translation model used for this session. This field is set at
35
+ # session creation and cannot be changed with `session.update`.
36
+ sig { returns(String) }
37
+ attr_accessor :model
38
+
39
+ # The session type. Always `translation` for Realtime translation sessions.
40
+ sig { returns(Symbol) }
41
+ attr_accessor :type
42
+
43
+ # A Realtime translation session. Translation sessions continuously translate
44
+ # input audio into the configured output language.
45
+ sig do
46
+ params(
47
+ id: String,
48
+ audio: OpenAI::Realtime::RealtimeTranslationSession::Audio::OrHash,
49
+ expires_at: Integer,
50
+ model: String,
51
+ type: Symbol
52
+ ).returns(T.attached_class)
53
+ end
54
+ def self.new(
55
+ # Unique identifier for the session that looks like `sess_1234567890abcdef`.
56
+ id:,
57
+ # Configuration for translation input and output audio.
58
+ audio:,
59
+ # Expiration timestamp for the session, in seconds since epoch.
60
+ expires_at:,
61
+ # The Realtime translation model used for this session. This field is set at
62
+ # session creation and cannot be changed with `session.update`.
63
+ model:,
64
+ # The session type. Always `translation` for Realtime translation sessions.
65
+ type: :translation
66
+ )
67
+ end
68
+
69
+ sig do
70
+ override.returns(
71
+ {
72
+ id: String,
73
+ audio: OpenAI::Realtime::RealtimeTranslationSession::Audio,
74
+ expires_at: Integer,
75
+ model: String,
76
+ type: Symbol
77
+ }
78
+ )
79
+ end
80
+ def to_hash
81
+ end
82
+
83
+ class Audio < OpenAI::Internal::Type::BaseModel
84
+ OrHash =
85
+ T.type_alias do
86
+ T.any(
87
+ OpenAI::Realtime::RealtimeTranslationSession::Audio,
88
+ OpenAI::Internal::AnyHash
89
+ )
90
+ end
91
+
92
+ sig do
93
+ returns(
94
+ T.nilable(
95
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input
96
+ )
97
+ )
98
+ end
99
+ attr_reader :input
100
+
101
+ sig do
102
+ params(
103
+ input:
104
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input::OrHash
105
+ ).void
106
+ end
107
+ attr_writer :input
108
+
109
+ sig do
110
+ returns(
111
+ T.nilable(
112
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Output
113
+ )
114
+ )
115
+ end
116
+ attr_reader :output
117
+
118
+ sig do
119
+ params(
120
+ output:
121
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Output::OrHash
122
+ ).void
123
+ end
124
+ attr_writer :output
125
+
126
+ # Configuration for translation input and output audio.
127
+ sig do
128
+ params(
129
+ input:
130
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input::OrHash,
131
+ output:
132
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Output::OrHash
133
+ ).returns(T.attached_class)
134
+ end
135
+ def self.new(input: nil, output: nil)
136
+ end
137
+
138
+ sig do
139
+ override.returns(
140
+ {
141
+ input:
142
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input,
143
+ output:
144
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Output
145
+ }
146
+ )
147
+ end
148
+ def to_hash
149
+ end
150
+
151
+ class Input < OpenAI::Internal::Type::BaseModel
152
+ OrHash =
153
+ T.type_alias do
154
+ T.any(
155
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input,
156
+ OpenAI::Internal::AnyHash
157
+ )
158
+ end
159
+
160
+ # Optional input noise reduction.
161
+ sig do
162
+ returns(
163
+ T.nilable(
164
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input::NoiseReduction
165
+ )
166
+ )
167
+ end
168
+ attr_reader :noise_reduction
169
+
170
+ sig do
171
+ params(
172
+ noise_reduction:
173
+ T.nilable(
174
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input::NoiseReduction::OrHash
175
+ )
176
+ ).void
177
+ end
178
+ attr_writer :noise_reduction
179
+
180
+ # Optional source-language transcription. When configured, the server emits
181
+ # `session.input_transcript.delta` events. Translation itself still runs from the
182
+ # input audio stream.
183
+ sig do
184
+ returns(
185
+ T.nilable(
186
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input::Transcription
187
+ )
188
+ )
189
+ end
190
+ attr_reader :transcription
191
+
192
+ sig do
193
+ params(
194
+ transcription:
195
+ T.nilable(
196
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input::Transcription::OrHash
197
+ )
198
+ ).void
199
+ end
200
+ attr_writer :transcription
201
+
202
+ sig do
203
+ params(
204
+ noise_reduction:
205
+ T.nilable(
206
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input::NoiseReduction::OrHash
207
+ ),
208
+ transcription:
209
+ T.nilable(
210
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input::Transcription::OrHash
211
+ )
212
+ ).returns(T.attached_class)
213
+ end
214
+ def self.new(
215
+ # Optional input noise reduction.
216
+ noise_reduction: nil,
217
+ # Optional source-language transcription. When configured, the server emits
218
+ # `session.input_transcript.delta` events. Translation itself still runs from the
219
+ # input audio stream.
220
+ transcription: nil
221
+ )
222
+ end
223
+
224
+ sig do
225
+ override.returns(
226
+ {
227
+ noise_reduction:
228
+ T.nilable(
229
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input::NoiseReduction
230
+ ),
231
+ transcription:
232
+ T.nilable(
233
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input::Transcription
234
+ )
235
+ }
236
+ )
237
+ end
238
+ def to_hash
239
+ end
240
+
241
+ class NoiseReduction < OpenAI::Internal::Type::BaseModel
242
+ OrHash =
243
+ T.type_alias do
244
+ T.any(
245
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input::NoiseReduction,
246
+ OpenAI::Internal::AnyHash
247
+ )
248
+ end
249
+
250
+ # Type of noise reduction. `near_field` is for close-talking microphones such as
251
+ # headphones, `far_field` is for far-field microphones such as laptop or
252
+ # conference room microphones.
253
+ sig { returns(OpenAI::Realtime::NoiseReductionType::OrSymbol) }
254
+ attr_accessor :type
255
+
256
+ # Optional input noise reduction.
257
+ sig do
258
+ params(
259
+ type: OpenAI::Realtime::NoiseReductionType::OrSymbol
260
+ ).returns(T.attached_class)
261
+ end
262
+ def self.new(
263
+ # Type of noise reduction. `near_field` is for close-talking microphones such as
264
+ # headphones, `far_field` is for far-field microphones such as laptop or
265
+ # conference room microphones.
266
+ type:
267
+ )
268
+ end
269
+
270
+ sig do
271
+ override.returns(
272
+ { type: OpenAI::Realtime::NoiseReductionType::OrSymbol }
273
+ )
274
+ end
275
+ def to_hash
276
+ end
277
+ end
278
+
279
+ class Transcription < OpenAI::Internal::Type::BaseModel
280
+ OrHash =
281
+ T.type_alias do
282
+ T.any(
283
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Input::Transcription,
284
+ OpenAI::Internal::AnyHash
285
+ )
286
+ end
287
+
288
+ # The transcription model used for source transcript deltas.
289
+ sig { returns(String) }
290
+ attr_accessor :model
291
+
292
+ # Optional source-language transcription. When configured, the server emits
293
+ # `session.input_transcript.delta` events. Translation itself still runs from the
294
+ # input audio stream.
295
+ sig { params(model: String).returns(T.attached_class) }
296
+ def self.new(
297
+ # The transcription model used for source transcript deltas.
298
+ model:
299
+ )
300
+ end
301
+
302
+ sig { override.returns({ model: String }) }
303
+ def to_hash
304
+ end
305
+ end
306
+ end
307
+
308
+ class Output < OpenAI::Internal::Type::BaseModel
309
+ OrHash =
310
+ T.type_alias do
311
+ T.any(
312
+ OpenAI::Realtime::RealtimeTranslationSession::Audio::Output,
313
+ OpenAI::Internal::AnyHash
314
+ )
315
+ end
316
+
317
+ # Target language for translated output audio and transcript deltas.
318
+ sig { returns(T.nilable(String)) }
319
+ attr_reader :language
320
+
321
+ sig { params(language: String).void }
322
+ attr_writer :language
323
+
324
+ sig { params(language: String).returns(T.attached_class) }
325
+ def self.new(
326
+ # Target language for translated output audio and transcript deltas.
327
+ language: nil
328
+ )
329
+ end
330
+
331
+ sig { override.returns({ language: String }) }
332
+ def to_hash
333
+ end
334
+ end
335
+ end
336
+ end
337
+ end
338
+ end
339
+ end
@@ -0,0 +1,44 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeTranslationSessionCloseEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::RealtimeTranslationSessionCloseEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The event type, must be `session.close`.
16
+ sig { returns(Symbol) }
17
+ attr_accessor :type
18
+
19
+ # Optional client-generated ID used to identify this event.
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :event_id
22
+
23
+ sig { params(event_id: String).void }
24
+ attr_writer :event_id
25
+
26
+ # Gracefully close the realtime translation session. The server flushes pending
27
+ # input audio and emits any remaining translated output before closing the
28
+ # session.
29
+ sig { params(event_id: String, type: Symbol).returns(T.attached_class) }
30
+ def self.new(
31
+ # Optional client-generated ID used to identify this event.
32
+ event_id: nil,
33
+ # The event type, must be `session.close`.
34
+ type: :"session.close"
35
+ )
36
+ end
37
+
38
+ sig { override.returns({ type: Symbol, event_id: String }) }
39
+ def to_hash
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,39 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeTranslationSessionClosedEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::RealtimeTranslationSessionClosedEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The unique ID of the server event.
16
+ sig { returns(String) }
17
+ attr_accessor :event_id
18
+
19
+ # The event type, must be `session.closed`.
20
+ sig { returns(Symbol) }
21
+ attr_accessor :type
22
+
23
+ # Returned when a realtime translation session is closed.
24
+ sig { params(event_id: String, type: Symbol).returns(T.attached_class) }
25
+ def self.new(
26
+ # The unique ID of the server event.
27
+ event_id:,
28
+ # The event type, must be `session.closed`.
29
+ type: :"session.closed"
30
+ )
31
+ end
32
+
33
+ sig { override.returns({ event_id: String, type: Symbol }) }
34
+ def to_hash
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end