openai 0.38.0 → 0.40.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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +9 -9
  4. data/lib/openai/internal/type/enum.rb +6 -6
  5. data/lib/openai/models/beta/assistant_create_params.rb +1 -1
  6. data/lib/openai/models/beta/assistant_update_params.rb +1 -1
  7. data/lib/openai/models/beta/threads/run_create_params.rb +1 -1
  8. data/lib/openai/models/chat/completion_create_params.rb +1 -1
  9. data/lib/openai/models/chat_model.rb +5 -0
  10. data/lib/openai/models/eval_create_params.rb +12 -13
  11. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +13 -14
  12. data/lib/openai/models/evals/run_cancel_response.rb +14 -15
  13. data/lib/openai/models/evals/run_create_params.rb +14 -15
  14. data/lib/openai/models/evals/run_create_response.rb +14 -15
  15. data/lib/openai/models/evals/run_list_response.rb +14 -15
  16. data/lib/openai/models/evals/run_retrieve_response.rb +14 -15
  17. data/lib/openai/models/graders/grader_inputs.rb +93 -0
  18. data/lib/openai/models/graders/label_model_grader.rb +12 -13
  19. data/lib/openai/models/graders/score_model_grader.rb +19 -16
  20. data/lib/openai/models/reasoning.rb +5 -3
  21. data/lib/openai/models/reasoning_effort.rb +1 -1
  22. data/lib/openai/models/responses/response_compact_params.rb +15 -0
  23. data/lib/openai/models/video_model.rb +3 -0
  24. data/lib/openai/resources/responses.rb +5 -5
  25. data/lib/openai/version.rb +1 -1
  26. data/lib/openai.rb +1 -0
  27. data/rbi/openai/models/beta/assistant_create_params.rbi +2 -2
  28. data/rbi/openai/models/beta/assistant_update_params.rbi +2 -2
  29. data/rbi/openai/models/beta/threads/run_create_params.rbi +2 -2
  30. data/rbi/openai/models/chat/completion_create_params.rbi +2 -2
  31. data/rbi/openai/models/chat_model.rbi +8 -0
  32. data/rbi/openai/models/eval_create_params.rbi +35 -16
  33. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +37 -18
  34. data/rbi/openai/models/evals/run_cancel_response.rbi +21 -18
  35. data/rbi/openai/models/evals/run_create_params.rbi +39 -20
  36. data/rbi/openai/models/evals/run_create_response.rbi +21 -18
  37. data/rbi/openai/models/evals/run_list_response.rbi +21 -18
  38. data/rbi/openai/models/evals/run_retrieve_response.rbi +21 -18
  39. data/rbi/openai/models/graders/grader_inputs.rbi +123 -0
  40. data/rbi/openai/models/graders/label_model_grader.rbi +35 -16
  41. data/rbi/openai/models/graders/score_model_grader.rbi +41 -20
  42. data/rbi/openai/models/reasoning.rbi +8 -5
  43. data/rbi/openai/models/reasoning_effort.rbi +1 -1
  44. data/rbi/openai/models/responses/response_compact_params.rbi +25 -0
  45. data/rbi/openai/models/video_model.rbi +6 -0
  46. data/rbi/openai/resources/beta/assistants.rbi +2 -2
  47. data/rbi/openai/resources/beta/threads/runs.rbi +2 -2
  48. data/rbi/openai/resources/chat/completions.rbi +2 -2
  49. data/sig/openai/models/chat_model.rbs +11 -1
  50. data/sig/openai/models/eval_create_params.rbs +1 -3
  51. data/sig/openai/models/evals/create_eval_completions_run_data_source.rbs +1 -3
  52. data/sig/openai/models/evals/run_cancel_response.rbs +1 -3
  53. data/sig/openai/models/evals/run_create_params.rbs +1 -3
  54. data/sig/openai/models/evals/run_create_response.rbs +1 -3
  55. data/sig/openai/models/evals/run_list_response.rbs +1 -3
  56. data/sig/openai/models/evals/run_retrieve_response.rbs +1 -3
  57. data/sig/openai/models/graders/grader_inputs.rbs +61 -0
  58. data/sig/openai/models/graders/label_model_grader.rbs +1 -3
  59. data/sig/openai/models/graders/score_model_grader.rbs +1 -3
  60. data/sig/openai/models/responses/response_compact_params.rbs +11 -1
  61. data/sig/openai/models/video_model.rbs +9 -1
  62. metadata +5 -2
@@ -11,7 +11,8 @@ module OpenAI
11
11
  T.any(OpenAI::Graders::ScoreModelGrader, OpenAI::Internal::AnyHash)
12
12
  end
13
13
 
14
- # The input text. This may include template strings.
14
+ # The input messages evaluated by the grader. Supports text, output text, input
15
+ # image, and input audio content blocks, and may include template strings.
15
16
  sig { returns(T::Array[OpenAI::Graders::ScoreModelGrader::Input]) }
16
17
  attr_accessor :input
17
18
 
@@ -61,7 +62,8 @@ module OpenAI
61
62
  ).returns(T.attached_class)
62
63
  end
63
64
  def self.new(
64
- # The input text. This may include template strings.
65
+ # The input messages evaluated by the grader. Supports text, output text, input
66
+ # image, and input audio content blocks, and may include template strings.
65
67
  input:,
66
68
  # The model to use for the evaluation.
67
69
  model:,
@@ -100,7 +102,8 @@ module OpenAI
100
102
  )
101
103
  end
102
104
 
103
- # Inputs to the model - can contain template strings.
105
+ # Inputs to the model - can contain template strings. Supports text, output text,
106
+ # input images, and input audio, either as a single item or an array of items.
104
107
  sig do
105
108
  returns(
106
109
  T.any(
@@ -109,7 +112,15 @@ module OpenAI
109
112
  OpenAI::Graders::ScoreModelGrader::Input::Content::OutputText,
110
113
  OpenAI::Graders::ScoreModelGrader::Input::Content::InputImage,
111
114
  OpenAI::Responses::ResponseInputAudio,
112
- T::Array[T.anything]
115
+ T::Array[
116
+ T.any(
117
+ String,
118
+ OpenAI::Responses::ResponseInputText,
119
+ OpenAI::Graders::GraderInputItem::OutputText,
120
+ OpenAI::Graders::GraderInputItem::InputImage,
121
+ OpenAI::Responses::ResponseInputAudio
122
+ )
123
+ ]
113
124
  )
114
125
  )
115
126
  end
@@ -153,14 +164,23 @@ module OpenAI
153
164
  OpenAI::Graders::ScoreModelGrader::Input::Content::OutputText::OrHash,
154
165
  OpenAI::Graders::ScoreModelGrader::Input::Content::InputImage::OrHash,
155
166
  OpenAI::Responses::ResponseInputAudio::OrHash,
156
- T::Array[T.anything]
167
+ T::Array[
168
+ T.any(
169
+ String,
170
+ OpenAI::Responses::ResponseInputText::OrHash,
171
+ OpenAI::Graders::GraderInputItem::OutputText::OrHash,
172
+ OpenAI::Graders::GraderInputItem::InputImage::OrHash,
173
+ OpenAI::Responses::ResponseInputAudio::OrHash
174
+ )
175
+ ]
157
176
  ),
158
177
  role: OpenAI::Graders::ScoreModelGrader::Input::Role::OrSymbol,
159
178
  type: OpenAI::Graders::ScoreModelGrader::Input::Type::OrSymbol
160
179
  ).returns(T.attached_class)
161
180
  end
162
181
  def self.new(
163
- # Inputs to the model - can contain template strings.
182
+ # Inputs to the model - can contain template strings. Supports text, output text,
183
+ # input images, and input audio, either as a single item or an array of items.
164
184
  content:,
165
185
  # The role of the message input. One of `user`, `assistant`, `system`, or
166
186
  # `developer`.
@@ -180,7 +200,15 @@ module OpenAI
180
200
  OpenAI::Graders::ScoreModelGrader::Input::Content::OutputText,
181
201
  OpenAI::Graders::ScoreModelGrader::Input::Content::InputImage,
182
202
  OpenAI::Responses::ResponseInputAudio,
183
- T::Array[T.anything]
203
+ T::Array[
204
+ T.any(
205
+ String,
206
+ OpenAI::Responses::ResponseInputText,
207
+ OpenAI::Graders::GraderInputItem::OutputText,
208
+ OpenAI::Graders::GraderInputItem::InputImage,
209
+ OpenAI::Responses::ResponseInputAudio
210
+ )
211
+ ]
184
212
  ),
185
213
  role: OpenAI::Graders::ScoreModelGrader::Input::Role::OrSymbol,
186
214
  type: OpenAI::Graders::ScoreModelGrader::Input::Type::OrSymbol
@@ -190,7 +218,8 @@ module OpenAI
190
218
  def to_hash
191
219
  end
192
220
 
193
- # Inputs to the model - can contain template strings.
221
+ # Inputs to the model - can contain template strings. Supports text, output text,
222
+ # input images, and input audio, either as a single item or an array of items.
194
223
  module Content
195
224
  extend OpenAI::Internal::Type::Union
196
225
 
@@ -202,7 +231,7 @@ module OpenAI
202
231
  OpenAI::Graders::ScoreModelGrader::Input::Content::OutputText,
203
232
  OpenAI::Graders::ScoreModelGrader::Input::Content::InputImage,
204
233
  OpenAI::Responses::ResponseInputAudio,
205
- T::Array[T.anything]
234
+ T::Array[OpenAI::Graders::GraderInputItem::Variants]
206
235
  )
207
236
  end
208
237
 
@@ -265,7 +294,7 @@ module OpenAI
265
294
  sig { params(detail: String).void }
266
295
  attr_writer :detail
267
296
 
268
- # An image input to the model.
297
+ # An image input block used within EvalItem content arrays.
269
298
  sig do
270
299
  params(image_url: String, detail: String, type: Symbol).returns(
271
300
  T.attached_class
@@ -300,14 +329,6 @@ module OpenAI
300
329
  end
301
330
  def self.variants
302
331
  end
303
-
304
- AnArrayOfInputTextInputImageAndInputAudioArray =
305
- T.let(
306
- OpenAI::Internal::Type::ArrayOf[
307
- OpenAI::Internal::Type::Unknown
308
- ],
309
- OpenAI::Internal::Type::Converter
310
- )
311
332
  end
312
333
 
313
334
  # The role of the message input. One of `user`, `assistant`, `system`, or
@@ -406,7 +427,7 @@ module OpenAI
406
427
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
407
428
  # support `none`.
408
429
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
409
- # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
430
+ # - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
410
431
  sig { returns(T.nilable(OpenAI::ReasoningEffort::OrSymbol)) }
411
432
  attr_accessor :reasoning_effort
412
433
 
@@ -447,7 +468,7 @@ module OpenAI
447
468
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
448
469
  # support `none`.
449
470
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
450
- # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
471
+ # - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
451
472
  reasoning_effort: nil,
452
473
  # A seed value to initialize the randomness, during sampling.
453
474
  seed: nil,
@@ -18,7 +18,7 @@ module OpenAI
18
18
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
19
19
  # support `none`.
20
20
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
21
- # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
21
+ # - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
22
22
  sig { returns(T.nilable(OpenAI::ReasoningEffort::OrSymbol)) }
23
23
  attr_accessor :effort
24
24
 
@@ -34,7 +34,8 @@ module OpenAI
34
34
  # debugging and understanding the model's reasoning process. One of `auto`,
35
35
  # `concise`, or `detailed`.
36
36
  #
37
- # `concise` is only supported for `computer-use-preview` models.
37
+ # `concise` is supported for `computer-use-preview` models and all reasoning
38
+ # models after `gpt-5`.
38
39
  sig { returns(T.nilable(OpenAI::Reasoning::Summary::OrSymbol)) }
39
40
  attr_accessor :summary
40
41
 
@@ -63,7 +64,7 @@ module OpenAI
63
64
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
64
65
  # support `none`.
65
66
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
66
- # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
67
+ # - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
67
68
  effort: nil,
68
69
  # **Deprecated:** use `summary` instead.
69
70
  #
@@ -75,7 +76,8 @@ module OpenAI
75
76
  # debugging and understanding the model's reasoning process. One of `auto`,
76
77
  # `concise`, or `detailed`.
77
78
  #
78
- # `concise` is only supported for `computer-use-preview` models.
79
+ # `concise` is supported for `computer-use-preview` models and all reasoning
80
+ # models after `gpt-5`.
79
81
  summary: nil
80
82
  )
81
83
  end
@@ -124,7 +126,8 @@ module OpenAI
124
126
  # debugging and understanding the model's reasoning process. One of `auto`,
125
127
  # `concise`, or `detailed`.
126
128
  #
127
- # `concise` is only supported for `computer-use-preview` models.
129
+ # `concise` is supported for `computer-use-preview` models and all reasoning
130
+ # models after `gpt-5`.
128
131
  module Summary
129
132
  extend OpenAI::Internal::Type::Enum
130
133
 
@@ -14,7 +14,7 @@ module OpenAI
14
14
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
15
15
  # support `none`.
16
16
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
17
- # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
17
+ # - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
18
18
  module ReasoningEffort
19
19
  extend OpenAI::Internal::Type::Enum
20
20
 
@@ -150,6 +150,31 @@ module OpenAI
150
150
  end
151
151
  OrSymbol = T.type_alias { T.any(Symbol, String) }
152
152
 
153
+ GPT_5_2 =
154
+ T.let(
155
+ :"gpt-5.2",
156
+ OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
157
+ )
158
+ GPT_5_2_2025_12_11 =
159
+ T.let(
160
+ :"gpt-5.2-2025-12-11",
161
+ OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
162
+ )
163
+ GPT_5_2_CHAT_LATEST =
164
+ T.let(
165
+ :"gpt-5.2-chat-latest",
166
+ OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
167
+ )
168
+ GPT_5_2_PRO =
169
+ T.let(
170
+ :"gpt-5.2-pro",
171
+ OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
172
+ )
173
+ GPT_5_2_PRO_2025_12_11 =
174
+ T.let(
175
+ :"gpt-5.2-pro-2025-12-11",
176
+ OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
177
+ )
153
178
  GPT_5_1 =
154
179
  T.let(
155
180
  :"gpt-5.1",
@@ -10,6 +10,12 @@ module OpenAI
10
10
 
11
11
  SORA_2 = T.let(:"sora-2", OpenAI::VideoModel::TaggedSymbol)
12
12
  SORA_2_PRO = T.let(:"sora-2-pro", OpenAI::VideoModel::TaggedSymbol)
13
+ SORA_2_2025_10_06 =
14
+ T.let(:"sora-2-2025-10-06", OpenAI::VideoModel::TaggedSymbol)
15
+ SORA_2_PRO_2025_10_06 =
16
+ T.let(:"sora-2-pro-2025-10-06", OpenAI::VideoModel::TaggedSymbol)
17
+ SORA_2_2025_12_08 =
18
+ T.let(:"sora-2-2025-12-08", OpenAI::VideoModel::TaggedSymbol)
13
19
 
14
20
  sig { override.returns(T::Array[OpenAI::VideoModel::TaggedSymbol]) }
15
21
  def self.values
@@ -72,7 +72,7 @@ module OpenAI
72
72
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
73
73
  # support `none`.
74
74
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
75
- # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
75
+ # - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
76
76
  reasoning_effort: nil,
77
77
  # Specifies the format that the model must output. Compatible with
78
78
  # [GPT-4o](https://platform.openai.com/docs/models#gpt-4o),
@@ -207,7 +207,7 @@ module OpenAI
207
207
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
208
208
  # support `none`.
209
209
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
210
- # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
210
+ # - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
211
211
  reasoning_effort: nil,
212
212
  # Specifies the format that the model must output. Compatible with
213
213
  # [GPT-4o](https://platform.openai.com/docs/models#gpt-4o),
@@ -135,7 +135,7 @@ module OpenAI
135
135
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
136
136
  # support `none`.
137
137
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
138
- # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
138
+ # - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
139
139
  reasoning_effort: nil,
140
140
  # Body param: Specifies the format that the model must output. Compatible with
141
141
  # [GPT-4o](https://platform.openai.com/docs/models#gpt-4o),
@@ -322,7 +322,7 @@ module OpenAI
322
322
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
323
323
  # support `none`.
324
324
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
325
- # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
325
+ # - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
326
326
  reasoning_effort: nil,
327
327
  # Body param: Specifies the format that the model must output. Compatible with
328
328
  # [GPT-4o](https://platform.openai.com/docs/models#gpt-4o),
@@ -238,7 +238,7 @@ module OpenAI
238
238
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
239
239
  # support `none`.
240
240
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
241
- # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
241
+ # - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
242
242
  reasoning_effort: nil,
243
243
  # An object specifying the format that the model must output.
244
244
  #
@@ -572,7 +572,7 @@ module OpenAI
572
572
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
573
573
  # support `none`.
574
574
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
575
- # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
575
+ # - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
576
576
  reasoning_effort: nil,
577
577
  # An object specifying the format that the model must output.
578
578
  #
@@ -1,7 +1,12 @@
1
1
  module OpenAI
2
2
  module Models
3
3
  type chat_model =
4
- :"gpt-5.1"
4
+ :"gpt-5.2"
5
+ | :"gpt-5.2-2025-12-11"
6
+ | :"gpt-5.2-chat-latest"
7
+ | :"gpt-5.2-pro"
8
+ | :"gpt-5.2-pro-2025-12-11"
9
+ | :"gpt-5.1"
5
10
  | :"gpt-5.1-2025-11-13"
6
11
  | :"gpt-5.1-codex"
7
12
  | :"gpt-5.1-mini"
@@ -72,6 +77,11 @@ module OpenAI
72
77
  module ChatModel
73
78
  extend OpenAI::Internal::Type::Enum
74
79
 
80
+ GPT_5_2: :"gpt-5.2"
81
+ GPT_5_2_2025_12_11: :"gpt-5.2-2025-12-11"
82
+ GPT_5_2_CHAT_LATEST: :"gpt-5.2-chat-latest"
83
+ GPT_5_2_PRO: :"gpt-5.2-pro"
84
+ GPT_5_2_PRO_2025_12_11: :"gpt-5.2-pro-2025-12-11"
75
85
  GPT_5_1: :"gpt-5.1"
76
86
  GPT_5_1_2025_11_13: :"gpt-5.1-2025-11-13"
77
87
  GPT_5_1_CODEX: :"gpt-5.1-codex"
@@ -220,7 +220,7 @@ module OpenAI
220
220
  | OpenAI::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::Content::OutputText
221
221
  | OpenAI::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::Content::InputImage
222
222
  | OpenAI::Responses::ResponseInputAudio
223
- | ::Array[top]
223
+ | OpenAI::Models::Graders::grader_inputs
224
224
 
225
225
  module Content
226
226
  extend OpenAI::Internal::Type::Union
@@ -263,8 +263,6 @@ module OpenAI
263
263
  end
264
264
 
265
265
  def self?.variants: -> ::Array[OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::content]
266
-
267
- AnArrayOfInputTextInputImageAndInputAudioArray: OpenAI::Internal::Type::Converter
268
266
  end
269
267
 
270
268
  type role = :user | :assistant | :system | :developer
@@ -236,7 +236,7 @@ module OpenAI
236
236
  | OpenAI::Evals::CreateEvalCompletionsRunDataSource::InputMessages::Template::Template::EvalItem::Content::OutputText
237
237
  | OpenAI::Evals::CreateEvalCompletionsRunDataSource::InputMessages::Template::Template::EvalItem::Content::InputImage
238
238
  | OpenAI::Responses::ResponseInputAudio
239
- | ::Array[top]
239
+ | OpenAI::Models::Graders::grader_inputs
240
240
 
241
241
  module Content
242
242
  extend OpenAI::Internal::Type::Union
@@ -279,8 +279,6 @@ module OpenAI
279
279
  end
280
280
 
281
281
  def self?.variants: -> ::Array[OpenAI::Models::Evals::CreateEvalCompletionsRunDataSource::InputMessages::Template::Template::EvalItem::content]
282
-
283
- AnArrayOfInputTextInputImageAndInputAudioArray: OpenAI::Internal::Type::Converter
284
282
  end
285
283
 
286
284
  type role = :user | :assistant | :system | :developer
@@ -352,7 +352,7 @@ module OpenAI
352
352
  | OpenAI::Models::Evals::RunCancelResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Content::OutputText
353
353
  | OpenAI::Models::Evals::RunCancelResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Content::InputImage
354
354
  | OpenAI::Responses::ResponseInputAudio
355
- | ::Array[top]
355
+ | OpenAI::Models::Graders::grader_inputs
356
356
 
357
357
  module Content
358
358
  extend OpenAI::Internal::Type::Union
@@ -402,8 +402,6 @@ module OpenAI
402
402
  end
403
403
 
404
404
  def self?.variants: -> ::Array[OpenAI::Models::Evals::RunCancelResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::content]
405
-
406
- AnArrayOfInputTextInputImageAndInputAudioArray: OpenAI::Internal::Type::Converter
407
405
  end
408
406
 
409
407
  type role = :user | :assistant | :system | :developer
@@ -315,7 +315,7 @@ module OpenAI
315
315
  | OpenAI::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::Content::OutputText
316
316
  | OpenAI::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::Content::InputImage
317
317
  | OpenAI::Responses::ResponseInputAudio
318
- | ::Array[top]
318
+ | OpenAI::Models::Graders::grader_inputs
319
319
 
320
320
  module Content
321
321
  extend OpenAI::Internal::Type::Union
@@ -365,8 +365,6 @@ module OpenAI
365
365
  end
366
366
 
367
367
  def self?.variants: -> ::Array[OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::content]
368
-
369
- AnArrayOfInputTextInputImageAndInputAudioArray: OpenAI::Internal::Type::Converter
370
368
  end
371
369
 
372
370
  type role = :user | :assistant | :system | :developer
@@ -352,7 +352,7 @@ module OpenAI
352
352
  | OpenAI::Models::Evals::RunCreateResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Content::OutputText
353
353
  | OpenAI::Models::Evals::RunCreateResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Content::InputImage
354
354
  | OpenAI::Responses::ResponseInputAudio
355
- | ::Array[top]
355
+ | OpenAI::Models::Graders::grader_inputs
356
356
 
357
357
  module Content
358
358
  extend OpenAI::Internal::Type::Union
@@ -402,8 +402,6 @@ module OpenAI
402
402
  end
403
403
 
404
404
  def self?.variants: -> ::Array[OpenAI::Models::Evals::RunCreateResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::content]
405
-
406
- AnArrayOfInputTextInputImageAndInputAudioArray: OpenAI::Internal::Type::Converter
407
405
  end
408
406
 
409
407
  type role = :user | :assistant | :system | :developer
@@ -352,7 +352,7 @@ module OpenAI
352
352
  | OpenAI::Models::Evals::RunListResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Content::OutputText
353
353
  | OpenAI::Models::Evals::RunListResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Content::InputImage
354
354
  | OpenAI::Responses::ResponseInputAudio
355
- | ::Array[top]
355
+ | OpenAI::Models::Graders::grader_inputs
356
356
 
357
357
  module Content
358
358
  extend OpenAI::Internal::Type::Union
@@ -402,8 +402,6 @@ module OpenAI
402
402
  end
403
403
 
404
404
  def self?.variants: -> ::Array[OpenAI::Models::Evals::RunListResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::content]
405
-
406
- AnArrayOfInputTextInputImageAndInputAudioArray: OpenAI::Internal::Type::Converter
407
405
  end
408
406
 
409
407
  type role = :user | :assistant | :system | :developer
@@ -352,7 +352,7 @@ module OpenAI
352
352
  | OpenAI::Models::Evals::RunRetrieveResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Content::OutputText
353
353
  | OpenAI::Models::Evals::RunRetrieveResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Content::InputImage
354
354
  | OpenAI::Responses::ResponseInputAudio
355
- | ::Array[top]
355
+ | OpenAI::Models::Graders::grader_inputs
356
356
 
357
357
  module Content
358
358
  extend OpenAI::Internal::Type::Union
@@ -402,8 +402,6 @@ module OpenAI
402
402
  end
403
403
 
404
404
  def self?.variants: -> ::Array[OpenAI::Models::Evals::RunRetrieveResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::content]
405
-
406
- AnArrayOfInputTextInputImageAndInputAudioArray: OpenAI::Internal::Type::Converter
407
405
  end
408
406
 
409
407
  type role = :user | :assistant | :system | :developer
@@ -0,0 +1,61 @@
1
+ module OpenAI
2
+ module Models
3
+ GraderInputs: OpenAI::Internal::Type::Converter
4
+
5
+ module Graders
6
+ type grader_input_item =
7
+ String
8
+ | OpenAI::Responses::ResponseInputText
9
+ | OpenAI::Graders::GraderInputItem::OutputText
10
+ | OpenAI::Graders::GraderInputItem::InputImage
11
+ | OpenAI::Responses::ResponseInputAudio
12
+
13
+ module GraderInputItem
14
+ extend OpenAI::Internal::Type::Union
15
+
16
+ type output_text = { text: String, type: :output_text }
17
+
18
+ class OutputText < OpenAI::Internal::Type::BaseModel
19
+ attr_accessor text: String
20
+
21
+ attr_accessor type: :output_text
22
+
23
+ def initialize: (text: String, ?type: :output_text) -> void
24
+
25
+ def to_hash: -> { text: String, type: :output_text }
26
+ end
27
+
28
+ type input_image =
29
+ { image_url: String, type: :input_image, detail: String }
30
+
31
+ class InputImage < OpenAI::Internal::Type::BaseModel
32
+ attr_accessor image_url: String
33
+
34
+ attr_accessor type: :input_image
35
+
36
+ attr_reader detail: String?
37
+
38
+ def detail=: (String) -> String
39
+
40
+ def initialize: (
41
+ image_url: String,
42
+ ?detail: String,
43
+ ?type: :input_image
44
+ ) -> void
45
+
46
+ def to_hash: -> {
47
+ image_url: String,
48
+ type: :input_image,
49
+ detail: String
50
+ }
51
+ end
52
+
53
+ def self?.variants: -> ::Array[OpenAI::Models::Graders::grader_input_item]
54
+ end
55
+
56
+ type grader_inputs = ::Array[OpenAI::Models::Graders::grader_input_item]
57
+
58
+ GraderInputs: OpenAI::Internal::Type::Converter
59
+ end
60
+ end
61
+ end
@@ -80,7 +80,7 @@ module OpenAI
80
80
  | OpenAI::Graders::LabelModelGrader::Input::Content::OutputText
81
81
  | OpenAI::Graders::LabelModelGrader::Input::Content::InputImage
82
82
  | OpenAI::Responses::ResponseInputAudio
83
- | ::Array[top]
83
+ | OpenAI::Models::Graders::grader_inputs
84
84
 
85
85
  module Content
86
86
  extend OpenAI::Internal::Type::Union
@@ -123,8 +123,6 @@ module OpenAI
123
123
  end
124
124
 
125
125
  def self?.variants: -> ::Array[OpenAI::Models::Graders::LabelModelGrader::Input::content]
126
-
127
- AnArrayOfInputTextInputImageAndInputAudioArray: OpenAI::Internal::Type::Converter
128
126
  end
129
127
 
130
128
  type role = :user | :assistant | :system | :developer
@@ -86,7 +86,7 @@ module OpenAI
86
86
  | OpenAI::Graders::ScoreModelGrader::Input::Content::OutputText
87
87
  | OpenAI::Graders::ScoreModelGrader::Input::Content::InputImage
88
88
  | OpenAI::Responses::ResponseInputAudio
89
- | ::Array[top]
89
+ | OpenAI::Models::Graders::grader_inputs
90
90
 
91
91
  module Content
92
92
  extend OpenAI::Internal::Type::Union
@@ -129,8 +129,6 @@ module OpenAI
129
129
  end
130
130
 
131
131
  def self?.variants: -> ::Array[OpenAI::Models::Graders::ScoreModelGrader::Input::content]
132
-
133
- AnArrayOfInputTextInputImageAndInputAudioArray: OpenAI::Internal::Type::Converter
134
132
  end
135
133
 
136
134
  type role = :user | :assistant | :system | :developer
@@ -39,7 +39,12 @@ module OpenAI
39
39
  }
40
40
 
41
41
  type model =
42
- :"gpt-5.1"
42
+ :"gpt-5.2"
43
+ | :"gpt-5.2-2025-12-11"
44
+ | :"gpt-5.2-chat-latest"
45
+ | :"gpt-5.2-pro"
46
+ | :"gpt-5.2-pro-2025-12-11"
47
+ | :"gpt-5.1"
43
48
  | :"gpt-5.1-2025-11-13"
44
49
  | :"gpt-5.1-codex"
45
50
  | :"gpt-5.1-mini"
@@ -127,6 +132,11 @@ module OpenAI
127
132
 
128
133
  def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseCompactParams::model]
129
134
 
135
+ GPT_5_2: :"gpt-5.2"
136
+ GPT_5_2_2025_12_11: :"gpt-5.2-2025-12-11"
137
+ GPT_5_2_CHAT_LATEST: :"gpt-5.2-chat-latest"
138
+ GPT_5_2_PRO: :"gpt-5.2-pro"
139
+ GPT_5_2_PRO_2025_12_11: :"gpt-5.2-pro-2025-12-11"
130
140
  GPT_5_1: :"gpt-5.1"
131
141
  GPT_5_1_2025_11_13: :"gpt-5.1-2025-11-13"
132
142
  GPT_5_1_CODEX: :"gpt-5.1-codex"
@@ -1,12 +1,20 @@
1
1
  module OpenAI
2
2
  module Models
3
- type video_model = :"sora-2" | :"sora-2-pro"
3
+ type video_model =
4
+ :"sora-2"
5
+ | :"sora-2-pro"
6
+ | :"sora-2-2025-10-06"
7
+ | :"sora-2-pro-2025-10-06"
8
+ | :"sora-2-2025-12-08"
4
9
 
5
10
  module VideoModel
6
11
  extend OpenAI::Internal::Type::Enum
7
12
 
8
13
  SORA_2: :"sora-2"
9
14
  SORA_2_PRO: :"sora-2-pro"
15
+ SORA_2_2025_10_06: :"sora-2-2025-10-06"
16
+ SORA_2_PRO_2025_10_06: :"sora-2-pro-2025-10-06"
17
+ SORA_2_2025_12_08: :"sora-2-2025-12-08"
10
18
 
11
19
  def self?.values: -> ::Array[OpenAI::Models::video_model]
12
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.38.0
4
+ version: 0.40.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-12-10 00:00:00.000000000 Z
11
+ date: 2025-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -399,6 +399,7 @@ files:
399
399
  - lib/openai/models/fine_tuning/supervised_method.rb
400
400
  - lib/openai/models/function_definition.rb
401
401
  - lib/openai/models/function_parameters.rb
402
+ - lib/openai/models/graders/grader_inputs.rb
402
403
  - lib/openai/models/graders/label_model_grader.rb
403
404
  - lib/openai/models/graders/multi_grader.rb
404
405
  - lib/openai/models/graders/python_grader.rb
@@ -1146,6 +1147,7 @@ files:
1146
1147
  - rbi/openai/models/fine_tuning/supervised_method.rbi
1147
1148
  - rbi/openai/models/function_definition.rbi
1148
1149
  - rbi/openai/models/function_parameters.rbi
1150
+ - rbi/openai/models/graders/grader_inputs.rbi
1149
1151
  - rbi/openai/models/graders/label_model_grader.rbi
1150
1152
  - rbi/openai/models/graders/multi_grader.rbi
1151
1153
  - rbi/openai/models/graders/python_grader.rbi
@@ -1883,6 +1885,7 @@ files:
1883
1885
  - sig/openai/models/fine_tuning/supervised_method.rbs
1884
1886
  - sig/openai/models/function_definition.rbs
1885
1887
  - sig/openai/models/function_parameters.rbs
1888
+ - sig/openai/models/graders/grader_inputs.rbs
1886
1889
  - sig/openai/models/graders/label_model_grader.rbs
1887
1890
  - sig/openai/models/graders/multi_grader.rbs
1888
1891
  - sig/openai/models/graders/python_grader.rbs