openai 0.40.0 → 0.42.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +1 -1
  4. data/lib/openai/internal/transport/pooled_net_requester.rb +12 -10
  5. data/lib/openai/internal/util.rb +7 -2
  6. data/lib/openai/models/audio/speech_create_params.rb +3 -3
  7. data/lib/openai/models/audio/speech_model.rb +1 -0
  8. data/lib/openai/models/audio/transcription_create_params.rb +10 -8
  9. data/lib/openai/models/audio_model.rb +1 -0
  10. data/lib/openai/models/graders/grader_input_item.rb +87 -0
  11. data/lib/openai/models/graders/grader_inputs.rb +0 -80
  12. data/lib/openai/models/image.rb +6 -6
  13. data/lib/openai/models/image_edit_completed_event.rb +5 -3
  14. data/lib/openai/models/image_edit_params.rb +34 -32
  15. data/lib/openai/models/image_gen_completed_event.rb +5 -3
  16. data/lib/openai/models/image_generate_params.rb +38 -36
  17. data/lib/openai/models/image_model.rb +1 -0
  18. data/lib/openai/models/images_response.rb +31 -1
  19. data/lib/openai/models/realtime/audio_transcription.rb +33 -10
  20. data/lib/openai/models/realtime/realtime_session.rb +46 -6
  21. data/lib/openai/models/realtime/realtime_session_create_request.rb +6 -0
  22. data/lib/openai/models/realtime/realtime_session_create_response.rb +6 -0
  23. data/lib/openai/models/responses/tool.rb +22 -8
  24. data/lib/openai/models/video.rb +3 -3
  25. data/lib/openai/models/video_create_params.rb +3 -3
  26. data/lib/openai/models/video_model.rb +23 -3
  27. data/lib/openai/resources/images.rb +6 -6
  28. data/lib/openai/resources/videos.rb +1 -1
  29. data/lib/openai/version.rb +1 -1
  30. data/lib/openai.rb +1 -0
  31. data/rbi/openai/models/audio/speech_create_params.rbi +3 -3
  32. data/rbi/openai/models/audio/speech_model.rbi +5 -0
  33. data/rbi/openai/models/audio/transcription_create_params.rbi +15 -12
  34. data/rbi/openai/models/audio_model.rbi +5 -0
  35. data/rbi/openai/models/graders/grader_input_item.rbi +112 -0
  36. data/rbi/openai/models/graders/grader_inputs.rbi +0 -105
  37. data/rbi/openai/models/image.rbi +10 -10
  38. data/rbi/openai/models/image_edit_completed_event.rbi +6 -3
  39. data/rbi/openai/models/image_edit_params.rbi +49 -46
  40. data/rbi/openai/models/image_gen_completed_event.rbi +6 -3
  41. data/rbi/openai/models/image_generate_params.rbi +54 -51
  42. data/rbi/openai/models/image_model.rbi +1 -0
  43. data/rbi/openai/models/images_response.rbi +61 -3
  44. data/rbi/openai/models/realtime/audio_transcription.rbi +52 -21
  45. data/rbi/openai/models/realtime/realtime_session.rbi +42 -12
  46. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +10 -0
  47. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +10 -0
  48. data/rbi/openai/models/responses/tool.rbi +38 -16
  49. data/rbi/openai/models/video.rbi +3 -3
  50. data/rbi/openai/models/video_create_params.rbi +4 -4
  51. data/rbi/openai/models/video_model.rbi +8 -5
  52. data/rbi/openai/resources/audio/speech.rbi +1 -1
  53. data/rbi/openai/resources/audio/transcriptions.rbi +12 -10
  54. data/rbi/openai/resources/images.rbi +72 -68
  55. data/rbi/openai/resources/videos.rbi +1 -1
  56. data/sig/openai/models/audio/speech_model.rbs +6 -1
  57. data/sig/openai/models/audio_model.rbs +2 -0
  58. data/sig/openai/models/graders/grader_input_item.rbs +55 -0
  59. data/sig/openai/models/graders/grader_inputs.rbs +0 -50
  60. data/sig/openai/models/image_model.rbs +6 -1
  61. data/sig/openai/models/images_response.rbs +25 -3
  62. data/sig/openai/models/realtime/audio_transcription.rbs +7 -4
  63. data/sig/openai/models/realtime/realtime_session.rbs +9 -4
  64. data/sig/openai/models/realtime/realtime_session_create_request.rbs +4 -0
  65. data/sig/openai/models/realtime/realtime_session_create_response.rbs +4 -0
  66. data/sig/openai/models/responses/tool.rbs +4 -4
  67. data/sig/openai/models/video_model.rbs +5 -4
  68. metadata +5 -2
@@ -11,17 +11,17 @@ module OpenAI
11
11
 
12
12
  # @!attribute prompt
13
13
  # A text description of the desired image(s). The maximum length is 32000
14
- # characters for `gpt-image-1`, 1000 characters for `dall-e-2` and 4000 characters
15
- # for `dall-e-3`.
14
+ # characters for the GPT image models, 1000 characters for `dall-e-2` and 4000
15
+ # characters for `dall-e-3`.
16
16
  #
17
17
  # @return [String]
18
18
  required :prompt, String
19
19
 
20
20
  # @!attribute background
21
21
  # Allows to set transparency for the background of the generated image(s). This
22
- # parameter is only supported for `gpt-image-1`. Must be one of `transparent`,
23
- # `opaque` or `auto` (default value). When `auto` is used, the model will
24
- # automatically determine the best background for the image.
22
+ # parameter is only supported for the GPT image models. Must be one of
23
+ # `transparent`, `opaque` or `auto` (default value). When `auto` is used, the
24
+ # model will automatically determine the best background for the image.
25
25
  #
26
26
  # If `transparent`, the output format needs to support transparency, so it should
27
27
  # be set to either `png` (default value) or `webp`.
@@ -30,16 +30,17 @@ module OpenAI
30
30
  optional :background, enum: -> { OpenAI::ImageGenerateParams::Background }, nil?: true
31
31
 
32
32
  # @!attribute model
33
- # The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or
34
- # `gpt-image-1`. Defaults to `dall-e-2` unless a parameter specific to
35
- # `gpt-image-1` is used.
33
+ # The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or a GPT
34
+ # image model (`gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`). Defaults to
35
+ # `dall-e-2` unless a parameter specific to the GPT image models is used.
36
36
  #
37
37
  # @return [String, Symbol, OpenAI::Models::ImageModel, nil]
38
38
  optional :model, union: -> { OpenAI::ImageGenerateParams::Model }, nil?: true
39
39
 
40
40
  # @!attribute moderation
41
- # Control the content-moderation level for images generated by `gpt-image-1`. Must
42
- # be either `low` for less restrictive filtering or `auto` (default value).
41
+ # Control the content-moderation level for images generated by the GPT image
42
+ # models. Must be either `low` for less restrictive filtering or `auto` (default
43
+ # value).
43
44
  #
44
45
  # @return [Symbol, OpenAI::Models::ImageGenerateParams::Moderation, nil]
45
46
  optional :moderation, enum: -> { OpenAI::ImageGenerateParams::Moderation }, nil?: true
@@ -53,7 +54,7 @@ module OpenAI
53
54
 
54
55
  # @!attribute output_compression
55
56
  # The compression level (0-100%) for the generated images. This parameter is only
56
- # supported for `gpt-image-1` with the `webp` or `jpeg` output formats, and
57
+ # supported for the GPT image models with the `webp` or `jpeg` output formats, and
57
58
  # defaults to 100.
58
59
  #
59
60
  # @return [Integer, nil]
@@ -61,7 +62,7 @@ module OpenAI
61
62
 
62
63
  # @!attribute output_format
63
64
  # The format in which the generated images are returned. This parameter is only
64
- # supported for `gpt-image-1`. Must be one of `png`, `jpeg`, or `webp`.
65
+ # supported for the GPT image models. Must be one of `png`, `jpeg`, or `webp`.
65
66
  #
66
67
  # @return [Symbol, OpenAI::Models::ImageGenerateParams::OutputFormat, nil]
67
68
  optional :output_format, enum: -> { OpenAI::ImageGenerateParams::OutputFormat }, nil?: true
@@ -82,7 +83,7 @@ module OpenAI
82
83
  #
83
84
  # - `auto` (default value) will automatically select the best quality for the
84
85
  # given model.
85
- # - `high`, `medium` and `low` are supported for `gpt-image-1`.
86
+ # - `high`, `medium` and `low` are supported for the GPT image models.
86
87
  # - `hd` and `standard` are supported for `dall-e-3`.
87
88
  # - `standard` is the only option for `dall-e-2`.
88
89
  #
@@ -92,17 +93,17 @@ module OpenAI
92
93
  # @!attribute response_format
93
94
  # The format in which generated images with `dall-e-2` and `dall-e-3` are
94
95
  # returned. Must be one of `url` or `b64_json`. URLs are only valid for 60 minutes
95
- # after the image has been generated. This parameter isn't supported for
96
- # `gpt-image-1` which will always return base64-encoded images.
96
+ # after the image has been generated. This parameter isn't supported for the GPT
97
+ # image models, which always return base64-encoded images.
97
98
  #
98
99
  # @return [Symbol, OpenAI::Models::ImageGenerateParams::ResponseFormat, nil]
99
100
  optional :response_format, enum: -> { OpenAI::ImageGenerateParams::ResponseFormat }, nil?: true
100
101
 
101
102
  # @!attribute size
102
103
  # The size of the generated images. Must be one of `1024x1024`, `1536x1024`
103
- # (landscape), `1024x1536` (portrait), or `auto` (default value) for
104
- # `gpt-image-1`, one of `256x256`, `512x512`, or `1024x1024` for `dall-e-2`, and
105
- # one of `1024x1024`, `1792x1024`, or `1024x1792` for `dall-e-3`.
104
+ # (landscape), `1024x1536` (portrait), or `auto` (default value) for the GPT image
105
+ # models, one of `256x256`, `512x512`, or `1024x1024` for `dall-e-2`, and one of
106
+ # `1024x1024`, `1792x1024`, or `1024x1792` for `dall-e-3`.
106
107
  #
107
108
  # @return [Symbol, OpenAI::Models::ImageGenerateParams::Size, nil]
108
109
  optional :size, enum: -> { OpenAI::ImageGenerateParams::Size }, nil?: true
@@ -132,9 +133,9 @@ module OpenAI
132
133
  #
133
134
  # @param background [Symbol, OpenAI::Models::ImageGenerateParams::Background, nil] Allows to set transparency for the background of the generated image(s).
134
135
  #
135
- # @param model [String, Symbol, OpenAI::Models::ImageModel, nil] The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or `gpt-im
136
+ # @param model [String, Symbol, OpenAI::Models::ImageModel, nil] The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or a GPT i
136
137
  #
137
- # @param moderation [Symbol, OpenAI::Models::ImageGenerateParams::Moderation, nil] Control the content-moderation level for images generated by `gpt-image-1`. Must
138
+ # @param moderation [Symbol, OpenAI::Models::ImageGenerateParams::Moderation, nil] Control the content-moderation level for images generated by the GPT image model
138
139
  #
139
140
  # @param n [Integer, nil] The number of images to generate. Must be between 1 and 10. For `dall-e-3`, only
140
141
  #
@@ -157,9 +158,9 @@ module OpenAI
157
158
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
158
159
 
159
160
  # Allows to set transparency for the background of the generated image(s). This
160
- # parameter is only supported for `gpt-image-1`. Must be one of `transparent`,
161
- # `opaque` or `auto` (default value). When `auto` is used, the model will
162
- # automatically determine the best background for the image.
161
+ # parameter is only supported for the GPT image models. Must be one of
162
+ # `transparent`, `opaque` or `auto` (default value). When `auto` is used, the
163
+ # model will automatically determine the best background for the image.
163
164
  #
164
165
  # If `transparent`, the output format needs to support transparency, so it should
165
166
  # be set to either `png` (default value) or `webp`.
@@ -174,23 +175,24 @@ module OpenAI
174
175
  # @return [Array<Symbol>]
175
176
  end
176
177
 
177
- # The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or
178
- # `gpt-image-1`. Defaults to `dall-e-2` unless a parameter specific to
179
- # `gpt-image-1` is used.
178
+ # The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or a GPT
179
+ # image model (`gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`). Defaults to
180
+ # `dall-e-2` unless a parameter specific to the GPT image models is used.
180
181
  module Model
181
182
  extend OpenAI::Internal::Type::Union
182
183
 
183
184
  variant String
184
185
 
185
- # The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or `gpt-image-1`. Defaults to `dall-e-2` unless a parameter specific to `gpt-image-1` is used.
186
+ # The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or a GPT image model (`gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`). Defaults to `dall-e-2` unless a parameter specific to the GPT image models is used.
186
187
  variant enum: -> { OpenAI::ImageModel }
187
188
 
188
189
  # @!method self.variants
189
190
  # @return [Array(String, Symbol, OpenAI::Models::ImageModel)]
190
191
  end
191
192
 
192
- # Control the content-moderation level for images generated by `gpt-image-1`. Must
193
- # be either `low` for less restrictive filtering or `auto` (default value).
193
+ # Control the content-moderation level for images generated by the GPT image
194
+ # models. Must be either `low` for less restrictive filtering or `auto` (default
195
+ # value).
194
196
  module Moderation
195
197
  extend OpenAI::Internal::Type::Enum
196
198
 
@@ -202,7 +204,7 @@ module OpenAI
202
204
  end
203
205
 
204
206
  # The format in which the generated images are returned. This parameter is only
205
- # supported for `gpt-image-1`. Must be one of `png`, `jpeg`, or `webp`.
207
+ # supported for the GPT image models. Must be one of `png`, `jpeg`, or `webp`.
206
208
  module OutputFormat
207
209
  extend OpenAI::Internal::Type::Enum
208
210
 
@@ -218,7 +220,7 @@ module OpenAI
218
220
  #
219
221
  # - `auto` (default value) will automatically select the best quality for the
220
222
  # given model.
221
- # - `high`, `medium` and `low` are supported for `gpt-image-1`.
223
+ # - `high`, `medium` and `low` are supported for the GPT image models.
222
224
  # - `hd` and `standard` are supported for `dall-e-3`.
223
225
  # - `standard` is the only option for `dall-e-2`.
224
226
  module Quality
@@ -237,8 +239,8 @@ module OpenAI
237
239
 
238
240
  # The format in which generated images with `dall-e-2` and `dall-e-3` are
239
241
  # returned. Must be one of `url` or `b64_json`. URLs are only valid for 60 minutes
240
- # after the image has been generated. This parameter isn't supported for
241
- # `gpt-image-1` which will always return base64-encoded images.
242
+ # after the image has been generated. This parameter isn't supported for the GPT
243
+ # image models, which always return base64-encoded images.
242
244
  module ResponseFormat
243
245
  extend OpenAI::Internal::Type::Enum
244
246
 
@@ -250,9 +252,9 @@ module OpenAI
250
252
  end
251
253
 
252
254
  # The size of the generated images. Must be one of `1024x1024`, `1536x1024`
253
- # (landscape), `1024x1536` (portrait), or `auto` (default value) for
254
- # `gpt-image-1`, one of `256x256`, `512x512`, or `1024x1024` for `dall-e-2`, and
255
- # one of `1024x1024`, `1792x1024`, or `1024x1792` for `dall-e-3`.
255
+ # (landscape), `1024x1536` (portrait), or `auto` (default value) for the GPT image
256
+ # models, one of `256x256`, `512x512`, or `1024x1024` for `dall-e-2`, and one of
257
+ # `1024x1024`, `1792x1024`, or `1024x1792` for `dall-e-3`.
256
258
  module Size
257
259
  extend OpenAI::Internal::Type::Enum
258
260
 
@@ -5,6 +5,7 @@ module OpenAI
5
5
  module ImageModel
6
6
  extend OpenAI::Internal::Type::Enum
7
7
 
8
+ GPT_IMAGE_1_5 = :"gpt-image-1.5"
8
9
  DALL_E_2 = :"dall-e-2"
9
10
  DALL_E_3 = :"dall-e-3"
10
11
  GPT_IMAGE_1 = :"gpt-image-1"
@@ -151,7 +151,13 @@ module OpenAI
151
151
  # @return [Integer]
152
152
  required :total_tokens, Integer
153
153
 
154
- # @!method initialize(input_tokens:, input_tokens_details:, output_tokens:, total_tokens:)
154
+ # @!attribute output_tokens_details
155
+ # The output token details for the image generation.
156
+ #
157
+ # @return [OpenAI::Models::ImagesResponse::Usage::OutputTokensDetails, nil]
158
+ optional :output_tokens_details, -> { OpenAI::ImagesResponse::Usage::OutputTokensDetails }
159
+
160
+ # @!method initialize(input_tokens:, input_tokens_details:, output_tokens:, total_tokens:, output_tokens_details: nil)
155
161
  # For `gpt-image-1` only, the token usage information for the image generation.
156
162
  #
157
163
  # @param input_tokens [Integer] The number of tokens (images and text) in the input prompt.
@@ -161,6 +167,8 @@ module OpenAI
161
167
  # @param output_tokens [Integer] The number of output tokens generated by the model.
162
168
  #
163
169
  # @param total_tokens [Integer] The total number of tokens (images and text) used for the image generation.
170
+ #
171
+ # @param output_tokens_details [OpenAI::Models::ImagesResponse::Usage::OutputTokensDetails] The output token details for the image generation.
164
172
 
165
173
  # @see OpenAI::Models::ImagesResponse::Usage#input_tokens_details
166
174
  class InputTokensDetails < OpenAI::Internal::Type::BaseModel
@@ -183,6 +191,28 @@ module OpenAI
183
191
  #
184
192
  # @param text_tokens [Integer] The number of text tokens in the input prompt.
185
193
  end
194
+
195
+ # @see OpenAI::Models::ImagesResponse::Usage#output_tokens_details
196
+ class OutputTokensDetails < OpenAI::Internal::Type::BaseModel
197
+ # @!attribute image_tokens
198
+ # The number of image output tokens generated by the model.
199
+ #
200
+ # @return [Integer]
201
+ required :image_tokens, Integer
202
+
203
+ # @!attribute text_tokens
204
+ # The number of text output tokens generated by the model.
205
+ #
206
+ # @return [Integer]
207
+ required :text_tokens, Integer
208
+
209
+ # @!method initialize(image_tokens:, text_tokens:)
210
+ # The output token details for the image generation.
211
+ #
212
+ # @param image_tokens [Integer] The number of image output tokens generated by the model.
213
+ #
214
+ # @param text_tokens [Integer] The number of text output tokens generated by the model.
215
+ end
186
216
  end
187
217
  end
188
218
  end
@@ -14,11 +14,12 @@ module OpenAI
14
14
 
15
15
  # @!attribute model
16
16
  # The model to use for transcription. Current options are `whisper-1`,
17
- # `gpt-4o-mini-transcribe`, `gpt-4o-transcribe`, and `gpt-4o-transcribe-diarize`.
18
- # Use `gpt-4o-transcribe-diarize` when you need diarization with speaker labels.
17
+ # `gpt-4o-mini-transcribe`, `gpt-4o-mini-transcribe-2025-12-15`,
18
+ # `gpt-4o-transcribe`, and `gpt-4o-transcribe-diarize`. Use
19
+ # `gpt-4o-transcribe-diarize` when you need diarization with speaker labels.
19
20
  #
20
- # @return [Symbol, OpenAI::Models::Realtime::AudioTranscription::Model, nil]
21
- optional :model, enum: -> { OpenAI::Realtime::AudioTranscription::Model }
21
+ # @return [String, Symbol, OpenAI::Models::Realtime::AudioTranscription::Model, nil]
22
+ optional :model, union: -> { OpenAI::Realtime::AudioTranscription::Model }
22
23
 
23
24
  # @!attribute prompt
24
25
  # An optional text to guide the model's style or continue a previous audio
@@ -36,25 +37,47 @@ module OpenAI
36
37
  #
37
38
  # @param language [String] The language of the input audio. Supplying the input language in
38
39
  #
39
- # @param model [Symbol, OpenAI::Models::Realtime::AudioTranscription::Model] The model to use for transcription. Current options are `whisper-1`, `gpt-4o-min
40
+ # @param model [String, Symbol, OpenAI::Models::Realtime::AudioTranscription::Model] The model to use for transcription. Current options are `whisper-1`, `gpt-4o-min
40
41
  #
41
42
  # @param prompt [String] An optional text to guide the model's style or continue a previous audio
42
43
 
43
44
  # The model to use for transcription. Current options are `whisper-1`,
44
- # `gpt-4o-mini-transcribe`, `gpt-4o-transcribe`, and `gpt-4o-transcribe-diarize`.
45
- # Use `gpt-4o-transcribe-diarize` when you need diarization with speaker labels.
45
+ # `gpt-4o-mini-transcribe`, `gpt-4o-mini-transcribe-2025-12-15`,
46
+ # `gpt-4o-transcribe`, and `gpt-4o-transcribe-diarize`. Use
47
+ # `gpt-4o-transcribe-diarize` when you need diarization with speaker labels.
46
48
  #
47
49
  # @see OpenAI::Models::Realtime::AudioTranscription#model
48
50
  module Model
49
- extend OpenAI::Internal::Type::Enum
51
+ extend OpenAI::Internal::Type::Union
52
+
53
+ variant String
54
+
55
+ variant const: -> { OpenAI::Models::Realtime::AudioTranscription::Model::WHISPER_1 }
56
+
57
+ variant const: -> { OpenAI::Models::Realtime::AudioTranscription::Model::GPT_4O_MINI_TRANSCRIBE }
58
+
59
+ variant const: -> { OpenAI::Models::Realtime::AudioTranscription::Model::GPT_4O_MINI_TRANSCRIBE_2025_12_15 }
60
+
61
+ variant const: -> { OpenAI::Models::Realtime::AudioTranscription::Model::GPT_4O_TRANSCRIBE }
62
+
63
+ variant const: -> { OpenAI::Models::Realtime::AudioTranscription::Model::GPT_4O_TRANSCRIBE_DIARIZE }
64
+
65
+ # @!method self.variants
66
+ # @return [Array(String, Symbol)]
67
+
68
+ define_sorbet_constant!(:Variants) do
69
+ T.type_alias { T.any(String, OpenAI::Realtime::AudioTranscription::Model::TaggedSymbol) }
70
+ end
71
+
72
+ # @!group
50
73
 
51
74
  WHISPER_1 = :"whisper-1"
52
75
  GPT_4O_MINI_TRANSCRIBE = :"gpt-4o-mini-transcribe"
76
+ GPT_4O_MINI_TRANSCRIBE_2025_12_15 = :"gpt-4o-mini-transcribe-2025-12-15"
53
77
  GPT_4O_TRANSCRIBE = :"gpt-4o-transcribe"
54
78
  GPT_4O_TRANSCRIBE_DIARIZE = :"gpt-4o-transcribe-diarize"
55
79
 
56
- # @!method self.values
57
- # @return [Array<Symbol>]
80
+ # @!endgroup
58
81
  end
59
82
  end
60
83
  end
@@ -94,8 +94,8 @@ module OpenAI
94
94
  # @!attribute model
95
95
  # The Realtime model used for this session.
96
96
  #
97
- # @return [Symbol, OpenAI::Models::Realtime::RealtimeSession::Model, nil]
98
- optional :model, enum: -> { OpenAI::Realtime::RealtimeSession::Model }
97
+ # @return [String, Symbol, OpenAI::Models::Realtime::RealtimeSession::Model, nil]
98
+ optional :model, union: -> { OpenAI::Realtime::RealtimeSession::Model }
99
99
 
100
100
  # @!attribute object
101
101
  # The object type. Always `realtime.session`.
@@ -205,7 +205,7 @@ module OpenAI
205
205
  #
206
206
  # @param modalities [Array<Symbol, OpenAI::Models::Realtime::RealtimeSession::Modality>] The set of modalities the model can respond with. To disable audio,
207
207
  #
208
- # @param model [Symbol, OpenAI::Models::Realtime::RealtimeSession::Model] The Realtime model used for this session.
208
+ # @param model [String, Symbol, OpenAI::Models::Realtime::RealtimeSession::Model] The Realtime model used for this session.
209
209
  #
210
210
  # @param object [Symbol, OpenAI::Models::Realtime::RealtimeSession::Object] The object type. Always `realtime.session`.
211
211
  #
@@ -306,7 +306,46 @@ module OpenAI
306
306
  #
307
307
  # @see OpenAI::Models::Realtime::RealtimeSession#model
308
308
  module Model
309
- extend OpenAI::Internal::Type::Enum
309
+ extend OpenAI::Internal::Type::Union
310
+
311
+ variant String
312
+
313
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_REALTIME }
314
+
315
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_REALTIME_2025_08_28 }
316
+
317
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_4O_REALTIME_PREVIEW }
318
+
319
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_4O_REALTIME_PREVIEW_2024_10_01 }
320
+
321
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_4O_REALTIME_PREVIEW_2024_12_17 }
322
+
323
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_4O_REALTIME_PREVIEW_2025_06_03 }
324
+
325
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_4O_MINI_REALTIME_PREVIEW }
326
+
327
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17 }
328
+
329
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_REALTIME_MINI }
330
+
331
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_REALTIME_MINI_2025_10_06 }
332
+
333
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_REALTIME_MINI_2025_12_15 }
334
+
335
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_AUDIO_MINI }
336
+
337
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_AUDIO_MINI_2025_10_06 }
338
+
339
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSession::Model::GPT_AUDIO_MINI_2025_12_15 }
340
+
341
+ # @!method self.variants
342
+ # @return [Array(String, Symbol)]
343
+
344
+ define_sorbet_constant!(:Variants) do
345
+ T.type_alias { T.any(String, OpenAI::Realtime::RealtimeSession::Model::TaggedSymbol) }
346
+ end
347
+
348
+ # @!group
310
349
 
311
350
  GPT_REALTIME = :"gpt-realtime"
312
351
  GPT_REALTIME_2025_08_28 = :"gpt-realtime-2025-08-28"
@@ -318,11 +357,12 @@ module OpenAI
318
357
  GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17 = :"gpt-4o-mini-realtime-preview-2024-12-17"
319
358
  GPT_REALTIME_MINI = :"gpt-realtime-mini"
320
359
  GPT_REALTIME_MINI_2025_10_06 = :"gpt-realtime-mini-2025-10-06"
360
+ GPT_REALTIME_MINI_2025_12_15 = :"gpt-realtime-mini-2025-12-15"
321
361
  GPT_AUDIO_MINI = :"gpt-audio-mini"
322
362
  GPT_AUDIO_MINI_2025_10_06 = :"gpt-audio-mini-2025-10-06"
363
+ GPT_AUDIO_MINI_2025_12_15 = :"gpt-audio-mini-2025-12-15"
323
364
 
324
- # @!method self.values
325
- # @return [Array<Symbol>]
365
+ # @!endgroup
326
366
  end
327
367
 
328
368
  # The object type. Always `realtime.session`.
@@ -203,10 +203,14 @@ module OpenAI
203
203
 
204
204
  variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateRequest::Model::GPT_REALTIME_MINI_2025_10_06 }
205
205
 
206
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateRequest::Model::GPT_REALTIME_MINI_2025_12_15 }
207
+
206
208
  variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateRequest::Model::GPT_AUDIO_MINI }
207
209
 
208
210
  variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateRequest::Model::GPT_AUDIO_MINI_2025_10_06 }
209
211
 
212
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateRequest::Model::GPT_AUDIO_MINI_2025_12_15 }
213
+
210
214
  # @!method self.variants
211
215
  # @return [Array(String, Symbol)]
212
216
 
@@ -226,8 +230,10 @@ module OpenAI
226
230
  GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17 = :"gpt-4o-mini-realtime-preview-2024-12-17"
227
231
  GPT_REALTIME_MINI = :"gpt-realtime-mini"
228
232
  GPT_REALTIME_MINI_2025_10_06 = :"gpt-realtime-mini-2025-10-06"
233
+ GPT_REALTIME_MINI_2025_12_15 = :"gpt-realtime-mini-2025-12-15"
229
234
  GPT_AUDIO_MINI = :"gpt-audio-mini"
230
235
  GPT_AUDIO_MINI_2025_10_06 = :"gpt-audio-mini-2025-10-06"
236
+ GPT_AUDIO_MINI_2025_12_15 = :"gpt-audio-mini-2025-12-15"
231
237
 
232
238
  # @!endgroup
233
239
  end
@@ -612,10 +612,14 @@ module OpenAI
612
612
 
613
613
  variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Model::GPT_REALTIME_MINI_2025_10_06 }
614
614
 
615
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Model::GPT_REALTIME_MINI_2025_12_15 }
616
+
615
617
  variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Model::GPT_AUDIO_MINI }
616
618
 
617
619
  variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Model::GPT_AUDIO_MINI_2025_10_06 }
618
620
 
621
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Model::GPT_AUDIO_MINI_2025_12_15 }
622
+
619
623
  # @!method self.variants
620
624
  # @return [Array(String, Symbol)]
621
625
 
@@ -635,8 +639,10 @@ module OpenAI
635
639
  GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17 = :"gpt-4o-mini-realtime-preview-2024-12-17"
636
640
  GPT_REALTIME_MINI = :"gpt-realtime-mini"
637
641
  GPT_REALTIME_MINI_2025_10_06 = :"gpt-realtime-mini-2025-10-06"
642
+ GPT_REALTIME_MINI_2025_12_15 = :"gpt-realtime-mini-2025-12-15"
638
643
  GPT_AUDIO_MINI = :"gpt-audio-mini"
639
644
  GPT_AUDIO_MINI_2025_10_06 = :"gpt-audio-mini-2025-10-06"
645
+ GPT_AUDIO_MINI_2025_12_15 = :"gpt-audio-mini-2025-12-15"
640
646
 
641
647
  # @!endgroup
642
648
  end
@@ -27,7 +27,7 @@ module OpenAI
27
27
  # A tool that runs Python code to help generate a response to a prompt.
28
28
  variant :code_interpreter, -> { OpenAI::Responses::Tool::CodeInterpreter }
29
29
 
30
- # A tool that generates images using a model like `gpt-image-1`.
30
+ # A tool that generates images using the GPT image models.
31
31
  variant :image_generation, -> { OpenAI::Responses::Tool::ImageGeneration }
32
32
 
33
33
  # A tool that allows the model to execute shell commands in a local environment.
@@ -473,8 +473,8 @@ module OpenAI
473
473
  # @!attribute model
474
474
  # The image generation model to use. Default: `gpt-image-1`.
475
475
  #
476
- # @return [Symbol, OpenAI::Models::Responses::Tool::ImageGeneration::Model, nil]
477
- optional :model, enum: -> { OpenAI::Responses::Tool::ImageGeneration::Model }
476
+ # @return [String, Symbol, OpenAI::Models::Responses::Tool::ImageGeneration::Model, nil]
477
+ optional :model, union: -> { OpenAI::Responses::Tool::ImageGeneration::Model }
478
478
 
479
479
  # @!attribute moderation
480
480
  # Moderation level for the generated image. Default: `auto`.
@@ -520,7 +520,7 @@ module OpenAI
520
520
  # Some parameter documentations has been truncated, see
521
521
  # {OpenAI::Models::Responses::Tool::ImageGeneration} for more details.
522
522
  #
523
- # A tool that generates images using a model like `gpt-image-1`.
523
+ # A tool that generates images using the GPT image models.
524
524
  #
525
525
  # @param background [Symbol, OpenAI::Models::Responses::Tool::ImageGeneration::Background] Background type for the generated image. One of `transparent`,
526
526
  #
@@ -528,7 +528,7 @@ module OpenAI
528
528
  #
529
529
  # @param input_image_mask [OpenAI::Models::Responses::Tool::ImageGeneration::InputImageMask] Optional mask for inpainting. Contains `image_url`
530
530
  #
531
- # @param model [Symbol, OpenAI::Models::Responses::Tool::ImageGeneration::Model] The image generation model to use. Default: `gpt-image-1`.
531
+ # @param model [String, Symbol, OpenAI::Models::Responses::Tool::ImageGeneration::Model] The image generation model to use. Default: `gpt-image-1`.
532
532
  #
533
533
  # @param moderation [Symbol, OpenAI::Models::Responses::Tool::ImageGeneration::Moderation] Moderation level for the generated image. Default: `auto`.
534
534
  #
@@ -606,13 +606,27 @@ module OpenAI
606
606
  #
607
607
  # @see OpenAI::Models::Responses::Tool::ImageGeneration#model
608
608
  module Model
609
- extend OpenAI::Internal::Type::Enum
609
+ extend OpenAI::Internal::Type::Union
610
+
611
+ variant String
612
+
613
+ variant const: -> { OpenAI::Models::Responses::Tool::ImageGeneration::Model::GPT_IMAGE_1 }
614
+
615
+ variant const: -> { OpenAI::Models::Responses::Tool::ImageGeneration::Model::GPT_IMAGE_1_MINI }
616
+
617
+ # @!method self.variants
618
+ # @return [Array(String, Symbol)]
619
+
620
+ define_sorbet_constant!(:Variants) do
621
+ T.type_alias { T.any(String, OpenAI::Responses::Tool::ImageGeneration::Model::TaggedSymbol) }
622
+ end
623
+
624
+ # @!group
610
625
 
611
626
  GPT_IMAGE_1 = :"gpt-image-1"
612
627
  GPT_IMAGE_1_MINI = :"gpt-image-1-mini"
613
628
 
614
- # @!method self.values
615
- # @return [Array<Symbol>]
629
+ # @!endgroup
616
630
  end
617
631
 
618
632
  # Moderation level for the generated image. Default: `auto`.
@@ -37,8 +37,8 @@ module OpenAI
37
37
  # @!attribute model
38
38
  # The video generation model that produced the job.
39
39
  #
40
- # @return [Symbol, OpenAI::Models::VideoModel]
41
- required :model, enum: -> { OpenAI::VideoModel }
40
+ # @return [String, Symbol, OpenAI::Models::VideoModel]
41
+ required :model, union: -> { OpenAI::VideoModel }
42
42
 
43
43
  # @!attribute object
44
44
  # The object type, which is always `video`.
@@ -95,7 +95,7 @@ module OpenAI
95
95
  #
96
96
  # @param expires_at [Integer, nil] Unix timestamp (seconds) for when the downloadable assets expire, if set.
97
97
  #
98
- # @param model [Symbol, OpenAI::Models::VideoModel] The video generation model that produced the job.
98
+ # @param model [String, Symbol, OpenAI::Models::VideoModel] The video generation model that produced the job.
99
99
  #
100
100
  # @param progress [Integer] Approximate completion percentage for the generation task.
101
101
  #
@@ -23,8 +23,8 @@ module OpenAI
23
23
  # The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults
24
24
  # to `sora-2`.
25
25
  #
26
- # @return [Symbol, OpenAI::Models::VideoModel, nil]
27
- optional :model, enum: -> { OpenAI::VideoModel }
26
+ # @return [String, Symbol, OpenAI::Models::VideoModel, nil]
27
+ optional :model, union: -> { OpenAI::VideoModel }
28
28
 
29
29
  # @!attribute seconds
30
30
  # Clip duration in seconds (allowed values: 4, 8, 12). Defaults to 4 seconds.
@@ -47,7 +47,7 @@ module OpenAI
47
47
  #
48
48
  # @param input_reference [Pathname, StringIO, IO, String, OpenAI::FilePart] Optional image reference that guides generation.
49
49
  #
50
- # @param model [Symbol, OpenAI::Models::VideoModel] The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults
50
+ # @param model [String, Symbol, OpenAI::Models::VideoModel] The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults
51
51
  #
52
52
  # @param seconds [Symbol, OpenAI::Models::VideoSeconds] Clip duration in seconds (allowed values: 4, 8, 12). Defaults to 4 seconds.
53
53
  #
@@ -3,7 +3,28 @@
3
3
  module OpenAI
4
4
  module Models
5
5
  module VideoModel
6
- extend OpenAI::Internal::Type::Enum
6
+ extend OpenAI::Internal::Type::Union
7
+
8
+ variant String
9
+
10
+ variant const: -> { OpenAI::Models::VideoModel::SORA_2 }
11
+
12
+ variant const: -> { OpenAI::Models::VideoModel::SORA_2_PRO }
13
+
14
+ variant const: -> { OpenAI::Models::VideoModel::SORA_2_2025_10_06 }
15
+
16
+ variant const: -> { OpenAI::Models::VideoModel::SORA_2_PRO_2025_10_06 }
17
+
18
+ variant const: -> { OpenAI::Models::VideoModel::SORA_2_2025_12_08 }
19
+
20
+ # @!method self.variants
21
+ # @return [Array(String, Symbol)]
22
+
23
+ define_sorbet_constant!(:Variants) do
24
+ T.type_alias { T.any(String, OpenAI::VideoModel::TaggedSymbol) }
25
+ end
26
+
27
+ # @!group
7
28
 
8
29
  SORA_2 = :"sora-2"
9
30
  SORA_2_PRO = :"sora-2-pro"
@@ -11,8 +32,7 @@ module OpenAI
11
32
  SORA_2_PRO_2025_10_06 = :"sora-2-pro-2025-10-06"
12
33
  SORA_2_2025_12_08 = :"sora-2-2025-12-08"
13
34
 
14
- # @!method self.values
15
- # @return [Array<Symbol>]
35
+ # @!endgroup
16
36
  end
17
37
  end
18
38
  end
@@ -59,7 +59,7 @@ module OpenAI
59
59
  #
60
60
  # @param mask [Pathname, StringIO, IO, String, OpenAI::FilePart] An additional image whose fully transparent areas (e.g. where alpha is zero) ind
61
61
  #
62
- # @param model [String, Symbol, OpenAI::Models::ImageModel, nil] The model to use for image generation. Only `dall-e-2` and `gpt-image-1` are sup
62
+ # @param model [String, Symbol, OpenAI::Models::ImageModel, nil] The model to use for image generation. Only `dall-e-2` and the GPT image models
63
63
  #
64
64
  # @param n [Integer, nil] The number of images to generate. Must be between 1 and 10.
65
65
  #
@@ -118,7 +118,7 @@ module OpenAI
118
118
  #
119
119
  # @param mask [Pathname, StringIO, IO, String, OpenAI::FilePart] An additional image whose fully transparent areas (e.g. where alpha is zero) ind
120
120
  #
121
- # @param model [String, Symbol, OpenAI::Models::ImageModel, nil] The model to use for image generation. Only `dall-e-2` and `gpt-image-1` are sup
121
+ # @param model [String, Symbol, OpenAI::Models::ImageModel, nil] The model to use for image generation. Only `dall-e-2` and the GPT image models
122
122
  #
123
123
  # @param n [Integer, nil] The number of images to generate. Must be between 1 and 10.
124
124
  #
@@ -173,9 +173,9 @@ module OpenAI
173
173
  #
174
174
  # @param background [Symbol, OpenAI::Models::ImageGenerateParams::Background, nil] Allows to set transparency for the background of the generated image(s).
175
175
  #
176
- # @param model [String, Symbol, OpenAI::Models::ImageModel, nil] The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or `gpt-im
176
+ # @param model [String, Symbol, OpenAI::Models::ImageModel, nil] The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or a GPT i
177
177
  #
178
- # @param moderation [Symbol, OpenAI::Models::ImageGenerateParams::Moderation, nil] Control the content-moderation level for images generated by `gpt-image-1`. Must
178
+ # @param moderation [Symbol, OpenAI::Models::ImageGenerateParams::Moderation, nil] Control the content-moderation level for images generated by the GPT image model
179
179
  #
180
180
  # @param n [Integer, nil] The number of images to generate. Must be between 1 and 10. For `dall-e-3`, only
181
181
  #
@@ -229,9 +229,9 @@ module OpenAI
229
229
  #
230
230
  # @param background [Symbol, OpenAI::Models::ImageGenerateParams::Background, nil] Allows to set transparency for the background of the generated image(s).
231
231
  #
232
- # @param model [String, Symbol, OpenAI::Models::ImageModel, nil] The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or `gpt-im
232
+ # @param model [String, Symbol, OpenAI::Models::ImageModel, nil] The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or a GPT i
233
233
  #
234
- # @param moderation [Symbol, OpenAI::Models::ImageGenerateParams::Moderation, nil] Control the content-moderation level for images generated by `gpt-image-1`. Must
234
+ # @param moderation [Symbol, OpenAI::Models::ImageGenerateParams::Moderation, nil] Control the content-moderation level for images generated by the GPT image model
235
235
  #
236
236
  # @param n [Integer, nil] The number of images to generate. Must be between 1 and 10. For `dall-e-3`, only
237
237
  #