openai 0.71.0 → 0.73.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 (129) 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/organization_spend_limit.rb +151 -0
  5. data/lib/openai/models/admin/organization/organization_spend_limit_deleted.rb +33 -0
  6. data/lib/openai/models/admin/organization/projects/project_spend_limit.rb +155 -0
  7. data/lib/openai/models/admin/organization/projects/project_spend_limit_deleted.rb +35 -0
  8. data/lib/openai/models/admin/organization/projects/spend_limit_delete_params.rb +26 -0
  9. data/lib/openai/models/admin/organization/projects/spend_limit_retrieve_params.rb +26 -0
  10. data/lib/openai/models/admin/organization/projects/spend_limit_update_params.rb +77 -0
  11. data/lib/openai/models/admin/organization/spend_limit_delete_params.rb +18 -0
  12. data/lib/openai/models/admin/organization/spend_limit_retrieve_params.rb +18 -0
  13. data/lib/openai/models/admin/organization/spend_limit_update_params.rb +67 -0
  14. data/lib/openai/models/audio/transcription.rb +10 -1
  15. data/lib/openai/models/audio/transcription_create_params.rb +24 -5
  16. data/lib/openai/models/audio/transcription_language.rb +20 -0
  17. data/lib/openai/models/audio/transcription_text_done_event.rb +10 -1
  18. data/lib/openai/models/audio_model.rb +1 -0
  19. data/lib/openai/models/beta/beta_response.rb +12 -6
  20. data/lib/openai/models/beta/beta_response_error.rb +1 -0
  21. data/lib/openai/models/beta/beta_response_text_config.rb +4 -2
  22. data/lib/openai/models/beta/beta_responses_client_event.rb +12 -6
  23. data/lib/openai/models/beta/response_create_params.rb +12 -6
  24. data/lib/openai/models/beta/responses/input_token_count_params.rb +12 -4
  25. data/lib/openai/models/chat/completion_create_params.rb +8 -6
  26. data/lib/openai/models/realtime/audio_transcription.rb +35 -8
  27. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +10 -1
  28. data/lib/openai/models/reasoning.rb +8 -2
  29. data/lib/openai/models/responses/input_token_count_params.rb +4 -2
  30. data/lib/openai/models/responses/response.rb +4 -4
  31. data/lib/openai/models/responses/response_create_params.rb +4 -4
  32. data/lib/openai/models/responses/response_error.rb +1 -0
  33. data/lib/openai/models/responses/response_text_config.rb +4 -2
  34. data/lib/openai/models/responses/responses_client_event.rb +4 -4
  35. data/lib/openai/models/webhooks/live_call_incoming_webhook_event.rb +121 -0
  36. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +6 -3
  37. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +9 -2
  38. data/lib/openai/resources/admin/organization/projects/spend_limit.rb +95 -0
  39. data/lib/openai/resources/admin/organization/projects.rb +4 -0
  40. data/lib/openai/resources/admin/organization/spend_limit.rb +86 -0
  41. data/lib/openai/resources/admin/organization.rb +4 -0
  42. data/lib/openai/resources/audio/transcriptions.rb +12 -4
  43. data/lib/openai/resources/beta/responses.rb +4 -4
  44. data/lib/openai/resources/chat/completions.rb +4 -4
  45. data/lib/openai/resources/responses.rb +4 -4
  46. data/lib/openai/resources/webhooks.rb +1 -1
  47. data/lib/openai/version.rb +1 -1
  48. data/lib/openai.rb +14 -0
  49. data/rbi/openai/models/admin/organization/organization_spend_limit.rbi +278 -0
  50. data/rbi/openai/models/admin/organization/organization_spend_limit_deleted.rbi +48 -0
  51. data/rbi/openai/models/admin/organization/projects/project_spend_limit.rbi +280 -0
  52. data/rbi/openai/models/admin/organization/projects/project_spend_limit_deleted.rbi +49 -0
  53. data/rbi/openai/models/admin/organization/projects/spend_limit_delete_params.rbi +44 -0
  54. data/rbi/openai/models/admin/organization/projects/spend_limit_retrieve_params.rbi +44 -0
  55. data/rbi/openai/models/admin/organization/projects/spend_limit_update_params.rbi +149 -0
  56. data/rbi/openai/models/admin/organization/spend_limit_delete_params.rbi +34 -0
  57. data/rbi/openai/models/admin/organization/spend_limit_retrieve_params.rbi +34 -0
  58. data/rbi/openai/models/admin/organization/spend_limit_update_params.rbi +141 -0
  59. data/rbi/openai/models/audio/transcription.rbi +19 -0
  60. data/rbi/openai/models/audio/transcription_create_params.rbi +31 -3
  61. data/rbi/openai/models/audio/transcription_language.rbi +33 -0
  62. data/rbi/openai/models/audio/transcription_text_done_event.rbi +19 -0
  63. data/rbi/openai/models/audio_model.rbi +2 -0
  64. data/rbi/openai/models/beta/beta_response.rbi +18 -15
  65. data/rbi/openai/models/beta/beta_response_error.rbi +5 -0
  66. data/rbi/openai/models/beta/beta_response_text_config.rbi +6 -3
  67. data/rbi/openai/models/beta/beta_responses_client_event.rbi +18 -15
  68. data/rbi/openai/models/beta/response_create_params.rbi +18 -15
  69. data/rbi/openai/models/beta/responses/input_token_count_params.rbi +18 -6
  70. data/rbi/openai/models/chat/completion_create_params.rbi +12 -15
  71. data/rbi/openai/models/realtime/audio_transcription.rbi +50 -9
  72. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +19 -0
  73. data/rbi/openai/models/reasoning.rbi +12 -3
  74. data/rbi/openai/models/responses/input_token_count_params.rbi +6 -3
  75. data/rbi/openai/models/responses/response.rbi +6 -12
  76. data/rbi/openai/models/responses/response_create_params.rbi +6 -12
  77. data/rbi/openai/models/responses/response_error.rbi +5 -0
  78. data/rbi/openai/models/responses/response_text_config.rbi +6 -3
  79. data/rbi/openai/models/responses/responses_client_event.rbi +6 -12
  80. data/rbi/openai/models/webhooks/live_call_incoming_webhook_event.rbi +222 -0
  81. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +7 -3
  82. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  83. data/rbi/openai/resources/admin/organization/projects/spend_limit.rbi +78 -0
  84. data/rbi/openai/resources/admin/organization/projects.rbi +7 -0
  85. data/rbi/openai/resources/admin/organization/spend_limit.rbi +57 -0
  86. data/rbi/openai/resources/admin/organization.rbi +3 -0
  87. data/rbi/openai/resources/audio/transcriptions.rbi +20 -2
  88. data/rbi/openai/resources/beta/responses.rbi +4 -4
  89. data/rbi/openai/resources/chat/completions.rbi +8 -6
  90. data/rbi/openai/resources/responses.rbi +4 -4
  91. data/rbi/openai/resources/webhooks.rbi +1 -0
  92. data/sig/openai/models/admin/organization/organization_spend_limit.rbs +94 -0
  93. data/sig/openai/models/admin/organization/organization_spend_limit_deleted.rbs +28 -0
  94. data/sig/openai/models/admin/organization/projects/project_spend_limit.rbs +96 -0
  95. data/sig/openai/models/admin/organization/projects/project_spend_limit_deleted.rbs +30 -0
  96. data/sig/openai/models/admin/organization/projects/spend_limit_delete_params.rbs +29 -0
  97. data/sig/openai/models/admin/organization/projects/spend_limit_retrieve_params.rbs +29 -0
  98. data/sig/openai/models/admin/organization/projects/spend_limit_update_params.rbs +67 -0
  99. data/sig/openai/models/admin/organization/spend_limit_delete_params.rbs +19 -0
  100. data/sig/openai/models/admin/organization/spend_limit_retrieve_params.rbs +19 -0
  101. data/sig/openai/models/admin/organization/spend_limit_update_params.rbs +60 -0
  102. data/sig/openai/models/audio/transcription.rbs +9 -0
  103. data/sig/openai/models/audio/transcription_create_params.rbs +14 -0
  104. data/sig/openai/models/audio/transcription_language.rbs +15 -0
  105. data/sig/openai/models/audio/transcription_text_done_event.rbs +9 -0
  106. data/sig/openai/models/audio_model.rbs +2 -0
  107. data/sig/openai/models/beta/beta_response.rbs +8 -12
  108. data/sig/openai/models/beta/beta_response_error.rbs +2 -0
  109. data/sig/openai/models/beta/beta_responses_client_event.rbs +8 -12
  110. data/sig/openai/models/beta/response_create_params.rbs +8 -12
  111. data/sig/openai/models/chat/completion_create_params.rbs +8 -12
  112. data/sig/openai/models/realtime/audio_transcription.rbs +18 -0
  113. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +9 -0
  114. data/sig/openai/models/responses/response.rbs +8 -12
  115. data/sig/openai/models/responses/response_create_params.rbs +8 -12
  116. data/sig/openai/models/responses/response_error.rbs +2 -0
  117. data/sig/openai/models/responses/responses_client_event.rbs +8 -12
  118. data/sig/openai/models/webhooks/live_call_incoming_webhook_event.rbs +90 -0
  119. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  120. data/sig/openai/resources/admin/organization/projects/spend_limit.rbs +31 -0
  121. data/sig/openai/resources/admin/organization/projects.rbs +2 -0
  122. data/sig/openai/resources/admin/organization/spend_limit.rbs +26 -0
  123. data/sig/openai/resources/admin/organization.rbs +2 -0
  124. data/sig/openai/resources/audio/transcriptions.rbs +4 -0
  125. data/sig/openai/resources/beta/responses.rbs +4 -4
  126. data/sig/openai/resources/chat/completions.rbs +4 -4
  127. data/sig/openai/resources/responses.rbs +4 -4
  128. data/sig/openai/resources/webhooks.rbs +1 -0
  129. metadata +44 -2
@@ -0,0 +1,141 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ class SpendLimitUpdateParams < OpenAI::Internal::Type::BaseModel
8
+ extend OpenAI::Internal::Type::RequestParameters::Converter
9
+ include OpenAI::Internal::Type::RequestParameters
10
+
11
+ OrHash =
12
+ T.type_alias do
13
+ T.any(
14
+ OpenAI::Admin::Organization::SpendLimitUpdateParams,
15
+ OpenAI::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ # The currency for the threshold amount. Currently, only `USD` is supported.
20
+ sig do
21
+ returns(
22
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Currency::OrSymbol
23
+ )
24
+ end
25
+ attr_accessor :currency
26
+
27
+ # The time interval for evaluating spend against the threshold. Currently, only
28
+ # `month` is supported.
29
+ sig do
30
+ returns(
31
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Interval::OrSymbol
32
+ )
33
+ end
34
+ attr_accessor :interval
35
+
36
+ # The hard spend limit amount, in cents.
37
+ sig { returns(Integer) }
38
+ attr_accessor :threshold_amount
39
+
40
+ sig do
41
+ params(
42
+ currency:
43
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Currency::OrSymbol,
44
+ interval:
45
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Interval::OrSymbol,
46
+ threshold_amount: Integer,
47
+ request_options: OpenAI::RequestOptions::OrHash
48
+ ).returns(T.attached_class)
49
+ end
50
+ def self.new(
51
+ # The currency for the threshold amount. Currently, only `USD` is supported.
52
+ currency:,
53
+ # The time interval for evaluating spend against the threshold. Currently, only
54
+ # `month` is supported.
55
+ interval:,
56
+ # The hard spend limit amount, in cents.
57
+ threshold_amount:,
58
+ request_options: {}
59
+ )
60
+ end
61
+
62
+ sig do
63
+ override.returns(
64
+ {
65
+ currency:
66
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Currency::OrSymbol,
67
+ interval:
68
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Interval::OrSymbol,
69
+ threshold_amount: Integer,
70
+ request_options: OpenAI::RequestOptions
71
+ }
72
+ )
73
+ end
74
+ def to_hash
75
+ end
76
+
77
+ # The currency for the threshold amount. Currently, only `USD` is supported.
78
+ module Currency
79
+ extend OpenAI::Internal::Type::Enum
80
+
81
+ TaggedSymbol =
82
+ T.type_alias do
83
+ T.all(
84
+ Symbol,
85
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Currency
86
+ )
87
+ end
88
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
89
+
90
+ USD =
91
+ T.let(
92
+ :USD,
93
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Currency::TaggedSymbol
94
+ )
95
+
96
+ sig do
97
+ override.returns(
98
+ T::Array[
99
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Currency::TaggedSymbol
100
+ ]
101
+ )
102
+ end
103
+ def self.values
104
+ end
105
+ end
106
+
107
+ # The time interval for evaluating spend against the threshold. Currently, only
108
+ # `month` is supported.
109
+ module Interval
110
+ extend OpenAI::Internal::Type::Enum
111
+
112
+ TaggedSymbol =
113
+ T.type_alias do
114
+ T.all(
115
+ Symbol,
116
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Interval
117
+ )
118
+ end
119
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
120
+
121
+ MONTH =
122
+ T.let(
123
+ :month,
124
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Interval::TaggedSymbol
125
+ )
126
+
127
+ sig do
128
+ override.returns(
129
+ T::Array[
130
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Interval::TaggedSymbol
131
+ ]
132
+ )
133
+ end
134
+ def self.values
135
+ end
136
+ end
137
+ end
138
+ end
139
+ end
140
+ end
141
+ end
@@ -13,6 +13,20 @@ module OpenAI
13
13
  sig { returns(String) }
14
14
  attr_accessor :text
15
15
 
16
+ # The languages detected in the audio. Returned by `gpt-transcribe`. An empty
17
+ # array indicates that no language could be reliably detected.
18
+ sig do
19
+ returns(T.nilable(T::Array[OpenAI::Audio::TranscriptionLanguage]))
20
+ end
21
+ attr_reader :languages
22
+
23
+ sig do
24
+ params(
25
+ languages: T::Array[OpenAI::Audio::TranscriptionLanguage::OrHash]
26
+ ).void
27
+ end
28
+ attr_writer :languages
29
+
16
30
  # The log probabilities of the tokens in the transcription. Only returned with the
17
31
  # models `gpt-4o-transcribe` and `gpt-4o-mini-transcribe` if `logprobs` is added
18
32
  # to the `include` array.
@@ -50,6 +64,7 @@ module OpenAI
50
64
  sig do
51
65
  params(
52
66
  text: String,
67
+ languages: T::Array[OpenAI::Audio::TranscriptionLanguage::OrHash],
53
68
  logprobs: T::Array[OpenAI::Audio::Transcription::Logprob::OrHash],
54
69
  usage:
55
70
  T.any(
@@ -61,6 +76,9 @@ module OpenAI
61
76
  def self.new(
62
77
  # The transcribed text.
63
78
  text:,
79
+ # The languages detected in the audio. Returned by `gpt-transcribe`. An empty
80
+ # array indicates that no language could be reliably detected.
81
+ languages: nil,
64
82
  # The log probabilities of the tokens in the transcription. Only returned with the
65
83
  # models `gpt-4o-transcribe` and `gpt-4o-mini-transcribe` if `logprobs` is added
66
84
  # to the `include` array.
@@ -74,6 +92,7 @@ module OpenAI
74
92
  override.returns(
75
93
  {
76
94
  text: String,
95
+ languages: T::Array[OpenAI::Audio::TranscriptionLanguage],
77
96
  logprobs: T::Array[OpenAI::Audio::Transcription::Logprob],
78
97
  usage: OpenAI::Audio::Transcription::Usage::Variants
79
98
  }
@@ -20,7 +20,7 @@ module OpenAI
20
20
  sig { returns(OpenAI::Internal::FileInput) }
21
21
  attr_accessor :file
22
22
 
23
- # ID of the model to use. The options are `gpt-4o-transcribe`,
23
+ # ID of the model to use. The options are `gpt-transcribe`, `gpt-4o-transcribe`,
24
24
  # `gpt-4o-mini-transcribe`, `gpt-4o-mini-transcribe-2025-12-15`, `whisper-1`
25
25
  # (which is powered by our open source Whisper V2 model), and
26
26
  # `gpt-4o-transcribe-diarize`.
@@ -65,6 +65,14 @@ module OpenAI
65
65
  end
66
66
  attr_writer :include
67
67
 
68
+ # Words or phrases to guide transcription of the input audio. Supported by
69
+ # `gpt-transcribe`.
70
+ sig { returns(T.nilable(T::Array[String])) }
71
+ attr_reader :keywords
72
+
73
+ sig { params(keywords: T::Array[String]).void }
74
+ attr_writer :keywords
75
+
68
76
  # Optional list of speaker names that correspond to the audio samples provided in
69
77
  # `known_speaker_references[]`. Each entry should be a short identifier (for
70
78
  # example `customer` or `agent`). Up to 4 speakers are supported.
@@ -94,6 +102,15 @@ module OpenAI
94
102
  sig { params(language: String).void }
95
103
  attr_writer :language
96
104
 
105
+ # Possible languages of the input audio, in
106
+ # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.
107
+ # Supported by `gpt-transcribe`.
108
+ sig { returns(T.nilable(T::Array[String])) }
109
+ attr_reader :languages
110
+
111
+ sig { params(languages: T::Array[String]).void }
112
+ attr_writer :languages
113
+
97
114
  # An optional text to guide the model's style or continue a previous audio
98
115
  # segment. The
99
116
  # [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting)
@@ -168,9 +185,11 @@ module OpenAI
168
185
  )
169
186
  ),
170
187
  include: T::Array[OpenAI::Audio::TranscriptionInclude::OrSymbol],
188
+ keywords: T::Array[String],
171
189
  known_speaker_names: T::Array[String],
172
190
  known_speaker_references: T::Array[String],
173
191
  language: String,
192
+ languages: T::Array[String],
174
193
  prompt: String,
175
194
  response_format: OpenAI::AudioResponseFormat::OrSymbol,
176
195
  temperature: Float,
@@ -185,7 +204,7 @@ module OpenAI
185
204
  # The audio file object (not file name) to transcribe, in one of these formats:
186
205
  # flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.
187
206
  file:,
188
- # ID of the model to use. The options are `gpt-4o-transcribe`,
207
+ # ID of the model to use. The options are `gpt-transcribe`, `gpt-4o-transcribe`,
189
208
  # `gpt-4o-mini-transcribe`, `gpt-4o-mini-transcribe-2025-12-15`, `whisper-1`
190
209
  # (which is powered by our open source Whisper V2 model), and
191
210
  # `gpt-4o-transcribe-diarize`.
@@ -204,6 +223,9 @@ module OpenAI
204
223
  # `gpt-4o-mini-transcribe`, and `gpt-4o-mini-transcribe-2025-12-15`. This field is
205
224
  # not supported when using `gpt-4o-transcribe-diarize`.
206
225
  include: nil,
226
+ # Words or phrases to guide transcription of the input audio. Supported by
227
+ # `gpt-transcribe`.
228
+ keywords: nil,
207
229
  # Optional list of speaker names that correspond to the audio samples provided in
208
230
  # `known_speaker_references[]`. Each entry should be a short identifier (for
209
231
  # example `customer` or `agent`). Up to 4 speakers are supported.
@@ -218,6 +240,10 @@ module OpenAI
218
240
  # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`)
219
241
  # format will improve accuracy and latency.
220
242
  language: nil,
243
+ # Possible languages of the input audio, in
244
+ # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.
245
+ # Supported by `gpt-transcribe`.
246
+ languages: nil,
221
247
  # An optional text to guide the model's style or continue a previous audio
222
248
  # segment. The
223
249
  # [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting)
@@ -260,9 +286,11 @@ module OpenAI
260
286
  )
261
287
  ),
262
288
  include: T::Array[OpenAI::Audio::TranscriptionInclude::OrSymbol],
289
+ keywords: T::Array[String],
263
290
  known_speaker_names: T::Array[String],
264
291
  known_speaker_references: T::Array[String],
265
292
  language: String,
293
+ languages: T::Array[String],
266
294
  prompt: String,
267
295
  response_format: OpenAI::AudioResponseFormat::OrSymbol,
268
296
  temperature: Float,
@@ -277,7 +305,7 @@ module OpenAI
277
305
  def to_hash
278
306
  end
279
307
 
280
- # ID of the model to use. The options are `gpt-4o-transcribe`,
308
+ # ID of the model to use. The options are `gpt-transcribe`, `gpt-4o-transcribe`,
281
309
  # `gpt-4o-mini-transcribe`, `gpt-4o-mini-transcribe-2025-12-15`, `whisper-1`
282
310
  # (which is powered by our open source Whisper V2 model), and
283
311
  # `gpt-4o-transcribe-diarize`.
@@ -0,0 +1,33 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Audio
6
+ class TranscriptionLanguage < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Audio::TranscriptionLanguage,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The code of a language detected in the audio.
16
+ sig { returns(String) }
17
+ attr_accessor :code
18
+
19
+ # A language detected in transcribed audio.
20
+ sig { params(code: String).returns(T.attached_class) }
21
+ def self.new(
22
+ # The code of a language detected in the audio.
23
+ code:
24
+ )
25
+ end
26
+
27
+ sig { override.returns({ code: String }) }
28
+ def to_hash
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -20,6 +20,20 @@ module OpenAI
20
20
  sig { returns(Symbol) }
21
21
  attr_accessor :type
22
22
 
23
+ # The languages detected in the audio. Returned by `gpt-transcribe`. An empty
24
+ # array indicates that no language could be reliably detected.
25
+ sig do
26
+ returns(T.nilable(T::Array[OpenAI::Audio::TranscriptionLanguage]))
27
+ end
28
+ attr_reader :languages
29
+
30
+ sig do
31
+ params(
32
+ languages: T::Array[OpenAI::Audio::TranscriptionLanguage::OrHash]
33
+ ).void
34
+ end
35
+ attr_writer :languages
36
+
23
37
  # The log probabilities of the individual tokens in the transcription. Only
24
38
  # included if you
25
39
  # [create a transcription](https://platform.openai.com/docs/api-reference/audio/create-transcription)
@@ -63,6 +77,7 @@ module OpenAI
63
77
  sig do
64
78
  params(
65
79
  text: String,
80
+ languages: T::Array[OpenAI::Audio::TranscriptionLanguage::OrHash],
66
81
  logprobs:
67
82
  T::Array[
68
83
  OpenAI::Audio::TranscriptionTextDoneEvent::Logprob::OrHash
@@ -74,6 +89,9 @@ module OpenAI
74
89
  def self.new(
75
90
  # The text that was transcribed.
76
91
  text:,
92
+ # The languages detected in the audio. Returned by `gpt-transcribe`. An empty
93
+ # array indicates that no language could be reliably detected.
94
+ languages: nil,
77
95
  # The log probabilities of the individual tokens in the transcription. Only
78
96
  # included if you
79
97
  # [create a transcription](https://platform.openai.com/docs/api-reference/audio/create-transcription)
@@ -91,6 +109,7 @@ module OpenAI
91
109
  {
92
110
  text: String,
93
111
  type: Symbol,
112
+ languages: T::Array[OpenAI::Audio::TranscriptionLanguage],
94
113
  logprobs:
95
114
  T::Array[OpenAI::Audio::TranscriptionTextDoneEvent::Logprob],
96
115
  usage: OpenAI::Audio::TranscriptionTextDoneEvent::Usage
@@ -9,6 +9,8 @@ module OpenAI
9
9
  OrSymbol = T.type_alias { T.any(Symbol, String) }
10
10
 
11
11
  WHISPER_1 = T.let(:"whisper-1", OpenAI::AudioModel::TaggedSymbol)
12
+ GPT_TRANSCRIBE =
13
+ T.let(:"gpt-transcribe", OpenAI::AudioModel::TaggedSymbol)
12
14
  GPT_4O_TRANSCRIBE =
13
15
  T.let(:"gpt-4o-transcribe", OpenAI::AudioModel::TaggedSymbol)
14
16
  GPT_4O_MINI_TRANSCRIBE =
@@ -204,10 +204,7 @@ module OpenAI
204
204
  # hit rates. Replaces the `user` field.
205
205
  # [Learn more](https://platform.openai.com/docs/guides/prompt-caching).
206
206
  sig { returns(T.nilable(String)) }
207
- attr_reader :prompt_cache_key
208
-
209
- sig { params(prompt_cache_key: String).void }
210
- attr_writer :prompt_cache_key
207
+ attr_accessor :prompt_cache_key
211
208
 
212
209
  # The prompt-caching options that were applied to the response. Supported for
213
210
  # `gpt-5.6` and later models.
@@ -271,10 +268,7 @@ module OpenAI
271
268
  # identifying information.
272
269
  # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
273
270
  sig { returns(T.nilable(String)) }
274
- attr_reader :safety_identifier
275
-
276
- sig { params(safety_identifier: String).void }
277
- attr_writer :safety_identifier
271
+ attr_accessor :safety_identifier
278
272
 
279
273
  # Specifies the processing type used for serving the request.
280
274
  #
@@ -452,7 +446,7 @@ module OpenAI
452
446
  T.nilable(OpenAI::Beta::BetaResponse::Moderation::OrHash),
453
447
  previous_response_id: T.nilable(String),
454
448
  prompt: T.nilable(OpenAI::Beta::BetaResponsePrompt::OrHash),
455
- prompt_cache_key: String,
449
+ prompt_cache_key: T.nilable(String),
456
450
  prompt_cache_options:
457
451
  OpenAI::Beta::BetaResponse::PromptCacheOptions::OrHash,
458
452
  prompt_cache_retention:
@@ -460,7 +454,7 @@ module OpenAI
460
454
  OpenAI::Beta::BetaResponse::PromptCacheRetention::OrSymbol
461
455
  ),
462
456
  reasoning: T.nilable(OpenAI::Beta::BetaResponse::Reasoning::OrHash),
463
- safety_identifier: String,
457
+ safety_identifier: T.nilable(String),
464
458
  service_tier:
465
459
  T.nilable(OpenAI::Beta::BetaResponse::ServiceTier::OrSymbol),
466
460
  status: OpenAI::Beta::BetaResponseStatus::OrSymbol,
@@ -691,7 +685,7 @@ module OpenAI
691
685
  moderation: T.nilable(OpenAI::Beta::BetaResponse::Moderation),
692
686
  previous_response_id: T.nilable(String),
693
687
  prompt: T.nilable(OpenAI::Beta::BetaResponsePrompt),
694
- prompt_cache_key: String,
688
+ prompt_cache_key: T.nilable(String),
695
689
  prompt_cache_options:
696
690
  OpenAI::Beta::BetaResponse::PromptCacheOptions,
697
691
  prompt_cache_retention:
@@ -699,7 +693,7 @@ module OpenAI
699
693
  OpenAI::Beta::BetaResponse::PromptCacheRetention::TaggedSymbol
700
694
  ),
701
695
  reasoning: T.nilable(OpenAI::Beta::BetaResponse::Reasoning),
702
- safety_identifier: String,
696
+ safety_identifier: T.nilable(String),
703
697
  service_tier:
704
698
  T.nilable(
705
699
  OpenAI::Beta::BetaResponse::ServiceTier::TaggedSymbol
@@ -2014,7 +2008,10 @@ module OpenAI
2014
2008
  )
2015
2009
  end
2016
2010
 
2017
- # Controls which reasoning items are rendered back to the model on later turns.
2011
+ # Controls which reasoning items are rendered back to the model on later turns. If
2012
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
2013
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
2014
+ #
2018
2015
  # When returned on a response, this is the effective reasoning context mode used
2019
2016
  # for the response.
2020
2017
  sig do
@@ -2121,7 +2118,10 @@ module OpenAI
2121
2118
  ).returns(T.attached_class)
2122
2119
  end
2123
2120
  def self.new(
2124
- # Controls which reasoning items are rendered back to the model on later turns.
2121
+ # Controls which reasoning items are rendered back to the model on later turns. If
2122
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
2123
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
2124
+ #
2125
2125
  # When returned on a response, this is the effective reasoning context mode used
2126
2126
  # for the response.
2127
2127
  context: nil,
@@ -2178,7 +2178,10 @@ module OpenAI
2178
2178
  def to_hash
2179
2179
  end
2180
2180
 
2181
- # Controls which reasoning items are rendered back to the model on later turns.
2181
+ # Controls which reasoning items are rendered back to the model on later turns. If
2182
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
2183
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
2184
+ #
2182
2185
  # When returned on a response, this is the effective reasoning context mode used
2183
2186
  # for the response.
2184
2187
  module Context
@@ -70,6 +70,11 @@ module OpenAI
70
70
  :invalid_prompt,
71
71
  OpenAI::Beta::BetaResponseError::Code::TaggedSymbol
72
72
  )
73
+ DATA_RESIDENCY_MISMATCH =
74
+ T.let(
75
+ :data_residency_mismatch,
76
+ OpenAI::Beta::BetaResponseError::Code::TaggedSymbol
77
+ )
73
78
  BIO_POLICY =
74
79
  T.let(
75
80
  :bio_policy,
@@ -54,7 +54,8 @@ module OpenAI
54
54
 
55
55
  # Constrains the verbosity of the model's response. Lower values will result in
56
56
  # more concise responses, while higher values will result in more verbose
57
- # responses. Currently supported values are `low`, `medium`, and `high`.
57
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
58
+ # default is `medium`.
58
59
  sig do
59
60
  returns(
60
61
  T.nilable(OpenAI::Beta::BetaResponseTextConfig::Verbosity::OrSymbol)
@@ -98,7 +99,8 @@ module OpenAI
98
99
  format_: nil,
99
100
  # Constrains the verbosity of the model's response. Lower values will result in
100
101
  # more concise responses, while higher values will result in more verbose
101
- # responses. Currently supported values are `low`, `medium`, and `high`.
102
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
103
+ # default is `medium`.
102
104
  verbosity: nil
103
105
  )
104
106
  end
@@ -124,7 +126,8 @@ module OpenAI
124
126
 
125
127
  # Constrains the verbosity of the model's response. Lower values will result in
126
128
  # more concise responses, while higher values will result in more verbose
127
- # responses. Currently supported values are `low`, `medium`, and `high`.
129
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
130
+ # default is `medium`.
128
131
  module Verbosity
129
132
  extend OpenAI::Internal::Type::Enum
130
133
 
@@ -238,10 +238,7 @@ module OpenAI
238
238
  # hit rates. Replaces the `user` field.
239
239
  # [Learn more](https://platform.openai.com/docs/guides/prompt-caching).
240
240
  sig { returns(T.nilable(String)) }
241
- attr_reader :prompt_cache_key
242
-
243
- sig { params(prompt_cache_key: String).void }
244
- attr_writer :prompt_cache_key
241
+ attr_accessor :prompt_cache_key
245
242
 
246
243
  # Options for prompt caching. Supported for `gpt-5.6` and later models. By
247
244
  # default, OpenAI automatically chooses one implicit cache breakpoint. You can add
@@ -325,10 +322,7 @@ module OpenAI
325
322
  # identifying information.
326
323
  # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
327
324
  sig { returns(T.nilable(String)) }
328
- attr_reader :safety_identifier
329
-
330
- sig { params(safety_identifier: String).void }
331
- attr_writer :safety_identifier
325
+ attr_accessor :safety_identifier
332
326
 
333
327
  # Specifies the processing type used for serving the request.
334
328
  #
@@ -612,7 +606,7 @@ module OpenAI
612
606
  parallel_tool_calls: T.nilable(T::Boolean),
613
607
  previous_response_id: T.nilable(String),
614
608
  prompt: T.nilable(OpenAI::Beta::BetaResponsePrompt::OrHash),
615
- prompt_cache_key: String,
609
+ prompt_cache_key: T.nilable(String),
616
610
  prompt_cache_options:
617
611
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::OrHash,
618
612
  prompt_cache_retention:
@@ -623,7 +617,7 @@ module OpenAI
623
617
  T.nilable(
624
618
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Reasoning::OrHash
625
619
  ),
626
- safety_identifier: String,
620
+ safety_identifier: T.nilable(String),
627
621
  service_tier:
628
622
  T.nilable(
629
623
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ServiceTier::OrSymbol
@@ -938,7 +932,7 @@ module OpenAI
938
932
  parallel_tool_calls: T.nilable(T::Boolean),
939
933
  previous_response_id: T.nilable(String),
940
934
  prompt: T.nilable(OpenAI::Beta::BetaResponsePrompt),
941
- prompt_cache_key: String,
935
+ prompt_cache_key: T.nilable(String),
942
936
  prompt_cache_options:
943
937
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions,
944
938
  prompt_cache_retention:
@@ -949,7 +943,7 @@ module OpenAI
949
943
  T.nilable(
950
944
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Reasoning
951
945
  ),
952
- safety_identifier: String,
946
+ safety_identifier: T.nilable(String),
953
947
  service_tier:
954
948
  T.nilable(
955
949
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ServiceTier::OrSymbol
@@ -2198,7 +2192,10 @@ module OpenAI
2198
2192
  )
2199
2193
  end
2200
2194
 
2201
- # Controls which reasoning items are rendered back to the model on later turns.
2195
+ # Controls which reasoning items are rendered back to the model on later turns. If
2196
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
2197
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
2198
+ #
2202
2199
  # When returned on a response, this is the effective reasoning context mode used
2203
2200
  # for the response.
2204
2201
  sig do
@@ -2310,7 +2307,10 @@ module OpenAI
2310
2307
  ).returns(T.attached_class)
2311
2308
  end
2312
2309
  def self.new(
2313
- # Controls which reasoning items are rendered back to the model on later turns.
2310
+ # Controls which reasoning items are rendered back to the model on later turns. If
2311
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
2312
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
2313
+ #
2314
2314
  # When returned on a response, this is the effective reasoning context mode used
2315
2315
  # for the response.
2316
2316
  context: nil,
@@ -2371,7 +2371,10 @@ module OpenAI
2371
2371
  def to_hash
2372
2372
  end
2373
2373
 
2374
- # Controls which reasoning items are rendered back to the model on later turns.
2374
+ # Controls which reasoning items are rendered back to the model on later turns. If
2375
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
2376
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
2377
+ #
2375
2378
  # When returned on a response, this is the effective reasoning context mode used
2376
2379
  # for the response.
2377
2380
  module Context