openai 0.110.0 → 0.111.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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/decision_create_params.rb +798 -28
  5. data/lib/openai/models/decision_input_json.rb +45 -0
  6. data/lib/openai/models/decision_input_message.rb +304 -48
  7. data/lib/openai/models/decision_input_part.rb +4 -1
  8. data/lib/openai/models/decision_question_input_image.rb +54 -0
  9. data/lib/openai/models/decision_question_input_part.rb +23 -0
  10. data/lib/openai/models/decision_question_input_text.rb +21 -0
  11. data/lib/openai/models/live/decision_trigger.rb +82 -9
  12. data/lib/openai/models/live/decisions_delegation_config.rb +82 -9
  13. data/lib/openai/models/live/decisions_delegation_update_config.rb +82 -9
  14. data/lib/openai/models.rb +8 -0
  15. data/lib/openai/resources/decisions.rb +5 -6
  16. data/lib/openai/version.rb +1 -1
  17. data/lib/openai.rb +4 -0
  18. data/rbi/openai/models/decision_create_params.rbi +1273 -26
  19. data/rbi/openai/models/decision_input_json.rbi +75 -0
  20. data/rbi/openai/models/decision_input_message.rbi +455 -52
  21. data/rbi/openai/models/decision_input_part.rbi +2 -1
  22. data/rbi/openai/models/decision_question_input_image.rbi +82 -0
  23. data/rbi/openai/models/decision_question_input_part.rbi +25 -0
  24. data/rbi/openai/models/decision_question_input_text.rbi +49 -0
  25. data/rbi/openai/models/live/decision_trigger.rbi +72 -9
  26. data/rbi/openai/models/live/decisions_delegation_config.rbi +72 -9
  27. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +72 -9
  28. data/rbi/openai/models.rbi +8 -0
  29. data/rbi/openai/resources/decisions.rbi +4 -5
  30. data/sig/openai/models/decision_create_params.rbs +610 -24
  31. data/sig/openai/models/decision_input_json.rbs +34 -0
  32. data/sig/openai/models/decision_input_message.rbs +264 -35
  33. data/sig/openai/models/decision_input_part.rbs +3 -1
  34. data/sig/openai/models/decision_question_input_image.rbs +51 -0
  35. data/sig/openai/models/decision_question_input_part.rbs +14 -0
  36. data/sig/openai/models/decision_question_input_text.rbs +15 -0
  37. data/sig/openai/models/live/decision_trigger.rbs +49 -12
  38. data/sig/openai/models/live/decisions_delegation_config.rbs +49 -12
  39. data/sig/openai/models/live/decisions_delegation_update_config.rbs +49 -12
  40. data/sig/openai/models.rbs +9 -1
  41. metadata +13 -1
@@ -0,0 +1,82 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ class DecisionQuestionInputImage < OpenAI::Internal::Type::BaseModel
7
+
8
+ OrHash = T.type_alias do
9
+ T.any(
10
+ OpenAI::DecisionQuestionInputImage,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # A base64-encoded image in a data URL or a publicly accessible HTTP(S) image URL.
16
+ sig { returns(String) }
17
+ attr_accessor :image_url
18
+
19
+ sig { returns(Symbol) }
20
+ attr_accessor :type
21
+
22
+ # The image detail level, using the selected model's image profile. Defaults to
23
+ # auto.
24
+ sig { returns(T.nilable(OpenAI::DecisionQuestionInputImage::Detail::OrSymbol)) }
25
+ attr_accessor :detail
26
+
27
+ # An image provided as a base64 data URL or a publicly accessible HTTP(S) URL.
28
+ # File IDs are not supported.
29
+ sig do
30
+ params(
31
+
32
+ image_url: String,
33
+
34
+ detail: T.nilable(OpenAI::DecisionQuestionInputImage::Detail::OrSymbol),
35
+
36
+ type: Symbol
37
+ )
38
+ .returns(T.attached_class)
39
+ end
40
+ def self.new(
41
+
42
+ # A base64-encoded image in a data URL or a publicly accessible HTTP(S) image URL.
43
+ image_url:,
44
+
45
+ # The image detail level, using the selected model's image profile. Defaults to
46
+ # auto.
47
+ detail: nil,
48
+
49
+ type: :input_image
50
+ )
51
+ end
52
+
53
+ sig do
54
+ override.returns(
55
+ {image_url: String, type: Symbol, detail: T.nilable(OpenAI::DecisionQuestionInputImage::Detail::OrSymbol)}
56
+ )
57
+ end
58
+ def to_hash
59
+ end
60
+
61
+ # The image detail level, using the selected model's image profile. Defaults to
62
+ # auto.
63
+ module Detail
64
+ extend OpenAI::Internal::Type::Enum
65
+
66
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::DecisionQuestionInputImage::Detail) }
67
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
68
+
69
+ LOW = T.let(:low, OpenAI::DecisionQuestionInputImage::Detail::TaggedSymbol)
70
+ HIGH = T.let(:high, OpenAI::DecisionQuestionInputImage::Detail::TaggedSymbol)
71
+ AUTO = T.let(:auto, OpenAI::DecisionQuestionInputImage::Detail::TaggedSymbol)
72
+ ORIGINAL = T.let(:original, OpenAI::DecisionQuestionInputImage::Detail::TaggedSymbol)
73
+
74
+ sig { override.returns(T::Array[OpenAI::DecisionQuestionInputImage::Detail::TaggedSymbol]) }
75
+ def self.values
76
+ end
77
+ end
78
+
79
+ end
80
+
81
+ end
82
+ end
@@ -0,0 +1,25 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ # A text, image, or JSON content part in a question instruction.
7
+ module DecisionQuestionInputPart
8
+ extend OpenAI::Internal::Type::Union
9
+
10
+ Variants = T.type_alias do
11
+ T.any(
12
+ OpenAI::DecisionQuestionInputText,
13
+ OpenAI::DecisionQuestionInputImage,
14
+ OpenAI::DecisionInputJSON
15
+ )
16
+ end
17
+
18
+ sig { override.returns(T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
19
+ def self.variants
20
+ end
21
+
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,49 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ class DecisionQuestionInputText < OpenAI::Internal::Type::BaseModel
7
+
8
+ OrHash = T.type_alias do
9
+ T.any(
10
+ OpenAI::DecisionQuestionInputText,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(String) }
16
+ attr_accessor :text
17
+
18
+ sig { returns(Symbol) }
19
+ attr_accessor :type
20
+
21
+ sig do
22
+ params(
23
+
24
+ text: String,
25
+
26
+ type: Symbol
27
+ )
28
+ .returns(T.attached_class)
29
+ end
30
+ def self.new(
31
+
32
+ text:,
33
+
34
+ type: :input_text
35
+ )
36
+ end
37
+
38
+ sig do
39
+ override.returns(
40
+ {text: String, type: Symbol}
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+
46
+ end
47
+
48
+ end
49
+ end
@@ -144,7 +144,7 @@ module OpenAI
144
144
  )
145
145
  end
146
146
 
147
- sig { returns(String) }
147
+ sig { returns(OpenAI::Live::DecisionTrigger::Decisions::Question::Predicate::Instructions::Variants) }
148
148
  attr_accessor :instructions
149
149
 
150
150
  # The type of the object. Always `predicate`.
@@ -161,7 +161,7 @@ module OpenAI
161
161
  sig do
162
162
  params(
163
163
 
164
- instructions: String,
164
+ instructions: OpenAI::Live::DecisionTrigger::Decisions::Question::Predicate::Instructions::Variants,
165
165
 
166
166
  name: String,
167
167
 
@@ -183,12 +183,35 @@ module OpenAI
183
183
 
184
184
  sig do
185
185
  override.returns(
186
- {instructions: String, type: Symbol, name: String}
186
+ {
187
+ instructions: OpenAI::Live::DecisionTrigger::Decisions::Question::Predicate::Instructions::Variants,
188
+ type: Symbol,
189
+ name: String
190
+ }
187
191
  )
188
192
  end
189
193
  def to_hash
190
194
  end
191
195
 
196
+ module Instructions
197
+ extend OpenAI::Internal::Type::Union
198
+
199
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
200
+
201
+ sig {
202
+ override.returns(
203
+ T::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Predicate::Instructions::Variants]
204
+ )
205
+ }
206
+ def self.variants
207
+ end
208
+
209
+ DecisionQuestionInputPartArray = T.let(
210
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionQuestionInputPart],
211
+ OpenAI::Internal::Type::Converter
212
+ )
213
+
214
+ end
192
215
  end
193
216
 
194
217
  class Choice < OpenAI::Internal::Type::BaseModel
@@ -203,7 +226,7 @@ module OpenAI
203
226
  sig { returns(T::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Choice::Choice]) }
204
227
  attr_accessor :choices
205
228
 
206
- sig { returns(String) }
229
+ sig { returns(OpenAI::Live::DecisionTrigger::Decisions::Question::Choice::Instructions::Variants) }
207
230
  attr_accessor :instructions
208
231
 
209
232
  # The type of the object. Always `choice`.
@@ -222,7 +245,7 @@ module OpenAI
222
245
 
223
246
  choices: T::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Choice::Choice::OrHash],
224
247
 
225
- instructions: String,
248
+ instructions: OpenAI::Live::DecisionTrigger::Decisions::Question::Choice::Instructions::Variants,
226
249
 
227
250
  name: String,
228
251
 
@@ -249,7 +272,7 @@ module OpenAI
249
272
  override.returns(
250
273
  {
251
274
  choices: T::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Choice::Choice],
252
- instructions: String,
275
+ instructions: OpenAI::Live::DecisionTrigger::Decisions::Question::Choice::Instructions::Variants,
253
276
  type: Symbol,
254
277
  name: String
255
278
  }
@@ -318,6 +341,26 @@ module OpenAI
318
341
 
319
342
  end
320
343
  end
344
+
345
+ module Instructions
346
+ extend OpenAI::Internal::Type::Union
347
+
348
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
349
+
350
+ sig {
351
+ override.returns(
352
+ T::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Choice::Instructions::Variants]
353
+ )
354
+ }
355
+ def self.variants
356
+ end
357
+
358
+ DecisionQuestionInputPartArray = T.let(
359
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionQuestionInputPart],
360
+ OpenAI::Internal::Type::Converter
361
+ )
362
+
363
+ end
321
364
  end
322
365
 
323
366
  class Score < OpenAI::Internal::Type::BaseModel
@@ -328,7 +371,7 @@ module OpenAI
328
371
  )
329
372
  end
330
373
 
331
- sig { returns(String) }
374
+ sig { returns(OpenAI::Live::DecisionTrigger::Decisions::Question::Score::Instructions::Variants) }
332
375
  attr_accessor :instructions
333
376
 
334
377
  sig { returns(T::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Score::Level]) }
@@ -348,7 +391,7 @@ module OpenAI
348
391
  sig do
349
392
  params(
350
393
 
351
- instructions: String,
394
+ instructions: OpenAI::Live::DecisionTrigger::Decisions::Question::Score::Instructions::Variants,
352
395
 
353
396
  levels: T::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Score::Level::OrHash],
354
397
 
@@ -375,7 +418,7 @@ module OpenAI
375
418
  sig do
376
419
  override.returns(
377
420
  {
378
- instructions: String,
421
+ instructions: OpenAI::Live::DecisionTrigger::Decisions::Question::Score::Instructions::Variants,
379
422
  levels: T::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Score::Level],
380
423
  type: Symbol,
381
424
  name: String
@@ -385,6 +428,26 @@ module OpenAI
385
428
  def to_hash
386
429
  end
387
430
 
431
+ module Instructions
432
+ extend OpenAI::Internal::Type::Union
433
+
434
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
435
+
436
+ sig {
437
+ override.returns(
438
+ T::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Score::Instructions::Variants]
439
+ )
440
+ }
441
+ def self.variants
442
+ end
443
+
444
+ DecisionQuestionInputPartArray = T.let(
445
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionQuestionInputPart],
446
+ OpenAI::Internal::Type::Converter
447
+ )
448
+
449
+ end
450
+
388
451
  class Level < OpenAI::Internal::Type::BaseModel
389
452
  OrHash = T.type_alias do
390
453
  T.any(
@@ -93,7 +93,7 @@ module OpenAI
93
93
  )
94
94
  end
95
95
 
96
- sig { returns(String) }
96
+ sig { returns(OpenAI::Live::DecisionsDelegationConfig::Question::Predicate::Instructions::Variants) }
97
97
  attr_accessor :instructions
98
98
 
99
99
  # The type of the object. Always `predicate`.
@@ -110,7 +110,7 @@ module OpenAI
110
110
  sig do
111
111
  params(
112
112
 
113
- instructions: String,
113
+ instructions: OpenAI::Live::DecisionsDelegationConfig::Question::Predicate::Instructions::Variants,
114
114
 
115
115
  name: String,
116
116
 
@@ -132,12 +132,35 @@ module OpenAI
132
132
 
133
133
  sig do
134
134
  override.returns(
135
- {instructions: String, type: Symbol, name: String}
135
+ {
136
+ instructions: OpenAI::Live::DecisionsDelegationConfig::Question::Predicate::Instructions::Variants,
137
+ type: Symbol,
138
+ name: String
139
+ }
136
140
  )
137
141
  end
138
142
  def to_hash
139
143
  end
140
144
 
145
+ module Instructions
146
+ extend OpenAI::Internal::Type::Union
147
+
148
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
149
+
150
+ sig {
151
+ override.returns(
152
+ T::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Predicate::Instructions::Variants]
153
+ )
154
+ }
155
+ def self.variants
156
+ end
157
+
158
+ DecisionQuestionInputPartArray = T.let(
159
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionQuestionInputPart],
160
+ OpenAI::Internal::Type::Converter
161
+ )
162
+
163
+ end
141
164
  end
142
165
 
143
166
  class Choice < OpenAI::Internal::Type::BaseModel
@@ -152,7 +175,7 @@ module OpenAI
152
175
  sig { returns(T::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Choice::Choice]) }
153
176
  attr_accessor :choices
154
177
 
155
- sig { returns(String) }
178
+ sig { returns(OpenAI::Live::DecisionsDelegationConfig::Question::Choice::Instructions::Variants) }
156
179
  attr_accessor :instructions
157
180
 
158
181
  # The type of the object. Always `choice`.
@@ -171,7 +194,7 @@ module OpenAI
171
194
 
172
195
  choices: T::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Choice::Choice::OrHash],
173
196
 
174
- instructions: String,
197
+ instructions: OpenAI::Live::DecisionsDelegationConfig::Question::Choice::Instructions::Variants,
175
198
 
176
199
  name: String,
177
200
 
@@ -198,7 +221,7 @@ module OpenAI
198
221
  override.returns(
199
222
  {
200
223
  choices: T::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Choice::Choice],
201
- instructions: String,
224
+ instructions: OpenAI::Live::DecisionsDelegationConfig::Question::Choice::Instructions::Variants,
202
225
  type: Symbol,
203
226
  name: String
204
227
  }
@@ -267,6 +290,26 @@ module OpenAI
267
290
 
268
291
  end
269
292
  end
293
+
294
+ module Instructions
295
+ extend OpenAI::Internal::Type::Union
296
+
297
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
298
+
299
+ sig {
300
+ override.returns(
301
+ T::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Choice::Instructions::Variants]
302
+ )
303
+ }
304
+ def self.variants
305
+ end
306
+
307
+ DecisionQuestionInputPartArray = T.let(
308
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionQuestionInputPart],
309
+ OpenAI::Internal::Type::Converter
310
+ )
311
+
312
+ end
270
313
  end
271
314
 
272
315
  class Score < OpenAI::Internal::Type::BaseModel
@@ -277,7 +320,7 @@ module OpenAI
277
320
  )
278
321
  end
279
322
 
280
- sig { returns(String) }
323
+ sig { returns(OpenAI::Live::DecisionsDelegationConfig::Question::Score::Instructions::Variants) }
281
324
  attr_accessor :instructions
282
325
 
283
326
  sig { returns(T::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Score::Level]) }
@@ -297,7 +340,7 @@ module OpenAI
297
340
  sig do
298
341
  params(
299
342
 
300
- instructions: String,
343
+ instructions: OpenAI::Live::DecisionsDelegationConfig::Question::Score::Instructions::Variants,
301
344
 
302
345
  levels: T::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Score::Level::OrHash],
303
346
 
@@ -324,7 +367,7 @@ module OpenAI
324
367
  sig do
325
368
  override.returns(
326
369
  {
327
- instructions: String,
370
+ instructions: OpenAI::Live::DecisionsDelegationConfig::Question::Score::Instructions::Variants,
328
371
  levels: T::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Score::Level],
329
372
  type: Symbol,
330
373
  name: String
@@ -334,6 +377,26 @@ module OpenAI
334
377
  def to_hash
335
378
  end
336
379
 
380
+ module Instructions
381
+ extend OpenAI::Internal::Type::Union
382
+
383
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
384
+
385
+ sig {
386
+ override.returns(
387
+ T::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Score::Instructions::Variants]
388
+ )
389
+ }
390
+ def self.variants
391
+ end
392
+
393
+ DecisionQuestionInputPartArray = T.let(
394
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionQuestionInputPart],
395
+ OpenAI::Internal::Type::Converter
396
+ )
397
+
398
+ end
399
+
337
400
  class Level < OpenAI::Internal::Type::BaseModel
338
401
  OrHash = T.type_alias do
339
402
  T.any(
@@ -112,7 +112,7 @@ module OpenAI
112
112
  )
113
113
  end
114
114
 
115
- sig { returns(String) }
115
+ sig { returns(OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Predicate::Instructions::Variants) }
116
116
  attr_accessor :instructions
117
117
 
118
118
  # The type of the object. Always `predicate`.
@@ -129,7 +129,7 @@ module OpenAI
129
129
  sig do
130
130
  params(
131
131
 
132
- instructions: String,
132
+ instructions: OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Predicate::Instructions::Variants,
133
133
 
134
134
  name: String,
135
135
 
@@ -151,12 +151,35 @@ module OpenAI
151
151
 
152
152
  sig do
153
153
  override.returns(
154
- {instructions: String, type: Symbol, name: String}
154
+ {
155
+ instructions: OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Predicate::Instructions::Variants,
156
+ type: Symbol,
157
+ name: String
158
+ }
155
159
  )
156
160
  end
157
161
  def to_hash
158
162
  end
159
163
 
164
+ module Instructions
165
+ extend OpenAI::Internal::Type::Union
166
+
167
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
168
+
169
+ sig {
170
+ override.returns(
171
+ T::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Predicate::Instructions::Variants]
172
+ )
173
+ }
174
+ def self.variants
175
+ end
176
+
177
+ DecisionQuestionInputPartArray = T.let(
178
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionQuestionInputPart],
179
+ OpenAI::Internal::Type::Converter
180
+ )
181
+
182
+ end
160
183
  end
161
184
 
162
185
  class Choice < OpenAI::Internal::Type::BaseModel
@@ -171,7 +194,7 @@ module OpenAI
171
194
  sig { returns(T::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Choice::Choice]) }
172
195
  attr_accessor :choices
173
196
 
174
- sig { returns(String) }
197
+ sig { returns(OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Choice::Instructions::Variants) }
175
198
  attr_accessor :instructions
176
199
 
177
200
  # The type of the object. Always `choice`.
@@ -190,7 +213,7 @@ module OpenAI
190
213
 
191
214
  choices: T::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Choice::Choice::OrHash],
192
215
 
193
- instructions: String,
216
+ instructions: OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Choice::Instructions::Variants,
194
217
 
195
218
  name: String,
196
219
 
@@ -217,7 +240,7 @@ module OpenAI
217
240
  override.returns(
218
241
  {
219
242
  choices: T::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Choice::Choice],
220
- instructions: String,
243
+ instructions: OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Choice::Instructions::Variants,
221
244
  type: Symbol,
222
245
  name: String
223
246
  }
@@ -286,6 +309,26 @@ module OpenAI
286
309
 
287
310
  end
288
311
  end
312
+
313
+ module Instructions
314
+ extend OpenAI::Internal::Type::Union
315
+
316
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
317
+
318
+ sig {
319
+ override.returns(
320
+ T::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Choice::Instructions::Variants]
321
+ )
322
+ }
323
+ def self.variants
324
+ end
325
+
326
+ DecisionQuestionInputPartArray = T.let(
327
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionQuestionInputPart],
328
+ OpenAI::Internal::Type::Converter
329
+ )
330
+
331
+ end
289
332
  end
290
333
 
291
334
  class Score < OpenAI::Internal::Type::BaseModel
@@ -296,7 +339,7 @@ module OpenAI
296
339
  )
297
340
  end
298
341
 
299
- sig { returns(String) }
342
+ sig { returns(OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Score::Instructions::Variants) }
300
343
  attr_accessor :instructions
301
344
 
302
345
  sig { returns(T::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Score::Level]) }
@@ -316,7 +359,7 @@ module OpenAI
316
359
  sig do
317
360
  params(
318
361
 
319
- instructions: String,
362
+ instructions: OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Score::Instructions::Variants,
320
363
 
321
364
  levels: T::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Score::Level::OrHash],
322
365
 
@@ -343,7 +386,7 @@ module OpenAI
343
386
  sig do
344
387
  override.returns(
345
388
  {
346
- instructions: String,
389
+ instructions: OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Score::Instructions::Variants,
347
390
  levels: T::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Score::Level],
348
391
  type: Symbol,
349
392
  name: String
@@ -353,6 +396,26 @@ module OpenAI
353
396
  def to_hash
354
397
  end
355
398
 
399
+ module Instructions
400
+ extend OpenAI::Internal::Type::Union
401
+
402
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
403
+
404
+ sig {
405
+ override.returns(
406
+ T::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Score::Instructions::Variants]
407
+ )
408
+ }
409
+ def self.variants
410
+ end
411
+
412
+ DecisionQuestionInputPartArray = T.let(
413
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionQuestionInputPart],
414
+ OpenAI::Internal::Type::Converter
415
+ )
416
+
417
+ end
418
+
356
419
  class Level < OpenAI::Internal::Type::BaseModel
357
420
  OrHash = T.type_alias do
358
421
  T.any(
@@ -74,6 +74,8 @@ module OpenAI
74
74
 
75
75
  DecisionInputImage = OpenAI::Models::DecisionInputImage
76
76
 
77
+ DecisionInputJSON = OpenAI::Models::DecisionInputJSON
78
+
77
79
  DecisionInputMessage = OpenAI::Models::DecisionInputMessage
78
80
 
79
81
  DecisionInputPart = OpenAI::Models::DecisionInputPart
@@ -82,6 +84,12 @@ module OpenAI
82
84
 
83
85
  DecisionPromptCacheBreakpoint = OpenAI::Models::DecisionPromptCacheBreakpoint
84
86
 
87
+ DecisionQuestionInputImage = OpenAI::Models::DecisionQuestionInputImage
88
+
89
+ DecisionQuestionInputPart = OpenAI::Models::DecisionQuestionInputPart
90
+
91
+ DecisionQuestionInputText = OpenAI::Models::DecisionQuestionInputText
92
+
85
93
  DeletedSkill = OpenAI::Models::DeletedSkill
86
94
 
87
95
  Embedding = OpenAI::Models::Embedding
@@ -26,14 +26,13 @@ module OpenAI
26
26
  .returns(OpenAI::Decision)
27
27
  }
28
28
  def create(
29
- # The text or images to evaluate for every question. Provide a text string or user
30
- # messages containing text and images. Images can be base64 data URLs or publicly
31
- # accessible HTTP(S) URLs; at most 128 images are allowed across all messages in
32
- # one request. Files, audio, tools, and item references are not supported.
29
+ # The input to evaluate for every question. Provide a text string or an ordered
30
+ # array of messages, function calls and outputs, or custom tool calls and outputs.
31
+ # Each tool output must identify a matching call by call ID.
33
32
  input:,
34
33
  # The model to use. Only `gpt-6-luna` is supported.
35
34
  model:,
36
- # Ask 1–200 questions about the input. Each question can be a predicate, choice,
35
+ # Ask 1–400 questions about the input. Each question can be a predicate, choice,
37
36
  # or score. Answers come back in the same order.
38
37
  questions:,
39
38
  # Partition prompt cache reuse by caller-provided key.