openai 0.13.1 → 0.14.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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/image_edit_completed_event.rb +198 -0
  5. data/lib/openai/models/image_edit_params.rb +36 -1
  6. data/lib/openai/models/image_edit_partial_image_event.rb +135 -0
  7. data/lib/openai/models/image_edit_stream_event.rb +21 -0
  8. data/lib/openai/models/image_gen_completed_event.rb +198 -0
  9. data/lib/openai/models/image_gen_partial_image_event.rb +135 -0
  10. data/lib/openai/models/image_gen_stream_event.rb +21 -0
  11. data/lib/openai/models/image_generate_params.rb +13 -1
  12. data/lib/openai/models/images_response.rb +3 -0
  13. data/lib/openai/models/responses/response_output_refusal.rb +2 -2
  14. data/lib/openai/models/responses/tool.rb +30 -1
  15. data/lib/openai/models.rb +12 -0
  16. data/lib/openai/resources/images.rb +140 -2
  17. data/lib/openai/version.rb +1 -1
  18. data/lib/openai.rb +6 -0
  19. data/rbi/openai/models/image_edit_completed_event.rbi +346 -0
  20. data/rbi/openai/models/image_edit_params.rbi +51 -0
  21. data/rbi/openai/models/image_edit_partial_image_event.rbi +249 -0
  22. data/rbi/openai/models/image_edit_stream_event.rbi +22 -0
  23. data/rbi/openai/models/image_gen_completed_event.rbi +339 -0
  24. data/rbi/openai/models/image_gen_partial_image_event.rbi +243 -0
  25. data/rbi/openai/models/image_gen_stream_event.rbi +22 -0
  26. data/rbi/openai/models/image_generate_params.rbi +12 -0
  27. data/rbi/openai/models/responses/response_output_refusal.rbi +2 -2
  28. data/rbi/openai/models/responses/tool.rbi +61 -0
  29. data/rbi/openai/models.rbi +12 -0
  30. data/rbi/openai/resources/images.rbi +225 -0
  31. data/sig/openai/models/image_edit_completed_event.rbs +150 -0
  32. data/sig/openai/models/image_edit_params.rbs +21 -0
  33. data/sig/openai/models/image_edit_partial_image_event.rbs +105 -0
  34. data/sig/openai/models/image_edit_stream_event.rbs +12 -0
  35. data/sig/openai/models/image_gen_completed_event.rbs +150 -0
  36. data/sig/openai/models/image_gen_partial_image_event.rbs +105 -0
  37. data/sig/openai/models/image_gen_stream_event.rbs +12 -0
  38. data/sig/openai/models/image_generate_params.rbs +5 -0
  39. data/sig/openai/models/responses/tool.rbs +16 -0
  40. data/sig/openai/models.rbs +12 -0
  41. data/sig/openai/resources/images.rbs +38 -0
  42. metadata +20 -2
@@ -0,0 +1,22 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ # Emitted when a partial image is available during image editing streaming.
6
+ module ImageEditStreamEvent
7
+ extend OpenAI::Internal::Type::Union
8
+
9
+ Variants =
10
+ T.type_alias do
11
+ T.any(
12
+ OpenAI::ImageEditPartialImageEvent,
13
+ OpenAI::ImageEditCompletedEvent
14
+ )
15
+ end
16
+
17
+ sig { override.returns(T::Array[OpenAI::ImageEditStreamEvent::Variants]) }
18
+ def self.variants
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,339 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ class ImageGenCompletedEvent < OpenAI::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(OpenAI::ImageGenCompletedEvent, OpenAI::Internal::AnyHash)
9
+ end
10
+
11
+ # Base64-encoded image data, suitable for rendering as an image.
12
+ sig { returns(String) }
13
+ attr_accessor :b64_json
14
+
15
+ # The background setting for the generated image.
16
+ sig { returns(OpenAI::ImageGenCompletedEvent::Background::TaggedSymbol) }
17
+ attr_accessor :background
18
+
19
+ # The Unix timestamp when the event was created.
20
+ sig { returns(Integer) }
21
+ attr_accessor :created_at
22
+
23
+ # The output format for the generated image.
24
+ sig do
25
+ returns(OpenAI::ImageGenCompletedEvent::OutputFormat::TaggedSymbol)
26
+ end
27
+ attr_accessor :output_format
28
+
29
+ # The quality setting for the generated image.
30
+ sig { returns(OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol) }
31
+ attr_accessor :quality
32
+
33
+ # The size of the generated image.
34
+ sig { returns(OpenAI::ImageGenCompletedEvent::Size::TaggedSymbol) }
35
+ attr_accessor :size
36
+
37
+ # The type of the event. Always `image_generation.completed`.
38
+ sig { returns(Symbol) }
39
+ attr_accessor :type
40
+
41
+ # For `gpt-image-1` only, the token usage information for the image generation.
42
+ sig { returns(OpenAI::ImageGenCompletedEvent::Usage) }
43
+ attr_reader :usage
44
+
45
+ sig { params(usage: OpenAI::ImageGenCompletedEvent::Usage::OrHash).void }
46
+ attr_writer :usage
47
+
48
+ # Emitted when image generation has completed and the final image is available.
49
+ sig do
50
+ params(
51
+ b64_json: String,
52
+ background: OpenAI::ImageGenCompletedEvent::Background::OrSymbol,
53
+ created_at: Integer,
54
+ output_format: OpenAI::ImageGenCompletedEvent::OutputFormat::OrSymbol,
55
+ quality: OpenAI::ImageGenCompletedEvent::Quality::OrSymbol,
56
+ size: OpenAI::ImageGenCompletedEvent::Size::OrSymbol,
57
+ usage: OpenAI::ImageGenCompletedEvent::Usage::OrHash,
58
+ type: Symbol
59
+ ).returns(T.attached_class)
60
+ end
61
+ def self.new(
62
+ # Base64-encoded image data, suitable for rendering as an image.
63
+ b64_json:,
64
+ # The background setting for the generated image.
65
+ background:,
66
+ # The Unix timestamp when the event was created.
67
+ created_at:,
68
+ # The output format for the generated image.
69
+ output_format:,
70
+ # The quality setting for the generated image.
71
+ quality:,
72
+ # The size of the generated image.
73
+ size:,
74
+ # For `gpt-image-1` only, the token usage information for the image generation.
75
+ usage:,
76
+ # The type of the event. Always `image_generation.completed`.
77
+ type: :"image_generation.completed"
78
+ )
79
+ end
80
+
81
+ sig do
82
+ override.returns(
83
+ {
84
+ b64_json: String,
85
+ background:
86
+ OpenAI::ImageGenCompletedEvent::Background::TaggedSymbol,
87
+ created_at: Integer,
88
+ output_format:
89
+ OpenAI::ImageGenCompletedEvent::OutputFormat::TaggedSymbol,
90
+ quality: OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol,
91
+ size: OpenAI::ImageGenCompletedEvent::Size::TaggedSymbol,
92
+ type: Symbol,
93
+ usage: OpenAI::ImageGenCompletedEvent::Usage
94
+ }
95
+ )
96
+ end
97
+ def to_hash
98
+ end
99
+
100
+ # The background setting for the generated image.
101
+ module Background
102
+ extend OpenAI::Internal::Type::Enum
103
+
104
+ TaggedSymbol =
105
+ T.type_alias do
106
+ T.all(Symbol, OpenAI::ImageGenCompletedEvent::Background)
107
+ end
108
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
109
+
110
+ TRANSPARENT =
111
+ T.let(
112
+ :transparent,
113
+ OpenAI::ImageGenCompletedEvent::Background::TaggedSymbol
114
+ )
115
+ OPAQUE =
116
+ T.let(
117
+ :opaque,
118
+ OpenAI::ImageGenCompletedEvent::Background::TaggedSymbol
119
+ )
120
+ AUTO =
121
+ T.let(:auto, OpenAI::ImageGenCompletedEvent::Background::TaggedSymbol)
122
+
123
+ sig do
124
+ override.returns(
125
+ T::Array[OpenAI::ImageGenCompletedEvent::Background::TaggedSymbol]
126
+ )
127
+ end
128
+ def self.values
129
+ end
130
+ end
131
+
132
+ # The output format for the generated image.
133
+ module OutputFormat
134
+ extend OpenAI::Internal::Type::Enum
135
+
136
+ TaggedSymbol =
137
+ T.type_alias do
138
+ T.all(Symbol, OpenAI::ImageGenCompletedEvent::OutputFormat)
139
+ end
140
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
141
+
142
+ PNG =
143
+ T.let(
144
+ :png,
145
+ OpenAI::ImageGenCompletedEvent::OutputFormat::TaggedSymbol
146
+ )
147
+ WEBP =
148
+ T.let(
149
+ :webp,
150
+ OpenAI::ImageGenCompletedEvent::OutputFormat::TaggedSymbol
151
+ )
152
+ JPEG =
153
+ T.let(
154
+ :jpeg,
155
+ OpenAI::ImageGenCompletedEvent::OutputFormat::TaggedSymbol
156
+ )
157
+
158
+ sig do
159
+ override.returns(
160
+ T::Array[OpenAI::ImageGenCompletedEvent::OutputFormat::TaggedSymbol]
161
+ )
162
+ end
163
+ def self.values
164
+ end
165
+ end
166
+
167
+ # The quality setting for the generated image.
168
+ module Quality
169
+ extend OpenAI::Internal::Type::Enum
170
+
171
+ TaggedSymbol =
172
+ T.type_alias do
173
+ T.all(Symbol, OpenAI::ImageGenCompletedEvent::Quality)
174
+ end
175
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
176
+
177
+ LOW = T.let(:low, OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol)
178
+ MEDIUM =
179
+ T.let(:medium, OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol)
180
+ HIGH =
181
+ T.let(:high, OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol)
182
+ AUTO =
183
+ T.let(:auto, OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol)
184
+
185
+ sig do
186
+ override.returns(
187
+ T::Array[OpenAI::ImageGenCompletedEvent::Quality::TaggedSymbol]
188
+ )
189
+ end
190
+ def self.values
191
+ end
192
+ end
193
+
194
+ # The size of the generated image.
195
+ module Size
196
+ extend OpenAI::Internal::Type::Enum
197
+
198
+ TaggedSymbol =
199
+ T.type_alias { T.all(Symbol, OpenAI::ImageGenCompletedEvent::Size) }
200
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
201
+
202
+ SIZE_1024X1024 =
203
+ T.let(
204
+ :"1024x1024",
205
+ OpenAI::ImageGenCompletedEvent::Size::TaggedSymbol
206
+ )
207
+ SIZE_1024X1536 =
208
+ T.let(
209
+ :"1024x1536",
210
+ OpenAI::ImageGenCompletedEvent::Size::TaggedSymbol
211
+ )
212
+ SIZE_1536X1024 =
213
+ T.let(
214
+ :"1536x1024",
215
+ OpenAI::ImageGenCompletedEvent::Size::TaggedSymbol
216
+ )
217
+ AUTO = T.let(:auto, OpenAI::ImageGenCompletedEvent::Size::TaggedSymbol)
218
+
219
+ sig do
220
+ override.returns(
221
+ T::Array[OpenAI::ImageGenCompletedEvent::Size::TaggedSymbol]
222
+ )
223
+ end
224
+ def self.values
225
+ end
226
+ end
227
+
228
+ class Usage < OpenAI::Internal::Type::BaseModel
229
+ OrHash =
230
+ T.type_alias do
231
+ T.any(
232
+ OpenAI::ImageGenCompletedEvent::Usage,
233
+ OpenAI::Internal::AnyHash
234
+ )
235
+ end
236
+
237
+ # The number of tokens (images and text) in the input prompt.
238
+ sig { returns(Integer) }
239
+ attr_accessor :input_tokens
240
+
241
+ # The input tokens detailed information for the image generation.
242
+ sig do
243
+ returns(OpenAI::ImageGenCompletedEvent::Usage::InputTokensDetails)
244
+ end
245
+ attr_reader :input_tokens_details
246
+
247
+ sig do
248
+ params(
249
+ input_tokens_details:
250
+ OpenAI::ImageGenCompletedEvent::Usage::InputTokensDetails::OrHash
251
+ ).void
252
+ end
253
+ attr_writer :input_tokens_details
254
+
255
+ # The number of image tokens in the output image.
256
+ sig { returns(Integer) }
257
+ attr_accessor :output_tokens
258
+
259
+ # The total number of tokens (images and text) used for the image generation.
260
+ sig { returns(Integer) }
261
+ attr_accessor :total_tokens
262
+
263
+ # For `gpt-image-1` only, the token usage information for the image generation.
264
+ sig do
265
+ params(
266
+ input_tokens: Integer,
267
+ input_tokens_details:
268
+ OpenAI::ImageGenCompletedEvent::Usage::InputTokensDetails::OrHash,
269
+ output_tokens: Integer,
270
+ total_tokens: Integer
271
+ ).returns(T.attached_class)
272
+ end
273
+ def self.new(
274
+ # The number of tokens (images and text) in the input prompt.
275
+ input_tokens:,
276
+ # The input tokens detailed information for the image generation.
277
+ input_tokens_details:,
278
+ # The number of image tokens in the output image.
279
+ output_tokens:,
280
+ # The total number of tokens (images and text) used for the image generation.
281
+ total_tokens:
282
+ )
283
+ end
284
+
285
+ sig do
286
+ override.returns(
287
+ {
288
+ input_tokens: Integer,
289
+ input_tokens_details:
290
+ OpenAI::ImageGenCompletedEvent::Usage::InputTokensDetails,
291
+ output_tokens: Integer,
292
+ total_tokens: Integer
293
+ }
294
+ )
295
+ end
296
+ def to_hash
297
+ end
298
+
299
+ class InputTokensDetails < OpenAI::Internal::Type::BaseModel
300
+ OrHash =
301
+ T.type_alias do
302
+ T.any(
303
+ OpenAI::ImageGenCompletedEvent::Usage::InputTokensDetails,
304
+ OpenAI::Internal::AnyHash
305
+ )
306
+ end
307
+
308
+ # The number of image tokens in the input prompt.
309
+ sig { returns(Integer) }
310
+ attr_accessor :image_tokens
311
+
312
+ # The number of text tokens in the input prompt.
313
+ sig { returns(Integer) }
314
+ attr_accessor :text_tokens
315
+
316
+ # The input tokens detailed information for the image generation.
317
+ sig do
318
+ params(image_tokens: Integer, text_tokens: Integer).returns(
319
+ T.attached_class
320
+ )
321
+ end
322
+ def self.new(
323
+ # The number of image tokens in the input prompt.
324
+ image_tokens:,
325
+ # The number of text tokens in the input prompt.
326
+ text_tokens:
327
+ )
328
+ end
329
+
330
+ sig do
331
+ override.returns({ image_tokens: Integer, text_tokens: Integer })
332
+ end
333
+ def to_hash
334
+ end
335
+ end
336
+ end
337
+ end
338
+ end
339
+ end
@@ -0,0 +1,243 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ class ImageGenPartialImageEvent < OpenAI::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(OpenAI::ImageGenPartialImageEvent, OpenAI::Internal::AnyHash)
9
+ end
10
+
11
+ # Base64-encoded partial image data, suitable for rendering as an image.
12
+ sig { returns(String) }
13
+ attr_accessor :b64_json
14
+
15
+ # The background setting for the requested image.
16
+ sig do
17
+ returns(OpenAI::ImageGenPartialImageEvent::Background::TaggedSymbol)
18
+ end
19
+ attr_accessor :background
20
+
21
+ # The Unix timestamp when the event was created.
22
+ sig { returns(Integer) }
23
+ attr_accessor :created_at
24
+
25
+ # The output format for the requested image.
26
+ sig do
27
+ returns(OpenAI::ImageGenPartialImageEvent::OutputFormat::TaggedSymbol)
28
+ end
29
+ attr_accessor :output_format
30
+
31
+ # 0-based index for the partial image (streaming).
32
+ sig { returns(Integer) }
33
+ attr_accessor :partial_image_index
34
+
35
+ # The quality setting for the requested image.
36
+ sig { returns(OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol) }
37
+ attr_accessor :quality
38
+
39
+ # The size of the requested image.
40
+ sig { returns(OpenAI::ImageGenPartialImageEvent::Size::TaggedSymbol) }
41
+ attr_accessor :size
42
+
43
+ # The type of the event. Always `image_generation.partial_image`.
44
+ sig { returns(Symbol) }
45
+ attr_accessor :type
46
+
47
+ # Emitted when a partial image is available during image generation streaming.
48
+ sig do
49
+ params(
50
+ b64_json: String,
51
+ background: OpenAI::ImageGenPartialImageEvent::Background::OrSymbol,
52
+ created_at: Integer,
53
+ output_format:
54
+ OpenAI::ImageGenPartialImageEvent::OutputFormat::OrSymbol,
55
+ partial_image_index: Integer,
56
+ quality: OpenAI::ImageGenPartialImageEvent::Quality::OrSymbol,
57
+ size: OpenAI::ImageGenPartialImageEvent::Size::OrSymbol,
58
+ type: Symbol
59
+ ).returns(T.attached_class)
60
+ end
61
+ def self.new(
62
+ # Base64-encoded partial image data, suitable for rendering as an image.
63
+ b64_json:,
64
+ # The background setting for the requested image.
65
+ background:,
66
+ # The Unix timestamp when the event was created.
67
+ created_at:,
68
+ # The output format for the requested image.
69
+ output_format:,
70
+ # 0-based index for the partial image (streaming).
71
+ partial_image_index:,
72
+ # The quality setting for the requested image.
73
+ quality:,
74
+ # The size of the requested image.
75
+ size:,
76
+ # The type of the event. Always `image_generation.partial_image`.
77
+ type: :"image_generation.partial_image"
78
+ )
79
+ end
80
+
81
+ sig do
82
+ override.returns(
83
+ {
84
+ b64_json: String,
85
+ background:
86
+ OpenAI::ImageGenPartialImageEvent::Background::TaggedSymbol,
87
+ created_at: Integer,
88
+ output_format:
89
+ OpenAI::ImageGenPartialImageEvent::OutputFormat::TaggedSymbol,
90
+ partial_image_index: Integer,
91
+ quality: OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol,
92
+ size: OpenAI::ImageGenPartialImageEvent::Size::TaggedSymbol,
93
+ type: Symbol
94
+ }
95
+ )
96
+ end
97
+ def to_hash
98
+ end
99
+
100
+ # The background setting for the requested image.
101
+ module Background
102
+ extend OpenAI::Internal::Type::Enum
103
+
104
+ TaggedSymbol =
105
+ T.type_alias do
106
+ T.all(Symbol, OpenAI::ImageGenPartialImageEvent::Background)
107
+ end
108
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
109
+
110
+ TRANSPARENT =
111
+ T.let(
112
+ :transparent,
113
+ OpenAI::ImageGenPartialImageEvent::Background::TaggedSymbol
114
+ )
115
+ OPAQUE =
116
+ T.let(
117
+ :opaque,
118
+ OpenAI::ImageGenPartialImageEvent::Background::TaggedSymbol
119
+ )
120
+ AUTO =
121
+ T.let(
122
+ :auto,
123
+ OpenAI::ImageGenPartialImageEvent::Background::TaggedSymbol
124
+ )
125
+
126
+ sig do
127
+ override.returns(
128
+ T::Array[
129
+ OpenAI::ImageGenPartialImageEvent::Background::TaggedSymbol
130
+ ]
131
+ )
132
+ end
133
+ def self.values
134
+ end
135
+ end
136
+
137
+ # The output format for the requested image.
138
+ module OutputFormat
139
+ extend OpenAI::Internal::Type::Enum
140
+
141
+ TaggedSymbol =
142
+ T.type_alias do
143
+ T.all(Symbol, OpenAI::ImageGenPartialImageEvent::OutputFormat)
144
+ end
145
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
146
+
147
+ PNG =
148
+ T.let(
149
+ :png,
150
+ OpenAI::ImageGenPartialImageEvent::OutputFormat::TaggedSymbol
151
+ )
152
+ WEBP =
153
+ T.let(
154
+ :webp,
155
+ OpenAI::ImageGenPartialImageEvent::OutputFormat::TaggedSymbol
156
+ )
157
+ JPEG =
158
+ T.let(
159
+ :jpeg,
160
+ OpenAI::ImageGenPartialImageEvent::OutputFormat::TaggedSymbol
161
+ )
162
+
163
+ sig do
164
+ override.returns(
165
+ T::Array[
166
+ OpenAI::ImageGenPartialImageEvent::OutputFormat::TaggedSymbol
167
+ ]
168
+ )
169
+ end
170
+ def self.values
171
+ end
172
+ end
173
+
174
+ # The quality setting for the requested image.
175
+ module Quality
176
+ extend OpenAI::Internal::Type::Enum
177
+
178
+ TaggedSymbol =
179
+ T.type_alias do
180
+ T.all(Symbol, OpenAI::ImageGenPartialImageEvent::Quality)
181
+ end
182
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
183
+
184
+ LOW =
185
+ T.let(:low, OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol)
186
+ MEDIUM =
187
+ T.let(
188
+ :medium,
189
+ OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol
190
+ )
191
+ HIGH =
192
+ T.let(:high, OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol)
193
+ AUTO =
194
+ T.let(:auto, OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol)
195
+
196
+ sig do
197
+ override.returns(
198
+ T::Array[OpenAI::ImageGenPartialImageEvent::Quality::TaggedSymbol]
199
+ )
200
+ end
201
+ def self.values
202
+ end
203
+ end
204
+
205
+ # The size of the requested image.
206
+ module Size
207
+ extend OpenAI::Internal::Type::Enum
208
+
209
+ TaggedSymbol =
210
+ T.type_alias do
211
+ T.all(Symbol, OpenAI::ImageGenPartialImageEvent::Size)
212
+ end
213
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
214
+
215
+ SIZE_1024X1024 =
216
+ T.let(
217
+ :"1024x1024",
218
+ OpenAI::ImageGenPartialImageEvent::Size::TaggedSymbol
219
+ )
220
+ SIZE_1024X1536 =
221
+ T.let(
222
+ :"1024x1536",
223
+ OpenAI::ImageGenPartialImageEvent::Size::TaggedSymbol
224
+ )
225
+ SIZE_1536X1024 =
226
+ T.let(
227
+ :"1536x1024",
228
+ OpenAI::ImageGenPartialImageEvent::Size::TaggedSymbol
229
+ )
230
+ AUTO =
231
+ T.let(:auto, OpenAI::ImageGenPartialImageEvent::Size::TaggedSymbol)
232
+
233
+ sig do
234
+ override.returns(
235
+ T::Array[OpenAI::ImageGenPartialImageEvent::Size::TaggedSymbol]
236
+ )
237
+ end
238
+ def self.values
239
+ end
240
+ end
241
+ end
242
+ end
243
+ end
@@ -0,0 +1,22 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ # Emitted when a partial image is available during image generation streaming.
6
+ module ImageGenStreamEvent
7
+ extend OpenAI::Internal::Type::Union
8
+
9
+ Variants =
10
+ T.type_alias do
11
+ T.any(
12
+ OpenAI::ImageGenPartialImageEvent,
13
+ OpenAI::ImageGenCompletedEvent
14
+ )
15
+ end
16
+
17
+ sig { override.returns(T::Array[OpenAI::ImageGenStreamEvent::Variants]) }
18
+ def self.variants
19
+ end
20
+ end
21
+ end
22
+ end
@@ -60,6 +60,12 @@ module OpenAI
60
60
  end
61
61
  attr_accessor :output_format
62
62
 
63
+ # The number of partial images to generate. This parameter is used for streaming
64
+ # responses that return partial images. Value must be between 0 and 3. When set to
65
+ # 0, the response will be a single image sent in one streaming event.
66
+ sig { returns(T.nilable(Integer)) }
67
+ attr_accessor :partial_images
68
+
63
69
  # The quality of the image that will be generated.
64
70
  #
65
71
  # - `auto` (default value) will automatically select the best quality for the
@@ -116,6 +122,7 @@ module OpenAI
116
122
  output_compression: T.nilable(Integer),
117
123
  output_format:
118
124
  T.nilable(OpenAI::ImageGenerateParams::OutputFormat::OrSymbol),
125
+ partial_images: T.nilable(Integer),
119
126
  quality: T.nilable(OpenAI::ImageGenerateParams::Quality::OrSymbol),
120
127
  response_format:
121
128
  T.nilable(OpenAI::ImageGenerateParams::ResponseFormat::OrSymbol),
@@ -155,6 +162,10 @@ module OpenAI
155
162
  # The format in which the generated images are returned. This parameter is only
156
163
  # supported for `gpt-image-1`. Must be one of `png`, `jpeg`, or `webp`.
157
164
  output_format: nil,
165
+ # The number of partial images to generate. This parameter is used for streaming
166
+ # responses that return partial images. Value must be between 0 and 3. When set to
167
+ # 0, the response will be a single image sent in one streaming event.
168
+ partial_images: nil,
158
169
  # The quality of the image that will be generated.
159
170
  #
160
171
  # - `auto` (default value) will automatically select the best quality for the
@@ -199,6 +210,7 @@ module OpenAI
199
210
  output_compression: T.nilable(Integer),
200
211
  output_format:
201
212
  T.nilable(OpenAI::ImageGenerateParams::OutputFormat::OrSymbol),
213
+ partial_images: T.nilable(Integer),
202
214
  quality: T.nilable(OpenAI::ImageGenerateParams::Quality::OrSymbol),
203
215
  response_format:
204
216
  T.nilable(OpenAI::ImageGenerateParams::ResponseFormat::OrSymbol),
@@ -12,7 +12,7 @@ module OpenAI
12
12
  )
13
13
  end
14
14
 
15
- # The refusal explanationfrom the model.
15
+ # The refusal explanation from the model.
16
16
  sig { returns(String) }
17
17
  attr_accessor :refusal
18
18
 
@@ -23,7 +23,7 @@ module OpenAI
23
23
  # A refusal from the model.
24
24
  sig { params(refusal: String, type: Symbol).returns(T.attached_class) }
25
25
  def self.new(
26
- # The refusal explanationfrom the model.
26
+ # The refusal explanation from the model.
27
27
  refusal:,
28
28
  # The type of the refusal. Always `refusal`.
29
29
  type: :refusal