openai 0.100.0 → 0.101.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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +1166 -3
  6. data/lib/openai/models/beta/beta_tool_search_output_namespace_tool.rb +176 -0
  7. data/lib/openai/models/decision.rb +313 -0
  8. data/lib/openai/models/decision_create_params.rb +233 -0
  9. data/lib/openai/models/decision_input_image.rb +53 -0
  10. data/lib/openai/models/decision_input_message.rb +60 -0
  11. data/lib/openai/models/decision_input_part.rb +20 -0
  12. data/lib/openai/models/decision_input_text.rb +21 -0
  13. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +1166 -3
  14. data/lib/openai/models/responses/tool_search_output_namespace_tool.rb +174 -0
  15. data/lib/openai/models.rb +12 -0
  16. data/lib/openai/resources/decisions.rb +59 -0
  17. data/lib/openai/version.rb +1 -1
  18. data/lib/openai.rb +9 -0
  19. data/rbi/openai/client.rbi +3 -0
  20. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +1893 -18
  21. data/rbi/openai/models/beta/beta_tool_search_output_namespace_tool.rbi +272 -0
  22. data/rbi/openai/models/decision.rbi +586 -0
  23. data/rbi/openai/models/decision_create_params.rbi +435 -0
  24. data/rbi/openai/models/decision_input_image.rbi +81 -0
  25. data/rbi/openai/models/decision_input_message.rbi +96 -0
  26. data/rbi/openai/models/decision_input_part.rbi +24 -0
  27. data/rbi/openai/models/decision_input_text.rbi +49 -0
  28. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +1901 -18
  29. data/rbi/openai/models/responses/tool_search_output_namespace_tool.rbi +272 -0
  30. data/rbi/openai/models.rbi +12 -0
  31. data/rbi/openai/resources/decisions.rbi +57 -0
  32. data/sig/openai/client.rbs +2 -0
  33. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +993 -4
  34. data/sig/openai/models/beta/beta_tool_search_output_namespace_tool.rbs +162 -0
  35. data/sig/openai/models/decision.rbs +296 -0
  36. data/sig/openai/models/decision_create_params.rbs +227 -0
  37. data/sig/openai/models/decision_input_image.rbs +51 -0
  38. data/sig/openai/models/decision_input_message.rbs +57 -0
  39. data/sig/openai/models/decision_input_part.rbs +12 -0
  40. data/sig/openai/models/decision_input_text.rbs +15 -0
  41. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +993 -4
  42. data/sig/openai/models/responses/tool_search_output_namespace_tool.rbs +160 -0
  43. data/sig/openai/models.rbs +12 -0
  44. data/sig/openai/resources/decisions.rbs +15 -0
  45. metadata +28 -1
@@ -0,0 +1,586 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ class Decision < OpenAI::Internal::Type::BaseModel
7
+
8
+ OrHash = T.type_alias do
9
+ T.any(
10
+ OpenAI::Decision,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(T::Array[OpenAI::Decision::Answer::Variants]) }
16
+ attr_accessor :answers
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :model
20
+
21
+ sig { returns(OpenAI::Decision::Usage) }
22
+ attr_reader :usage
23
+
24
+ sig { params(usage: OpenAI::Decision::Usage::OrHash).void }
25
+ attr_writer :usage
26
+
27
+ sig do
28
+ params(
29
+
30
+ answers: T::Array[
31
+ T.any(
32
+ OpenAI::Decision::Answer::Predicate::OrHash,
33
+ OpenAI::Decision::Answer::Choice::OrHash,
34
+ OpenAI::Decision::Answer::Score::OrHash,
35
+ OpenAI::Decision::Answer::Refusal::OrHash
36
+ )
37
+ ],
38
+
39
+ model: String,
40
+
41
+ usage: OpenAI::Decision::Usage::OrHash
42
+ )
43
+ .returns(T.attached_class)
44
+ end
45
+ def self.new(
46
+
47
+ answers:,
48
+
49
+ model:,
50
+
51
+ usage:
52
+ )
53
+ end
54
+
55
+ sig do
56
+ override.returns(
57
+ {answers: T::Array[OpenAI::Decision::Answer::Variants], model: String, usage: OpenAI::Decision::Usage}
58
+ )
59
+ end
60
+ def to_hash
61
+ end
62
+
63
+ # A completed question always includes its name, including null when unnamed.
64
+ module Answer
65
+ extend OpenAI::Internal::Type::Union
66
+
67
+ Variants = T.type_alias {
68
+ T.any(
69
+ OpenAI::Decision::Answer::Predicate,
70
+ OpenAI::Decision::Answer::Choice,
71
+ OpenAI::Decision::Answer::Score,
72
+ OpenAI::Decision::Answer::Refusal
73
+ )
74
+ }
75
+
76
+ class Predicate < OpenAI::Internal::Type::BaseModel
77
+ OrHash = T.type_alias do
78
+ T.any(
79
+ OpenAI::Decision::Answer::Predicate,
80
+ OpenAI::Internal::AnyHash
81
+ )
82
+ end
83
+
84
+ sig { returns(T.nilable(String)) }
85
+ attr_accessor :name
86
+
87
+ sig { returns(Float) }
88
+ attr_accessor :probability
89
+
90
+ # The type of the object. Always `predicate`.
91
+ sig { returns(Symbol) }
92
+ attr_accessor :type
93
+
94
+ sig do
95
+ params(
96
+
97
+ name: T.nilable(String),
98
+
99
+ probability: Float,
100
+
101
+ type: Symbol
102
+ )
103
+ .returns(T.attached_class)
104
+ end
105
+ def self.new(
106
+
107
+ name:,
108
+
109
+ probability:,
110
+
111
+ # The type of the object. Always `predicate`.
112
+
113
+ type: :predicate
114
+ )
115
+ end
116
+
117
+ sig do
118
+ override.returns(
119
+ {name: T.nilable(String), probability: Float, type: Symbol}
120
+ )
121
+ end
122
+ def to_hash
123
+ end
124
+
125
+ end
126
+
127
+ class Choice < OpenAI::Internal::Type::BaseModel
128
+ OrHash = T.type_alias do
129
+ T.any(
130
+ OpenAI::Decision::Answer::Choice,
131
+ OpenAI::Internal::AnyHash
132
+ )
133
+ end
134
+
135
+ # Choice values are typed: a string and a boolean with the same text are distinct.
136
+ sig { returns(T.any(String, T::Boolean)) }
137
+ attr_accessor :choice
138
+
139
+ sig { returns(Float) }
140
+ attr_accessor :confidence
141
+
142
+ sig { returns(T.nilable(String)) }
143
+ attr_accessor :name
144
+
145
+ sig { returns(T::Array[OpenAI::Decision::Answer::Choice::Probability]) }
146
+ attr_accessor :probabilities
147
+
148
+ # The type of the object. Always `choice`.
149
+ sig { returns(Symbol) }
150
+ attr_accessor :type
151
+
152
+ sig do
153
+ params(
154
+
155
+ choice: T.any(String, T::Boolean),
156
+
157
+ confidence: Float,
158
+
159
+ name: T.nilable(String),
160
+
161
+ probabilities: T::Array[OpenAI::Decision::Answer::Choice::Probability::OrHash],
162
+
163
+ type: Symbol
164
+ )
165
+ .returns(T.attached_class)
166
+ end
167
+ def self.new(
168
+
169
+ # Choice values are typed: a string and a boolean with the same text are distinct.
170
+ choice:,
171
+
172
+ confidence:,
173
+
174
+ name:,
175
+
176
+ probabilities:,
177
+
178
+ # The type of the object. Always `choice`.
179
+
180
+ type: :choice
181
+ )
182
+ end
183
+
184
+ sig do
185
+ override.returns(
186
+ {
187
+ choice: T.any(String, T::Boolean),
188
+ confidence: Float,
189
+ name: T.nilable(String),
190
+ probabilities: T::Array[OpenAI::Decision::Answer::Choice::Probability],
191
+ type: Symbol
192
+ }
193
+ )
194
+ end
195
+ def to_hash
196
+ end
197
+
198
+ # Choice values are typed: a string and a boolean with the same text are distinct.
199
+ module Choice
200
+ extend OpenAI::Internal::Type::Union
201
+
202
+ Variants = T.type_alias { T.any(String, T::Boolean) }
203
+
204
+ sig { override.returns(T::Array[OpenAI::Decision::Answer::Choice::Choice::Variants]) }
205
+ def self.variants
206
+ end
207
+
208
+ end
209
+
210
+ class Probability < OpenAI::Internal::Type::BaseModel
211
+ OrHash = T.type_alias do
212
+ T.any(
213
+ OpenAI::Decision::Answer::Choice::Probability,
214
+ OpenAI::Internal::AnyHash
215
+ )
216
+ end
217
+
218
+ sig { returns(Float) }
219
+ attr_accessor :probability
220
+
221
+ # Choice values are typed: a string and a boolean with the same text are distinct.
222
+ sig { returns(T.any(String, T::Boolean)) }
223
+ attr_accessor :value
224
+
225
+ sig do
226
+ params(
227
+
228
+ probability: Float,
229
+
230
+ value: T.any(String, T::Boolean)
231
+ )
232
+ .returns(T.attached_class)
233
+ end
234
+ def self.new(
235
+
236
+ probability:,
237
+
238
+ # Choice values are typed: a string and a boolean with the same text are distinct.
239
+
240
+ value:
241
+ )
242
+ end
243
+
244
+ sig do
245
+ override.returns(
246
+ {probability: Float, value: T.any(String, T::Boolean)}
247
+ )
248
+ end
249
+ def to_hash
250
+ end
251
+
252
+ # Choice values are typed: a string and a boolean with the same text are distinct.
253
+ module Value
254
+ extend OpenAI::Internal::Type::Union
255
+
256
+ Variants = T.type_alias { T.any(String, T::Boolean) }
257
+
258
+ sig { override.returns(T::Array[OpenAI::Decision::Answer::Choice::Probability::Value::Variants]) }
259
+ def self.variants
260
+ end
261
+
262
+ end
263
+ end
264
+ end
265
+
266
+ class Score < OpenAI::Internal::Type::BaseModel
267
+ OrHash = T.type_alias do
268
+ T.any(
269
+ OpenAI::Decision::Answer::Score,
270
+ OpenAI::Internal::AnyHash
271
+ )
272
+ end
273
+
274
+ sig { returns(Float) }
275
+ attr_accessor :confidence
276
+
277
+ sig { returns(T.nilable(String)) }
278
+ attr_accessor :name
279
+
280
+ sig { returns(T::Array[OpenAI::Decision::Answer::Score::Probability]) }
281
+ attr_accessor :probabilities
282
+
283
+ sig { returns(Float) }
284
+ attr_accessor :score
285
+
286
+ # The type of the object. Always `score`.
287
+ sig { returns(Symbol) }
288
+ attr_accessor :type
289
+
290
+ sig do
291
+ params(
292
+
293
+ confidence: Float,
294
+
295
+ name: T.nilable(String),
296
+
297
+ probabilities: T::Array[OpenAI::Decision::Answer::Score::Probability::OrHash],
298
+
299
+ score: Float,
300
+
301
+ type: Symbol
302
+ )
303
+ .returns(T.attached_class)
304
+ end
305
+ def self.new(
306
+
307
+ confidence:,
308
+
309
+ name:,
310
+
311
+ probabilities:,
312
+
313
+ score:,
314
+
315
+ # The type of the object. Always `score`.
316
+
317
+ type: :score
318
+ )
319
+ end
320
+
321
+ sig do
322
+ override.returns(
323
+ {
324
+ confidence: Float,
325
+ name: T.nilable(String),
326
+ probabilities: T::Array[OpenAI::Decision::Answer::Score::Probability],
327
+ score: Float,
328
+ type: Symbol
329
+ }
330
+ )
331
+ end
332
+ def to_hash
333
+ end
334
+
335
+ class Probability < OpenAI::Internal::Type::BaseModel
336
+ OrHash = T.type_alias do
337
+ T.any(
338
+ OpenAI::Decision::Answer::Score::Probability,
339
+ OpenAI::Internal::AnyHash
340
+ )
341
+ end
342
+
343
+ sig { returns(String) }
344
+ attr_accessor :label
345
+
346
+ sig { returns(Float) }
347
+ attr_accessor :probability
348
+
349
+ sig { returns(Integer) }
350
+ attr_accessor :value
351
+
352
+ sig do
353
+ params(
354
+
355
+ label: String,
356
+
357
+ probability: Float,
358
+
359
+ value: Integer
360
+ )
361
+ .returns(T.attached_class)
362
+ end
363
+ def self.new(
364
+
365
+ label:,
366
+
367
+ probability:,
368
+
369
+ value:
370
+ )
371
+ end
372
+
373
+ sig do
374
+ override.returns(
375
+ {label: String, probability: Float, value: Integer}
376
+ )
377
+ end
378
+ def to_hash
379
+ end
380
+
381
+ end
382
+ end
383
+
384
+ class Refusal < OpenAI::Internal::Type::BaseModel
385
+ OrHash = T.type_alias do
386
+ T.any(
387
+ OpenAI::Decision::Answer::Refusal,
388
+ OpenAI::Internal::AnyHash
389
+ )
390
+ end
391
+
392
+ sig { returns(T.nilable(String)) }
393
+ attr_accessor :name
394
+
395
+ # The type of the object. Always `refusal`.
396
+ sig { returns(Symbol) }
397
+ attr_accessor :type
398
+
399
+ # The host may decline one question without disclosing its refusal score.
400
+ sig do
401
+ params(
402
+
403
+ name: T.nilable(String),
404
+
405
+ type: Symbol
406
+ )
407
+ .returns(T.attached_class)
408
+ end
409
+ def self.new(
410
+
411
+ name:,
412
+
413
+ # The type of the object. Always `refusal`.
414
+
415
+ type: :refusal
416
+ )
417
+ end
418
+
419
+ sig do
420
+ override.returns(
421
+ {name: T.nilable(String), type: Symbol}
422
+ )
423
+ end
424
+ def to_hash
425
+ end
426
+
427
+ end
428
+
429
+ sig { override.returns(T::Array[OpenAI::Decision::Answer::Variants]) }
430
+ def self.variants
431
+ end
432
+
433
+ end
434
+
435
+ class Usage < OpenAI::Internal::Type::BaseModel
436
+ OrHash = T.type_alias do
437
+ T.any(
438
+ OpenAI::Decision::Usage,
439
+ OpenAI::Internal::AnyHash
440
+ )
441
+ end
442
+
443
+ sig { returns(Integer) }
444
+ attr_accessor :input_tokens
445
+
446
+ sig { returns(OpenAI::Decision::Usage::InputTokensDetails) }
447
+ attr_reader :input_tokens_details
448
+
449
+ sig { params(input_tokens_details: OpenAI::Decision::Usage::InputTokensDetails::OrHash).void }
450
+ attr_writer :input_tokens_details
451
+
452
+ sig { returns(Integer) }
453
+ attr_accessor :output_tokens
454
+
455
+ sig { returns(OpenAI::Decision::Usage::OutputTokensDetails) }
456
+ attr_reader :output_tokens_details
457
+
458
+ sig { params(output_tokens_details: OpenAI::Decision::Usage::OutputTokensDetails::OrHash).void }
459
+ attr_writer :output_tokens_details
460
+
461
+ sig { returns(Integer) }
462
+ attr_accessor :total_tokens
463
+
464
+ sig do
465
+ params(
466
+
467
+ input_tokens: Integer,
468
+
469
+ input_tokens_details: OpenAI::Decision::Usage::InputTokensDetails::OrHash,
470
+
471
+ output_tokens: Integer,
472
+
473
+ output_tokens_details: OpenAI::Decision::Usage::OutputTokensDetails::OrHash,
474
+
475
+ total_tokens: Integer
476
+ )
477
+ .returns(T.attached_class)
478
+ end
479
+ def self.new(
480
+
481
+ input_tokens:,
482
+
483
+ input_tokens_details:,
484
+
485
+ output_tokens:,
486
+
487
+ output_tokens_details:,
488
+
489
+ total_tokens:
490
+ )
491
+ end
492
+
493
+ sig do
494
+ override.returns(
495
+ {
496
+ input_tokens: Integer,
497
+ input_tokens_details: OpenAI::Decision::Usage::InputTokensDetails,
498
+ output_tokens: Integer,
499
+ output_tokens_details: OpenAI::Decision::Usage::OutputTokensDetails,
500
+ total_tokens: Integer
501
+ }
502
+ )
503
+ end
504
+ def to_hash
505
+ end
506
+
507
+ class InputTokensDetails < OpenAI::Internal::Type::BaseModel
508
+ OrHash = T.type_alias do
509
+ T.any(
510
+ OpenAI::Decision::Usage::InputTokensDetails,
511
+ OpenAI::Internal::AnyHash
512
+ )
513
+ end
514
+
515
+ sig { returns(Integer) }
516
+ attr_accessor :cache_write_tokens
517
+
518
+ sig { returns(Integer) }
519
+ attr_accessor :cached_tokens
520
+
521
+ sig do
522
+ params(
523
+
524
+ cache_write_tokens: Integer,
525
+
526
+ cached_tokens: Integer
527
+ )
528
+ .returns(T.attached_class)
529
+ end
530
+ def self.new(
531
+
532
+ cache_write_tokens:,
533
+
534
+ cached_tokens:
535
+ )
536
+ end
537
+
538
+ sig do
539
+ override.returns(
540
+ {cache_write_tokens: Integer, cached_tokens: Integer}
541
+ )
542
+ end
543
+ def to_hash
544
+ end
545
+
546
+ end
547
+
548
+ class OutputTokensDetails < OpenAI::Internal::Type::BaseModel
549
+ OrHash = T.type_alias do
550
+ T.any(
551
+ OpenAI::Decision::Usage::OutputTokensDetails,
552
+ OpenAI::Internal::AnyHash
553
+ )
554
+ end
555
+
556
+ sig { returns(Integer) }
557
+ attr_accessor :reasoning_tokens
558
+
559
+ sig do
560
+ params(
561
+
562
+ reasoning_tokens: Integer
563
+ )
564
+ .returns(T.attached_class)
565
+ end
566
+ def self.new(
567
+
568
+ reasoning_tokens:
569
+ )
570
+ end
571
+
572
+ sig do
573
+ override.returns(
574
+ {reasoning_tokens: Integer}
575
+ )
576
+ end
577
+ def to_hash
578
+ end
579
+
580
+ end
581
+ end
582
+
583
+ end
584
+
585
+ end
586
+ end