openai 0.86.0 → 0.87.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +10 -1
- data/examples/audio/record_and_play.rb +19 -0
- data/examples/responses/websocket_workflows.rb +159 -0
- data/lib/openai/helpers/local_audio/errors.rb +27 -0
- data/lib/openai/helpers/local_audio/process.rb +158 -0
- data/lib/openai/helpers/local_audio.rb +157 -0
- data/lib/openai/helpers/realtime/connection.rb +20 -2
- data/lib/openai/helpers/realtime/errors.rb +18 -0
- data/lib/openai/helpers/realtime/recovery.rb +489 -0
- data/lib/openai/helpers/realtime/resources/realtime_extension.rb +26 -1
- data/lib/openai/helpers/realtime.rb +1 -0
- data/lib/openai/models/beta/beta_response_input_item.rb +84 -1
- data/lib/openai/models/beta/beta_response_item.rb +72 -1
- data/lib/openai/models/beta/beta_response_output_item.rb +84 -1
- data/lib/openai/models/beta/beta_responses_client_event.rb +3 -0
- data/lib/openai/models/beta/beta_tool.rb +69 -37
- data/lib/openai/models/beta/response_create_params.rb +3 -0
- data/lib/openai/models/conversations/conversation_item.rb +82 -1
- data/lib/openai/models/image_edit_completed_event.rb +34 -8
- data/lib/openai/models/image_edit_params.rb +64 -44
- data/lib/openai/models/image_edit_partial_image_event.rb +34 -8
- data/lib/openai/models/image_gen_completed_event.rb +34 -8
- data/lib/openai/models/image_gen_partial_image_event.rb +34 -8
- data/lib/openai/models/image_generate_params.rb +51 -35
- data/lib/openai/models/image_model.rb +4 -0
- data/lib/openai/models/images_response.rb +37 -13
- data/lib/openai/models/responses/response_create_params.rb +3 -0
- data/lib/openai/models/responses/response_input_item.rb +84 -1
- data/lib/openai/models/responses/response_item.rb +72 -1
- data/lib/openai/models/responses/response_output_item.rb +84 -1
- data/lib/openai/models/responses/responses_client_event.rb +3 -0
- data/lib/openai/models/responses/tool.rb +69 -37
- data/lib/openai/models/webhooks/live_call_incoming_webhook_event.rb +3 -3
- data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +5 -3
- data/lib/openai/resources/images.rb +12 -14
- data/lib/openai/version.rb +1 -1
- data/local-audio.md +146 -0
- data/rbi/openai/helpers/local_audio/interface.rbi +110 -0
- data/rbi/openai/helpers/realtime/connection.rbi +18 -2
- data/rbi/openai/helpers/realtime/extensions.rbi +8 -0
- data/rbi/openai/helpers/realtime/recovery.rbi +27 -0
- data/rbi/openai/models/beta/beta_response_input_item.rbi +86 -1
- data/rbi/openai/models/beta/beta_response_item.rbi +78 -1
- data/rbi/openai/models/beta/beta_response_output_item.rbi +84 -1
- data/rbi/openai/models/beta/beta_responses_client_event.rbi +6 -0
- data/rbi/openai/models/beta/beta_tool.rbi +90 -51
- data/rbi/openai/models/beta/response_create_params.rbi +6 -0
- data/rbi/openai/models/conversations/conversation_item.rbi +88 -1
- data/rbi/openai/models/image_edit_completed_event.rbi +20 -9
- data/rbi/openai/models/image_edit_params.rbi +89 -60
- data/rbi/openai/models/image_edit_partial_image_event.rbi +20 -9
- data/rbi/openai/models/image_gen_completed_event.rbi +20 -9
- data/rbi/openai/models/image_gen_partial_image_event.rbi +20 -9
- data/rbi/openai/models/image_generate_params.rbi +71 -48
- data/rbi/openai/models/image_model.rbi +4 -0
- data/rbi/openai/models/images_response.rbi +27 -16
- data/rbi/openai/models/responses/response_create_params.rbi +6 -0
- data/rbi/openai/models/responses/response_input_item.rbi +88 -1
- data/rbi/openai/models/responses/response_item.rbi +80 -1
- data/rbi/openai/models/responses/response_output_item.rbi +84 -1
- data/rbi/openai/models/responses/responses_client_event.rbi +6 -0
- data/rbi/openai/models/responses/tool.rbi +90 -51
- data/rbi/openai/models/webhooks/live_call_incoming_webhook_event.rbi +4 -4
- data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +8 -4
- data/rbi/openai/resources/beta/responses.rbi +6 -2
- data/rbi/openai/resources/images.rbi +106 -76
- data/rbi/openai/resources/responses.rbi +6 -0
- data/realtime.md +101 -0
- data/responses-websocket.md +182 -0
- data/sig/openai/helpers/local_audio/interface.rbs +62 -0
- data/sig/openai/helpers/realtime/connection.rbs +9 -1
- data/sig/openai/helpers/realtime/extensions.rbs +4 -0
- data/sig/openai/helpers/realtime/recovery.rbs +19 -0
- data/sig/openai/models/beta/beta_response_input_item.rbs +39 -2
- data/sig/openai/models/beta/beta_response_item.rbs +39 -2
- data/sig/openai/models/beta/beta_response_output_item.rbs +39 -2
- data/sig/openai/models/beta/beta_tool.rbs +11 -1
- data/sig/openai/models/conversations/conversation_item.rbs +39 -2
- data/sig/openai/models/image_edit_completed_event.rbs +11 -4
- data/sig/openai/models/image_edit_params.rbs +3 -1
- data/sig/openai/models/image_edit_partial_image_event.rbs +11 -4
- data/sig/openai/models/image_gen_completed_event.rbs +11 -4
- data/sig/openai/models/image_gen_partial_image_event.rbs +11 -4
- data/sig/openai/models/image_generate_params.rbs +4 -1
- data/sig/openai/models/image_model.rbs +8 -0
- data/sig/openai/models/images_response.rbs +10 -4
- data/sig/openai/models/responses/response_input_item.rbs +39 -2
- data/sig/openai/models/responses/response_item.rbs +39 -2
- data/sig/openai/models/responses/response_output_item.rbs +39 -2
- data/sig/openai/models/responses/tool.rbs +11 -1
- metadata +15 -1
|
@@ -32,8 +32,8 @@ module OpenAI
|
|
|
32
32
|
sig { returns(OpenAI::ImageEditCompletedEvent::Quality::TaggedSymbol) }
|
|
33
33
|
attr_accessor :quality
|
|
34
34
|
|
|
35
|
-
# The
|
|
36
|
-
sig { returns(OpenAI::ImageEditCompletedEvent::Size::
|
|
35
|
+
# The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
|
|
36
|
+
sig { returns(OpenAI::ImageEditCompletedEvent::Size::Variants) }
|
|
37
37
|
attr_accessor :size
|
|
38
38
|
|
|
39
39
|
# The type of the event. Always `image_edit.completed`.
|
|
@@ -62,7 +62,7 @@ module OpenAI
|
|
|
62
62
|
|
|
63
63
|
quality: OpenAI::ImageEditCompletedEvent::Quality::OrSymbol,
|
|
64
64
|
|
|
65
|
-
size: OpenAI::ImageEditCompletedEvent::Size::OrSymbol,
|
|
65
|
+
size: T.any(String, OpenAI::ImageEditCompletedEvent::Size::OrSymbol),
|
|
66
66
|
|
|
67
67
|
usage: OpenAI::ImageEditCompletedEvent::Usage::OrHash,
|
|
68
68
|
|
|
@@ -87,7 +87,7 @@ module OpenAI
|
|
|
87
87
|
# The quality setting for the edited image.
|
|
88
88
|
quality:,
|
|
89
89
|
|
|
90
|
-
# The
|
|
90
|
+
# The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
|
|
91
91
|
size:,
|
|
92
92
|
|
|
93
93
|
# For the GPT image models only, the token usage information for the image
|
|
@@ -108,7 +108,7 @@ module OpenAI
|
|
|
108
108
|
created_at: Integer,
|
|
109
109
|
output_format: OpenAI::ImageEditCompletedEvent::OutputFormat::TaggedSymbol,
|
|
110
110
|
quality: OpenAI::ImageEditCompletedEvent::Quality::TaggedSymbol,
|
|
111
|
-
size: OpenAI::ImageEditCompletedEvent::Size::
|
|
111
|
+
size: OpenAI::ImageEditCompletedEvent::Size::Variants,
|
|
112
112
|
type: Symbol,
|
|
113
113
|
usage: OpenAI::ImageEditCompletedEvent::Usage
|
|
114
114
|
}
|
|
@@ -159,6 +159,8 @@ module OpenAI
|
|
|
159
159
|
LOW = T.let(:low, OpenAI::ImageEditCompletedEvent::Quality::TaggedSymbol)
|
|
160
160
|
MEDIUM = T.let(:medium, OpenAI::ImageEditCompletedEvent::Quality::TaggedSymbol)
|
|
161
161
|
HIGH = T.let(:high, OpenAI::ImageEditCompletedEvent::Quality::TaggedSymbol)
|
|
162
|
+
XHIGH = T.let(:xhigh, OpenAI::ImageEditCompletedEvent::Quality::TaggedSymbol)
|
|
163
|
+
MAX = T.let(:max, OpenAI::ImageEditCompletedEvent::Quality::TaggedSymbol)
|
|
162
164
|
AUTO = T.let(:auto, OpenAI::ImageEditCompletedEvent::Quality::TaggedSymbol)
|
|
163
165
|
|
|
164
166
|
sig { override.returns(T::Array[OpenAI::ImageEditCompletedEvent::Quality::TaggedSymbol]) }
|
|
@@ -166,11 +168,20 @@ module OpenAI
|
|
|
166
168
|
end
|
|
167
169
|
end
|
|
168
170
|
|
|
169
|
-
# The
|
|
171
|
+
# The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
|
|
170
172
|
module Size
|
|
171
|
-
extend OpenAI::Internal::Type::
|
|
173
|
+
extend OpenAI::Internal::Type::Union
|
|
174
|
+
|
|
175
|
+
Variants = T.type_alias { T.any(String, OpenAI::ImageEditCompletedEvent::Size::TaggedSymbol) }
|
|
176
|
+
|
|
177
|
+
sig { override.returns(T::Array[OpenAI::ImageEditCompletedEvent::Size::Variants]) }
|
|
178
|
+
def self.variants
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
TaggedSymbol = T.type_alias do
|
|
182
|
+
T.all(Symbol, OpenAI::ImageEditCompletedEvent::Size)
|
|
183
|
+
end
|
|
172
184
|
|
|
173
|
-
TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::ImageEditCompletedEvent::Size) }
|
|
174
185
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
175
186
|
|
|
176
187
|
SIZE_1024X1024 = T.let(:"1024x1024", OpenAI::ImageEditCompletedEvent::Size::TaggedSymbol)
|
|
@@ -178,7 +189,7 @@ module OpenAI
|
|
|
178
189
|
SIZE_1536X1024 = T.let(:"1536x1024", OpenAI::ImageEditCompletedEvent::Size::TaggedSymbol)
|
|
179
190
|
AUTO = T.let(:auto, OpenAI::ImageEditCompletedEvent::Size::TaggedSymbol)
|
|
180
191
|
|
|
181
|
-
sig {
|
|
192
|
+
sig { returns(T::Array[OpenAI::ImageEditCompletedEvent::Size::TaggedSymbol]) }
|
|
182
193
|
def self.values
|
|
183
194
|
end
|
|
184
195
|
end
|
|
@@ -18,9 +18,11 @@ module OpenAI
|
|
|
18
18
|
# The image(s) to edit. Must be a supported image file or an array of images.
|
|
19
19
|
#
|
|
20
20
|
# For the GPT image models (`gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`,
|
|
21
|
-
# `gpt-image-2`, `gpt-image-2-2026-04-21`,
|
|
22
|
-
#
|
|
23
|
-
#
|
|
21
|
+
# `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
|
|
22
|
+
# `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
|
|
23
|
+
# `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`), each image should
|
|
24
|
+
# be a `png`, `webp`, or `jpg` file less than 50MB. You can provide up to 16
|
|
25
|
+
# images.
|
|
24
26
|
#
|
|
25
27
|
# For `dall-e-2`, you can only provide one image, and it should be a square `png`
|
|
26
28
|
# file less than 4MB.
|
|
@@ -40,9 +42,11 @@ module OpenAI
|
|
|
40
42
|
# one of `transparent`, `opaque`, or `auto` (default value). When `auto` is used,
|
|
41
43
|
# the model will automatically determine the best background for the image.
|
|
42
44
|
#
|
|
43
|
-
#
|
|
44
|
-
# `
|
|
45
|
-
#
|
|
45
|
+
# `gpt-image-2.5-sunburst` and `gpt-image-2.5-flare`, including their `2026-09-08`
|
|
46
|
+
# snapshots, support `opaque` and `transparent` backgrounds. Transparent
|
|
47
|
+
# backgrounds are available for supported GPT Image models. For `gpt-image-2` and
|
|
48
|
+
# `gpt-image-2-2026-04-21`, this support is in preview. When using `transparent`,
|
|
49
|
+
# set the output format to `png` or `webp`.
|
|
46
50
|
sig { returns(T.nilable(OpenAI::ImageEditParams::Background::OrSymbol)) }
|
|
47
51
|
attr_accessor :background
|
|
48
52
|
|
|
@@ -69,7 +73,9 @@ module OpenAI
|
|
|
69
73
|
|
|
70
74
|
# The model to use for image generation. One of `dall-e-2` or a GPT image model
|
|
71
75
|
# (`gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
|
|
72
|
-
# `gpt-image-2-2026-04-21`,
|
|
76
|
+
# `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
|
|
77
|
+
# `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
|
|
78
|
+
# `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`). Defaults to
|
|
73
79
|
# `gpt-image-1.5`.
|
|
74
80
|
sig { returns(T.nilable(T.any(String, OpenAI::ImageModel::OrSymbol))) }
|
|
75
81
|
attr_accessor :model
|
|
@@ -99,8 +105,10 @@ module OpenAI
|
|
|
99
105
|
sig { returns(T.nilable(Integer)) }
|
|
100
106
|
attr_accessor :partial_images
|
|
101
107
|
|
|
102
|
-
# The quality of the image that will be generated for GPT image models.
|
|
103
|
-
#
|
|
108
|
+
# The quality of the image that will be generated for GPT image models. The GPT
|
|
109
|
+
# image models support `low`, `medium`, and `high`. `gpt-image-2.5-sunburst` and
|
|
110
|
+
# `gpt-image-2.5-flare`, including their `2026-09-08` snapshots, also support
|
|
111
|
+
# `xhigh` and `max`. Defaults to `auto`.
|
|
104
112
|
sig { returns(T.nilable(OpenAI::ImageEditParams::Quality::OrSymbol)) }
|
|
105
113
|
attr_accessor :quality
|
|
106
114
|
|
|
@@ -111,17 +119,18 @@ module OpenAI
|
|
|
111
119
|
sig { returns(T.nilable(OpenAI::ImageEditParams::ResponseFormat::OrSymbol)) }
|
|
112
120
|
attr_accessor :response_format
|
|
113
121
|
|
|
114
|
-
# The size of the generated images. For `gpt-image-2`
|
|
115
|
-
# `gpt-image-2-2026-
|
|
116
|
-
#
|
|
117
|
-
#
|
|
118
|
-
#
|
|
119
|
-
#
|
|
120
|
-
#
|
|
121
|
-
#
|
|
122
|
-
#
|
|
123
|
-
# `
|
|
124
|
-
# `
|
|
122
|
+
# The size of the generated images. For `gpt-image-2`, `gpt-image-2-2026-04-21`,
|
|
123
|
+
# `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
|
|
124
|
+
# `gpt-image-2.5-flare`, and `gpt-image-2.5-flare-2026-09-08`, arbitrary
|
|
125
|
+
# resolutions are supported as `WIDTHxHEIGHT` strings, for example `1536x864`.
|
|
126
|
+
# Width and height must both be divisible by 16 and the requested aspect ratio
|
|
127
|
+
# must be between 1:3 and 3:1. Resolutions above `2560x1440` are experimental, and
|
|
128
|
+
# the maximum supported resolution is `3840x2160`. The requested size must also
|
|
129
|
+
# satisfy the model's current pixel and edge limits. The standard sizes
|
|
130
|
+
# `1024x1024`, `1536x1024`, and `1024x1536` are supported by the GPT image models;
|
|
131
|
+
# `auto` is supported for models that allow automatic sizing. For `dall-e-2`, use
|
|
132
|
+
# one of `256x256`, `512x512`, or `1024x1024`. For `dall-e-3`, use one of
|
|
133
|
+
# `1024x1024`, `1792x1024`, or `1024x1792`.
|
|
125
134
|
sig { returns(T.nilable(T.any(String, OpenAI::ImageEditParams::Size::OrSymbol))) }
|
|
126
135
|
attr_accessor :size
|
|
127
136
|
|
|
@@ -174,9 +183,11 @@ module OpenAI
|
|
|
174
183
|
# The image(s) to edit. Must be a supported image file or an array of images.
|
|
175
184
|
#
|
|
176
185
|
# For the GPT image models (`gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`,
|
|
177
|
-
# `gpt-image-2`, `gpt-image-2-2026-04-21`,
|
|
178
|
-
#
|
|
179
|
-
#
|
|
186
|
+
# `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
|
|
187
|
+
# `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
|
|
188
|
+
# `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`), each image should
|
|
189
|
+
# be a `png`, `webp`, or `jpg` file less than 50MB. You can provide up to 16
|
|
190
|
+
# images.
|
|
180
191
|
#
|
|
181
192
|
# For `dall-e-2`, you can only provide one image, and it should be a square `png`
|
|
182
193
|
# file less than 4MB.
|
|
@@ -194,9 +205,11 @@ module OpenAI
|
|
|
194
205
|
# one of `transparent`, `opaque`, or `auto` (default value). When `auto` is used,
|
|
195
206
|
# the model will automatically determine the best background for the image.
|
|
196
207
|
#
|
|
197
|
-
#
|
|
198
|
-
# `
|
|
199
|
-
#
|
|
208
|
+
# `gpt-image-2.5-sunburst` and `gpt-image-2.5-flare`, including their `2026-09-08`
|
|
209
|
+
# snapshots, support `opaque` and `transparent` backgrounds. Transparent
|
|
210
|
+
# backgrounds are available for supported GPT Image models. For `gpt-image-2` and
|
|
211
|
+
# `gpt-image-2-2026-04-21`, this support is in preview. When using `transparent`,
|
|
212
|
+
# set the output format to `png` or `webp`.
|
|
200
213
|
background: nil,
|
|
201
214
|
|
|
202
215
|
# Control how much effort the model will exert to match the style and features,
|
|
@@ -217,7 +230,9 @@ module OpenAI
|
|
|
217
230
|
|
|
218
231
|
# The model to use for image generation. One of `dall-e-2` or a GPT image model
|
|
219
232
|
# (`gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
|
|
220
|
-
# `gpt-image-2-2026-04-21`,
|
|
233
|
+
# `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
|
|
234
|
+
# `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
|
|
235
|
+
# `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`). Defaults to
|
|
221
236
|
# `gpt-image-1.5`.
|
|
222
237
|
model: nil,
|
|
223
238
|
|
|
@@ -242,8 +257,10 @@ module OpenAI
|
|
|
242
257
|
# are generated if the full image is generated more quickly.
|
|
243
258
|
partial_images: nil,
|
|
244
259
|
|
|
245
|
-
# The quality of the image that will be generated for GPT image models.
|
|
246
|
-
#
|
|
260
|
+
# The quality of the image that will be generated for GPT image models. The GPT
|
|
261
|
+
# image models support `low`, `medium`, and `high`. `gpt-image-2.5-sunburst` and
|
|
262
|
+
# `gpt-image-2.5-flare`, including their `2026-09-08` snapshots, also support
|
|
263
|
+
# `xhigh` and `max`. Defaults to `auto`.
|
|
247
264
|
quality: nil,
|
|
248
265
|
|
|
249
266
|
# The format in which the generated images are returned. Must be one of `url` or
|
|
@@ -252,17 +269,18 @@ module OpenAI
|
|
|
252
269
|
# `dall-e-2`), as GPT image models always return base64-encoded images.
|
|
253
270
|
response_format: nil,
|
|
254
271
|
|
|
255
|
-
# The size of the generated images. For `gpt-image-2`
|
|
256
|
-
# `gpt-image-2-2026-
|
|
257
|
-
#
|
|
258
|
-
#
|
|
259
|
-
#
|
|
260
|
-
#
|
|
261
|
-
#
|
|
262
|
-
#
|
|
263
|
-
#
|
|
264
|
-
# `
|
|
265
|
-
# `
|
|
272
|
+
# The size of the generated images. For `gpt-image-2`, `gpt-image-2-2026-04-21`,
|
|
273
|
+
# `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
|
|
274
|
+
# `gpt-image-2.5-flare`, and `gpt-image-2.5-flare-2026-09-08`, arbitrary
|
|
275
|
+
# resolutions are supported as `WIDTHxHEIGHT` strings, for example `1536x864`.
|
|
276
|
+
# Width and height must both be divisible by 16 and the requested aspect ratio
|
|
277
|
+
# must be between 1:3 and 3:1. Resolutions above `2560x1440` are experimental, and
|
|
278
|
+
# the maximum supported resolution is `3840x2160`. The requested size must also
|
|
279
|
+
# satisfy the model's current pixel and edge limits. The standard sizes
|
|
280
|
+
# `1024x1024`, `1536x1024`, and `1024x1536` are supported by the GPT image models;
|
|
281
|
+
# `auto` is supported for models that allow automatic sizing. For `dall-e-2`, use
|
|
282
|
+
# one of `256x256`, `512x512`, or `1024x1024`. For `dall-e-3`, use one of
|
|
283
|
+
# `1024x1024`, `1792x1024`, or `1024x1792`.
|
|
266
284
|
size: nil,
|
|
267
285
|
|
|
268
286
|
# A unique identifier representing your end-user, which can help OpenAI to monitor
|
|
@@ -301,9 +319,11 @@ module OpenAI
|
|
|
301
319
|
# The image(s) to edit. Must be a supported image file or an array of images.
|
|
302
320
|
#
|
|
303
321
|
# For the GPT image models (`gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`,
|
|
304
|
-
# `gpt-image-2`, `gpt-image-2-2026-04-21`,
|
|
305
|
-
#
|
|
306
|
-
#
|
|
322
|
+
# `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
|
|
323
|
+
# `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
|
|
324
|
+
# `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`), each image should
|
|
325
|
+
# be a `png`, `webp`, or `jpg` file less than 50MB. You can provide up to 16
|
|
326
|
+
# images.
|
|
307
327
|
#
|
|
308
328
|
# For `dall-e-2`, you can only provide one image, and it should be a square `png`
|
|
309
329
|
# file less than 4MB.
|
|
@@ -327,9 +347,11 @@ module OpenAI
|
|
|
327
347
|
# one of `transparent`, `opaque`, or `auto` (default value). When `auto` is used,
|
|
328
348
|
# the model will automatically determine the best background for the image.
|
|
329
349
|
#
|
|
330
|
-
#
|
|
331
|
-
# `
|
|
332
|
-
#
|
|
350
|
+
# `gpt-image-2.5-sunburst` and `gpt-image-2.5-flare`, including their `2026-09-08`
|
|
351
|
+
# snapshots, support `opaque` and `transparent` backgrounds. Transparent
|
|
352
|
+
# backgrounds are available for supported GPT Image models. For `gpt-image-2` and
|
|
353
|
+
# `gpt-image-2-2026-04-21`, this support is in preview. When using `transparent`,
|
|
354
|
+
# set the output format to `png` or `webp`.
|
|
333
355
|
module Background
|
|
334
356
|
extend OpenAI::Internal::Type::Enum
|
|
335
357
|
|
|
@@ -365,7 +387,9 @@ module OpenAI
|
|
|
365
387
|
|
|
366
388
|
# The model to use for image generation. One of `dall-e-2` or a GPT image model
|
|
367
389
|
# (`gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
|
|
368
|
-
# `gpt-image-2-2026-04-21`,
|
|
390
|
+
# `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
|
|
391
|
+
# `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
|
|
392
|
+
# `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`). Defaults to
|
|
369
393
|
# `gpt-image-1.5`.
|
|
370
394
|
module Model
|
|
371
395
|
extend OpenAI::Internal::Type::Union
|
|
@@ -396,8 +420,10 @@ module OpenAI
|
|
|
396
420
|
end
|
|
397
421
|
end
|
|
398
422
|
|
|
399
|
-
# The quality of the image that will be generated for GPT image models.
|
|
400
|
-
#
|
|
423
|
+
# The quality of the image that will be generated for GPT image models. The GPT
|
|
424
|
+
# image models support `low`, `medium`, and `high`. `gpt-image-2.5-sunburst` and
|
|
425
|
+
# `gpt-image-2.5-flare`, including their `2026-09-08` snapshots, also support
|
|
426
|
+
# `xhigh` and `max`. Defaults to `auto`.
|
|
401
427
|
module Quality
|
|
402
428
|
extend OpenAI::Internal::Type::Enum
|
|
403
429
|
|
|
@@ -408,6 +434,8 @@ module OpenAI
|
|
|
408
434
|
LOW = T.let(:low, OpenAI::ImageEditParams::Quality::TaggedSymbol)
|
|
409
435
|
MEDIUM = T.let(:medium, OpenAI::ImageEditParams::Quality::TaggedSymbol)
|
|
410
436
|
HIGH = T.let(:high, OpenAI::ImageEditParams::Quality::TaggedSymbol)
|
|
437
|
+
XHIGH = T.let(:xhigh, OpenAI::ImageEditParams::Quality::TaggedSymbol)
|
|
438
|
+
MAX = T.let(:max, OpenAI::ImageEditParams::Quality::TaggedSymbol)
|
|
411
439
|
AUTO = T.let(:auto, OpenAI::ImageEditParams::Quality::TaggedSymbol)
|
|
412
440
|
|
|
413
441
|
sig { override.returns(T::Array[OpenAI::ImageEditParams::Quality::TaggedSymbol]) }
|
|
@@ -433,17 +461,18 @@ module OpenAI
|
|
|
433
461
|
end
|
|
434
462
|
end
|
|
435
463
|
|
|
436
|
-
# The size of the generated images. For `gpt-image-2`
|
|
437
|
-
# `gpt-image-2-2026-
|
|
438
|
-
#
|
|
439
|
-
#
|
|
440
|
-
#
|
|
441
|
-
#
|
|
442
|
-
#
|
|
443
|
-
#
|
|
444
|
-
#
|
|
445
|
-
# `
|
|
446
|
-
# `
|
|
464
|
+
# The size of the generated images. For `gpt-image-2`, `gpt-image-2-2026-04-21`,
|
|
465
|
+
# `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
|
|
466
|
+
# `gpt-image-2.5-flare`, and `gpt-image-2.5-flare-2026-09-08`, arbitrary
|
|
467
|
+
# resolutions are supported as `WIDTHxHEIGHT` strings, for example `1536x864`.
|
|
468
|
+
# Width and height must both be divisible by 16 and the requested aspect ratio
|
|
469
|
+
# must be between 1:3 and 3:1. Resolutions above `2560x1440` are experimental, and
|
|
470
|
+
# the maximum supported resolution is `3840x2160`. The requested size must also
|
|
471
|
+
# satisfy the model's current pixel and edge limits. The standard sizes
|
|
472
|
+
# `1024x1024`, `1536x1024`, and `1024x1536` are supported by the GPT image models;
|
|
473
|
+
# `auto` is supported for models that allow automatic sizing. For `dall-e-2`, use
|
|
474
|
+
# one of `256x256`, `512x512`, or `1024x1024`. For `dall-e-3`, use one of
|
|
475
|
+
# `1024x1024`, `1792x1024`, or `1024x1792`.
|
|
447
476
|
module Size
|
|
448
477
|
extend OpenAI::Internal::Type::Union
|
|
449
478
|
|
|
@@ -36,8 +36,8 @@ module OpenAI
|
|
|
36
36
|
sig { returns(OpenAI::ImageEditPartialImageEvent::Quality::TaggedSymbol) }
|
|
37
37
|
attr_accessor :quality
|
|
38
38
|
|
|
39
|
-
# The
|
|
40
|
-
sig { returns(OpenAI::ImageEditPartialImageEvent::Size::
|
|
39
|
+
# The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
|
|
40
|
+
sig { returns(OpenAI::ImageEditPartialImageEvent::Size::Variants) }
|
|
41
41
|
attr_accessor :size
|
|
42
42
|
|
|
43
43
|
# The type of the event. Always `image_edit.partial_image`.
|
|
@@ -60,7 +60,7 @@ module OpenAI
|
|
|
60
60
|
|
|
61
61
|
quality: OpenAI::ImageEditPartialImageEvent::Quality::OrSymbol,
|
|
62
62
|
|
|
63
|
-
size: OpenAI::ImageEditPartialImageEvent::Size::OrSymbol,
|
|
63
|
+
size: T.any(String, OpenAI::ImageEditPartialImageEvent::Size::OrSymbol),
|
|
64
64
|
|
|
65
65
|
type: Symbol
|
|
66
66
|
)
|
|
@@ -86,7 +86,7 @@ module OpenAI
|
|
|
86
86
|
# The quality setting for the requested edited image.
|
|
87
87
|
quality:,
|
|
88
88
|
|
|
89
|
-
# The
|
|
89
|
+
# The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
|
|
90
90
|
size:,
|
|
91
91
|
|
|
92
92
|
# The type of the event. Always `image_edit.partial_image`.
|
|
@@ -104,7 +104,7 @@ module OpenAI
|
|
|
104
104
|
output_format: OpenAI::ImageEditPartialImageEvent::OutputFormat::TaggedSymbol,
|
|
105
105
|
partial_image_index: Integer,
|
|
106
106
|
quality: OpenAI::ImageEditPartialImageEvent::Quality::TaggedSymbol,
|
|
107
|
-
size: OpenAI::ImageEditPartialImageEvent::Size::
|
|
107
|
+
size: OpenAI::ImageEditPartialImageEvent::Size::Variants,
|
|
108
108
|
type: Symbol
|
|
109
109
|
}
|
|
110
110
|
)
|
|
@@ -154,6 +154,8 @@ module OpenAI
|
|
|
154
154
|
LOW = T.let(:low, OpenAI::ImageEditPartialImageEvent::Quality::TaggedSymbol)
|
|
155
155
|
MEDIUM = T.let(:medium, OpenAI::ImageEditPartialImageEvent::Quality::TaggedSymbol)
|
|
156
156
|
HIGH = T.let(:high, OpenAI::ImageEditPartialImageEvent::Quality::TaggedSymbol)
|
|
157
|
+
XHIGH = T.let(:xhigh, OpenAI::ImageEditPartialImageEvent::Quality::TaggedSymbol)
|
|
158
|
+
MAX = T.let(:max, OpenAI::ImageEditPartialImageEvent::Quality::TaggedSymbol)
|
|
157
159
|
AUTO = T.let(:auto, OpenAI::ImageEditPartialImageEvent::Quality::TaggedSymbol)
|
|
158
160
|
|
|
159
161
|
sig { override.returns(T::Array[OpenAI::ImageEditPartialImageEvent::Quality::TaggedSymbol]) }
|
|
@@ -161,11 +163,20 @@ module OpenAI
|
|
|
161
163
|
end
|
|
162
164
|
end
|
|
163
165
|
|
|
164
|
-
# The
|
|
166
|
+
# The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
|
|
165
167
|
module Size
|
|
166
|
-
extend OpenAI::Internal::Type::
|
|
168
|
+
extend OpenAI::Internal::Type::Union
|
|
169
|
+
|
|
170
|
+
Variants = T.type_alias { T.any(String, OpenAI::ImageEditPartialImageEvent::Size::TaggedSymbol) }
|
|
171
|
+
|
|
172
|
+
sig { override.returns(T::Array[OpenAI::ImageEditPartialImageEvent::Size::Variants]) }
|
|
173
|
+
def self.variants
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
TaggedSymbol = T.type_alias do
|
|
177
|
+
T.all(Symbol, OpenAI::ImageEditPartialImageEvent::Size)
|
|
178
|
+
end
|
|
167
179
|
|
|
168
|
-
TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::ImageEditPartialImageEvent::Size) }
|
|
169
180
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
170
181
|
|
|
171
182
|
SIZE_1024X1024 = T.let(:"1024x1024", OpenAI::ImageEditPartialImageEvent::Size::TaggedSymbol)
|
|
@@ -173,7 +184,7 @@ module OpenAI
|
|
|
173
184
|
SIZE_1536X1024 = T.let(:"1536x1024", OpenAI::ImageEditPartialImageEvent::Size::TaggedSymbol)
|
|
174
185
|
AUTO = T.let(:auto, OpenAI::ImageEditPartialImageEvent::Size::TaggedSymbol)
|
|
175
186
|
|
|
176
|
-
sig {
|
|
187
|
+
sig { returns(T::Array[OpenAI::ImageEditPartialImageEvent::Size::TaggedSymbol]) }
|
|
177
188
|
def self.values
|
|
178
189
|
end
|
|
179
190
|
end
|
|
@@ -32,8 +32,8 @@ module OpenAI
|
|
|
32
32
|
sig { returns(OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol) }
|
|
33
33
|
attr_accessor :quality
|
|
34
34
|
|
|
35
|
-
# The
|
|
36
|
-
sig { returns(OpenAI::ImageGenCompletedEvent::Size::
|
|
35
|
+
# The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
|
|
36
|
+
sig { returns(OpenAI::ImageGenCompletedEvent::Size::Variants) }
|
|
37
37
|
attr_accessor :size
|
|
38
38
|
|
|
39
39
|
# The type of the event. Always `image_generation.completed`.
|
|
@@ -62,7 +62,7 @@ module OpenAI
|
|
|
62
62
|
|
|
63
63
|
quality: OpenAI::ImageGenCompletedEvent::Quality::OrSymbol,
|
|
64
64
|
|
|
65
|
-
size: OpenAI::ImageGenCompletedEvent::Size::OrSymbol,
|
|
65
|
+
size: T.any(String, OpenAI::ImageGenCompletedEvent::Size::OrSymbol),
|
|
66
66
|
|
|
67
67
|
usage: OpenAI::ImageGenCompletedEvent::Usage::OrHash,
|
|
68
68
|
|
|
@@ -87,7 +87,7 @@ module OpenAI
|
|
|
87
87
|
# The quality setting for the generated image.
|
|
88
88
|
quality:,
|
|
89
89
|
|
|
90
|
-
# The
|
|
90
|
+
# The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
|
|
91
91
|
size:,
|
|
92
92
|
|
|
93
93
|
# For the GPT image models only, the token usage information for the image
|
|
@@ -108,7 +108,7 @@ module OpenAI
|
|
|
108
108
|
created_at: Integer,
|
|
109
109
|
output_format: OpenAI::ImageGenCompletedEvent::OutputFormat::TaggedSymbol,
|
|
110
110
|
quality: OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol,
|
|
111
|
-
size: OpenAI::ImageGenCompletedEvent::Size::
|
|
111
|
+
size: OpenAI::ImageGenCompletedEvent::Size::Variants,
|
|
112
112
|
type: Symbol,
|
|
113
113
|
usage: OpenAI::ImageGenCompletedEvent::Usage
|
|
114
114
|
}
|
|
@@ -159,6 +159,8 @@ module OpenAI
|
|
|
159
159
|
LOW = T.let(:low, OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol)
|
|
160
160
|
MEDIUM = T.let(:medium, OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol)
|
|
161
161
|
HIGH = T.let(:high, OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol)
|
|
162
|
+
XHIGH = T.let(:xhigh, OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol)
|
|
163
|
+
MAX = T.let(:max, OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol)
|
|
162
164
|
AUTO = T.let(:auto, OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol)
|
|
163
165
|
|
|
164
166
|
sig { override.returns(T::Array[OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol]) }
|
|
@@ -166,11 +168,20 @@ module OpenAI
|
|
|
166
168
|
end
|
|
167
169
|
end
|
|
168
170
|
|
|
169
|
-
# The
|
|
171
|
+
# The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
|
|
170
172
|
module Size
|
|
171
|
-
extend OpenAI::Internal::Type::
|
|
173
|
+
extend OpenAI::Internal::Type::Union
|
|
174
|
+
|
|
175
|
+
Variants = T.type_alias { T.any(String, OpenAI::ImageGenCompletedEvent::Size::TaggedSymbol) }
|
|
176
|
+
|
|
177
|
+
sig { override.returns(T::Array[OpenAI::ImageGenCompletedEvent::Size::Variants]) }
|
|
178
|
+
def self.variants
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
TaggedSymbol = T.type_alias do
|
|
182
|
+
T.all(Symbol, OpenAI::ImageGenCompletedEvent::Size)
|
|
183
|
+
end
|
|
172
184
|
|
|
173
|
-
TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::ImageGenCompletedEvent::Size) }
|
|
174
185
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
175
186
|
|
|
176
187
|
SIZE_1024X1024 = T.let(:"1024x1024", OpenAI::ImageGenCompletedEvent::Size::TaggedSymbol)
|
|
@@ -178,7 +189,7 @@ module OpenAI
|
|
|
178
189
|
SIZE_1536X1024 = T.let(:"1536x1024", OpenAI::ImageGenCompletedEvent::Size::TaggedSymbol)
|
|
179
190
|
AUTO = T.let(:auto, OpenAI::ImageGenCompletedEvent::Size::TaggedSymbol)
|
|
180
191
|
|
|
181
|
-
sig {
|
|
192
|
+
sig { returns(T::Array[OpenAI::ImageGenCompletedEvent::Size::TaggedSymbol]) }
|
|
182
193
|
def self.values
|
|
183
194
|
end
|
|
184
195
|
end
|
|
@@ -36,8 +36,8 @@ module OpenAI
|
|
|
36
36
|
sig { returns(OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol) }
|
|
37
37
|
attr_accessor :quality
|
|
38
38
|
|
|
39
|
-
# The
|
|
40
|
-
sig { returns(OpenAI::ImageGenPartialImageEvent::Size::
|
|
39
|
+
# The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
|
|
40
|
+
sig { returns(OpenAI::ImageGenPartialImageEvent::Size::Variants) }
|
|
41
41
|
attr_accessor :size
|
|
42
42
|
|
|
43
43
|
# The type of the event. Always `image_generation.partial_image`.
|
|
@@ -60,7 +60,7 @@ module OpenAI
|
|
|
60
60
|
|
|
61
61
|
quality: OpenAI::ImageGenPartialImageEvent::Quality::OrSymbol,
|
|
62
62
|
|
|
63
|
-
size: OpenAI::ImageGenPartialImageEvent::Size::OrSymbol,
|
|
63
|
+
size: T.any(String, OpenAI::ImageGenPartialImageEvent::Size::OrSymbol),
|
|
64
64
|
|
|
65
65
|
type: Symbol
|
|
66
66
|
)
|
|
@@ -86,7 +86,7 @@ module OpenAI
|
|
|
86
86
|
# The quality setting for the requested image.
|
|
87
87
|
quality:,
|
|
88
88
|
|
|
89
|
-
# The
|
|
89
|
+
# The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
|
|
90
90
|
size:,
|
|
91
91
|
|
|
92
92
|
# The type of the event. Always `image_generation.partial_image`.
|
|
@@ -104,7 +104,7 @@ module OpenAI
|
|
|
104
104
|
output_format: OpenAI::ImageGenPartialImageEvent::OutputFormat::TaggedSymbol,
|
|
105
105
|
partial_image_index: Integer,
|
|
106
106
|
quality: OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol,
|
|
107
|
-
size: OpenAI::ImageGenPartialImageEvent::Size::
|
|
107
|
+
size: OpenAI::ImageGenPartialImageEvent::Size::Variants,
|
|
108
108
|
type: Symbol
|
|
109
109
|
}
|
|
110
110
|
)
|
|
@@ -154,6 +154,8 @@ module OpenAI
|
|
|
154
154
|
LOW = T.let(:low, OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol)
|
|
155
155
|
MEDIUM = T.let(:medium, OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol)
|
|
156
156
|
HIGH = T.let(:high, OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol)
|
|
157
|
+
XHIGH = T.let(:xhigh, OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol)
|
|
158
|
+
MAX = T.let(:max, OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol)
|
|
157
159
|
AUTO = T.let(:auto, OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol)
|
|
158
160
|
|
|
159
161
|
sig { override.returns(T::Array[OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol]) }
|
|
@@ -161,11 +163,20 @@ module OpenAI
|
|
|
161
163
|
end
|
|
162
164
|
end
|
|
163
165
|
|
|
164
|
-
# The
|
|
166
|
+
# The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
|
|
165
167
|
module Size
|
|
166
|
-
extend OpenAI::Internal::Type::
|
|
168
|
+
extend OpenAI::Internal::Type::Union
|
|
169
|
+
|
|
170
|
+
Variants = T.type_alias { T.any(String, OpenAI::ImageGenPartialImageEvent::Size::TaggedSymbol) }
|
|
171
|
+
|
|
172
|
+
sig { override.returns(T::Array[OpenAI::ImageGenPartialImageEvent::Size::Variants]) }
|
|
173
|
+
def self.variants
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
TaggedSymbol = T.type_alias do
|
|
177
|
+
T.all(Symbol, OpenAI::ImageGenPartialImageEvent::Size)
|
|
178
|
+
end
|
|
167
179
|
|
|
168
|
-
TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::ImageGenPartialImageEvent::Size) }
|
|
169
180
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
170
181
|
|
|
171
182
|
SIZE_1024X1024 = T.let(:"1024x1024", OpenAI::ImageGenPartialImageEvent::Size::TaggedSymbol)
|
|
@@ -173,7 +184,7 @@ module OpenAI
|
|
|
173
184
|
SIZE_1536X1024 = T.let(:"1536x1024", OpenAI::ImageGenPartialImageEvent::Size::TaggedSymbol)
|
|
174
185
|
AUTO = T.let(:auto, OpenAI::ImageGenPartialImageEvent::Size::TaggedSymbol)
|
|
175
186
|
|
|
176
|
-
sig {
|
|
187
|
+
sig { returns(T::Array[OpenAI::ImageGenPartialImageEvent::Size::TaggedSymbol]) }
|
|
177
188
|
def self.values
|
|
178
189
|
end
|
|
179
190
|
end
|