Skip to content

Commit 6140dae

Browse files
stainless-app[bot]meorphis
authored andcommitted
feat(api): o1-pro now available through the API (#43)
1 parent 4e4951f commit 6140dae

22 files changed

+200
-122
lines changed

.stats.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
configured_endpoints: 80
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-f3bce04386c4fcfd5037e0477fbaa39010003fd1558eb5185fe4a71dd6a05fdd.yml
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-b26121d5df6eb5d3032a45a267473798b15fcfec76dd44a3256cf1238be05fa4.yml

lib/openai.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
require_relative "openai/models/chat/chat_completion_message"
3838
require_relative "openai/models/fine_tuning/fine_tuning_job_wandb_integration_object"
3939
require_relative "openai/models/responses/response_function_tool_call"
40+
require_relative "openai/models/all_models"
4041
require_relative "openai/models/audio/speech_create_params"
4142
require_relative "openai/models/audio/speech_model"
4243
require_relative "openai/models/audio/transcription"
@@ -322,6 +323,7 @@
322323
require_relative "openai/models/responses/tool_choice_options"
323324
require_relative "openai/models/responses/tool_choice_types"
324325
require_relative "openai/models/responses/web_search_tool"
326+
require_relative "openai/models/responses_model"
325327
require_relative "openai/models/static_file_chunking_strategy"
326328
require_relative "openai/models/static_file_chunking_strategy_object"
327329
require_relative "openai/models/static_file_chunking_strategy_object_param"

lib/openai/models/all_models.rb

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# frozen_string_literal: true
2+
3+
module OpenAI
4+
module Models
5+
# @abstract
6+
class AllModels < OpenAI::Union
7+
variant String
8+
9+
variant enum: -> { OpenAI::Models::ChatModel }
10+
11+
variant enum: -> { OpenAI::Models::ChatModel }
12+
13+
variant enum: -> { OpenAI::Models::AllModels::UnionMember4 }
14+
15+
# @abstract
16+
class UnionMember4 < OpenAI::Enum
17+
O1_PRO = :"o1-pro"
18+
O1_PRO_2025_03_19 = :"o1-pro-2025-03-19"
19+
COMPUTER_USE_PREVIEW = :"computer-use-preview"
20+
COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11"
21+
22+
finalize!
23+
end
24+
25+
# @!parse
26+
# class << self
27+
# # @return [Array(String, Symbol, OpenAI::Models::ChatModel, Symbol, OpenAI::Models::ChatModel, Symbol, OpenAI::Models::AllModels::UnionMember4)]
28+
# def variants; end
29+
# end
30+
end
31+
end
32+
end

lib/openai/models/chat_model.rb

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ class ChatModel < OpenAI::Enum
1212
O1_PREVIEW_2024_09_12 = :"o1-preview-2024-09-12"
1313
O1_MINI = :"o1-mini"
1414
O1_MINI_2024_09_12 = :"o1-mini-2024-09-12"
15-
COMPUTER_USE_PREVIEW = :"computer-use-preview"
16-
COMPUTER_USE_PREVIEW_2025_02_04 = :"computer-use-preview-2025-02-04"
17-
COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11"
18-
GPT_4_5_PREVIEW = :"gpt-4.5-preview"
19-
GPT_4_5_PREVIEW_2025_02_27 = :"gpt-4.5-preview-2025-02-27"
2015
GPT_4O = :"gpt-4o"
2116
GPT_4O_2024_11_20 = :"gpt-4o-2024-11-20"
2217
GPT_4O_2024_08_06 = :"gpt-4o-2024-08-06"
@@ -26,6 +21,10 @@ class ChatModel < OpenAI::Enum
2621
GPT_4O_AUDIO_PREVIEW_2024_12_17 = :"gpt-4o-audio-preview-2024-12-17"
2722
GPT_4O_MINI_AUDIO_PREVIEW = :"gpt-4o-mini-audio-preview"
2823
GPT_4O_MINI_AUDIO_PREVIEW_2024_12_17 = :"gpt-4o-mini-audio-preview-2024-12-17"
24+
GPT_4O_SEARCH_PREVIEW = :"gpt-4o-search-preview"
25+
GPT_4O_MINI_SEARCH_PREVIEW = :"gpt-4o-mini-search-preview"
26+
GPT_4O_SEARCH_PREVIEW_2025_03_11 = :"gpt-4o-search-preview-2025-03-11"
27+
GPT_4O_MINI_SEARCH_PREVIEW_2025_03_11 = :"gpt-4o-mini-search-preview-2025-03-11"
2928
CHATGPT_4O_LATEST = :"chatgpt-4o-latest"
3029
GPT_4O_MINI = :"gpt-4o-mini"
3130
GPT_4O_MINI_2024_07_18 = :"gpt-4o-mini-2024-07-18"

lib/openai/models/responses/response.rb

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ class Response < OpenAI::BaseModel
5757
# [model guide](https://platform.openai.com/docs/models) to browse and compare
5858
# available models.
5959
#
60-
# @return [String, Symbol, OpenAI::Models::ChatModel]
61-
required :model, union: -> { OpenAI::Models::Responses::Response::Model }
60+
# @return [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::UnionMember2]
61+
required :model, union: -> { OpenAI::Models::ResponsesModel }
6262

6363
# @!attribute object
6464
# The object type of this resource - always set to `response`.
@@ -222,7 +222,7 @@ class Response < OpenAI::BaseModel
222222
# # @param incomplete_details [OpenAI::Models::Responses::Response::IncompleteDetails, nil]
223223
# # @param instructions [String, nil]
224224
# # @param metadata [Hash{Symbol=>String}, nil]
225-
# # @param model [String, Symbol, OpenAI::Models::ChatModel]
225+
# # @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::UnionMember2]
226226
# # @param output [Array<OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem>]
227227
# # @param parallel_tool_calls [Boolean]
228228
# # @param temperature [Float, nil]
@@ -300,29 +300,6 @@ class Reason < OpenAI::Enum
300300
end
301301
end
302302

303-
# @abstract
304-
#
305-
# Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a
306-
# wide range of models with different capabilities, performance characteristics,
307-
# and price points. Refer to the
308-
# [model guide](https://platform.openai.com/docs/models) to browse and compare
309-
# available models.
310-
class Model < OpenAI::Union
311-
variant String
312-
313-
# Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI
314-
# offers a wide range of models with different capabilities, performance
315-
# characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)
316-
# to browse and compare available models.
317-
variant enum: -> { OpenAI::Models::ChatModel }
318-
319-
# @!parse
320-
# class << self
321-
# # @return [Array(String, Symbol, OpenAI::Models::ChatModel)]
322-
# def variants; end
323-
# end
324-
end
325-
326303
# @abstract
327304
#
328305
# How the model should select which tool (or tools) to use when generating a

lib/openai/models/responses/response_create_params.rb

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ class ResponseCreateParams < OpenAI::BaseModel
2929
# [model guide](https://platform.openai.com/docs/models) to browse and compare
3030
# available models.
3131
#
32-
# @return [String, Symbol, OpenAI::Models::ChatModel]
33-
required :model, union: -> { OpenAI::Models::Responses::ResponseCreateParams::Model }
32+
# @return [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::UnionMember2]
33+
required :model, union: -> { OpenAI::Models::ResponsesModel }
3434

3535
# @!attribute include
3636
# Specify additional output data to include in the model response. Currently
@@ -198,7 +198,7 @@ class ResponseCreateParams < OpenAI::BaseModel
198198

199199
# @!parse
200200
# # @param input [String, Array<OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ItemReference>]
201-
# # @param model [String, Symbol, OpenAI::Models::ChatModel]
201+
# # @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::UnionMember2]
202202
# # @param include [Array<Symbol, OpenAI::Models::Responses::ResponseIncludable>, nil]
203203
# # @param instructions [String, nil]
204204
# # @param max_output_tokens [Integer, nil]
@@ -269,29 +269,6 @@ class Input < OpenAI::Union
269269
# end
270270
end
271271

272-
# @abstract
273-
#
274-
# Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a
275-
# wide range of models with different capabilities, performance characteristics,
276-
# and price points. Refer to the
277-
# [model guide](https://platform.openai.com/docs/models) to browse and compare
278-
# available models.
279-
class Model < OpenAI::Union
280-
variant String
281-
282-
# Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI
283-
# offers a wide range of models with different capabilities, performance
284-
# characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)
285-
# to browse and compare available models.
286-
variant enum: -> { OpenAI::Models::ChatModel }
287-
288-
# @!parse
289-
# class << self
290-
# # @return [Array(String, Symbol, OpenAI::Models::ChatModel)]
291-
# def variants; end
292-
# end
293-
end
294-
295272
# @abstract
296273
#
297274
# How the model should select which tool (or tools) to use when generating a

lib/openai/models/responses/response_function_tool_call_item.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module Models
55
module Responses
66
class ResponseFunctionToolCallItem < OpenAI::Models::Responses::ResponseFunctionToolCall
77
# @!attribute id
8-
# The unique ID of the function call tool output.
8+
# The unique ID of the function tool call.
99
#
1010
# @return [String]
1111
required :id, String
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# frozen_string_literal: true
2+
3+
module OpenAI
4+
module Models
5+
# @abstract
6+
class ResponsesModel < OpenAI::Union
7+
variant String
8+
9+
variant enum: -> { OpenAI::Models::ChatModel }
10+
11+
variant enum: -> { OpenAI::Models::ResponsesModel::UnionMember2 }
12+
13+
# @abstract
14+
class UnionMember2 < OpenAI::Enum
15+
O1_PRO = :"o1-pro"
16+
O1_PRO_2025_03_19 = :"o1-pro-2025-03-19"
17+
COMPUTER_USE_PREVIEW = :"computer-use-preview"
18+
COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11"
19+
20+
finalize!
21+
end
22+
23+
# @!parse
24+
# class << self
25+
# # @return [Array(String, Symbol, OpenAI::Models::ChatModel, Symbol, OpenAI::Models::ResponsesModel::UnionMember2)]
26+
# def variants; end
27+
# end
28+
end
29+
end
30+
end

lib/openai/resources/responses.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class Responses
3030
# - [Conversation state](https://platform.openai.com/docs/guides/conversation-state)
3131
# - [Function calling](https://platform.openai.com/docs/guides/function-calling)
3232
#
33-
# @option params [String, Symbol, OpenAI::Models::ChatModel] :model Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a
33+
# @option params [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::UnionMember2] :model Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a
3434
# wide range of models with different capabilities, performance characteristics,
3535
# and price points. Refer to the
3636
# [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -163,7 +163,7 @@ def create(params)
163163
# - [Conversation state](https://platform.openai.com/docs/guides/conversation-state)
164164
# - [Function calling](https://platform.openai.com/docs/guides/function-calling)
165165
#
166-
# @option params [String, Symbol, OpenAI::Models::ChatModel] :model Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a
166+
# @option params [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::UnionMember2] :model Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a
167167
# wide range of models with different capabilities, performance characteristics,
168168
# and price points. Refer to the
169169
# [model guide](https://platform.openai.com/docs/models) to browse and compare
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# typed: strong
2+
3+
module OpenAI
4+
module Models
5+
class AllModels < OpenAI::Union
6+
abstract!
7+
8+
Variants = type_template(:out) { {fixed: T.any(String, Symbol)} }
9+
10+
class UnionMember4 < OpenAI::Enum
11+
abstract!
12+
13+
Value = type_template(:out) { {fixed: Symbol} }
14+
15+
O1_PRO = :"o1-pro"
16+
O1_PRO_2025_03_19 = :"o1-pro-2025-03-19"
17+
COMPUTER_USE_PREVIEW = :"computer-use-preview"
18+
COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11"
19+
end
20+
end
21+
end
22+
end

0 commit comments

Comments
 (0)