From 2dfe7672766d45863104e49bba255699cb886a11 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 19 Mar 2025 20:35:41 +0000 Subject: [PATCH] feat(api): o1-pro now available through the API --- .stats.yml | 2 +- lib/openai.rb | 2 ++ lib/openai/models/all_models.rb | 32 +++++++++++++++++++ lib/openai/models/chat_model.rb | 9 +++--- lib/openai/models/responses/response.rb | 29 ++--------------- .../responses/response_create_params.rb | 29 ++--------------- .../response_function_tool_call_item.rb | 2 +- lib/openai/models/responses_model.rb | 30 +++++++++++++++++ lib/openai/resources/responses.rb | 4 +-- rbi/lib/openai/models/all_models.rbi | 22 +++++++++++++ rbi/lib/openai/models/chat_model.rbi | 9 +++--- rbi/lib/openai/models/responses/response.rbi | 11 ------- .../responses/response_create_params.rbi | 11 ------- .../response_function_tool_call_item.rbi | 2 +- rbi/lib/openai/models/responses_model.rbi | 22 +++++++++++++ sig/openai/models/all_models.rbs | 27 ++++++++++++++++ sig/openai/models/chat_model.rbs | 18 +++++------ sig/openai/models/responses/response.rbs | 12 ++----- .../responses/response_create_params.rbs | 12 ++----- sig/openai/models/responses_model.rbs | 27 ++++++++++++++++ sig/openai/resources/responses.rbs | 4 +-- test/openai/resources/responses_test.rb | 6 ++-- 22 files changed, 200 insertions(+), 122 deletions(-) create mode 100644 lib/openai/models/all_models.rb create mode 100644 lib/openai/models/responses_model.rb create mode 100644 rbi/lib/openai/models/all_models.rbi create mode 100644 rbi/lib/openai/models/responses_model.rbi create mode 100644 sig/openai/models/all_models.rbs create mode 100644 sig/openai/models/responses_model.rbs diff --git a/.stats.yml b/.stats.yml index 2ffca777..16c6386b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 80 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-f3bce04386c4fcfd5037e0477fbaa39010003fd1558eb5185fe4a71dd6a05fdd.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-b26121d5df6eb5d3032a45a267473798b15fcfec76dd44a3256cf1238be05fa4.yml diff --git a/lib/openai.rb b/lib/openai.rb index a722c1a4..84c5d333 100644 --- a/lib/openai.rb +++ b/lib/openai.rb @@ -37,6 +37,7 @@ require_relative "openai/models/chat/chat_completion_message" require_relative "openai/models/fine_tuning/fine_tuning_job_wandb_integration_object" require_relative "openai/models/responses/response_function_tool_call" +require_relative "openai/models/all_models" require_relative "openai/models/audio/speech_create_params" require_relative "openai/models/audio/speech_model" require_relative "openai/models/audio/transcription" @@ -322,6 +323,7 @@ require_relative "openai/models/responses/tool_choice_options" require_relative "openai/models/responses/tool_choice_types" require_relative "openai/models/responses/web_search_tool" +require_relative "openai/models/responses_model" require_relative "openai/models/static_file_chunking_strategy" require_relative "openai/models/static_file_chunking_strategy_object" require_relative "openai/models/static_file_chunking_strategy_object_param" diff --git a/lib/openai/models/all_models.rb b/lib/openai/models/all_models.rb new file mode 100644 index 00000000..b306f178 --- /dev/null +++ b/lib/openai/models/all_models.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +module OpenAI + module Models + # @abstract + class AllModels < OpenAI::Union + variant String + + variant enum: -> { OpenAI::Models::ChatModel } + + variant enum: -> { OpenAI::Models::ChatModel } + + variant enum: -> { OpenAI::Models::AllModels::UnionMember4 } + + # @abstract + class UnionMember4 < OpenAI::Enum + O1_PRO = :"o1-pro" + O1_PRO_2025_03_19 = :"o1-pro-2025-03-19" + COMPUTER_USE_PREVIEW = :"computer-use-preview" + COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11" + + finalize! + end + + # @!parse + # class << self + # # @return [Array(String, Symbol, OpenAI::Models::ChatModel, Symbol, OpenAI::Models::ChatModel, Symbol, OpenAI::Models::AllModels::UnionMember4)] + # def variants; end + # end + end + end +end diff --git a/lib/openai/models/chat_model.rb b/lib/openai/models/chat_model.rb index 29b0a851..8edd5e1a 100644 --- a/lib/openai/models/chat_model.rb +++ b/lib/openai/models/chat_model.rb @@ -12,11 +12,6 @@ class ChatModel < OpenAI::Enum O1_PREVIEW_2024_09_12 = :"o1-preview-2024-09-12" O1_MINI = :"o1-mini" O1_MINI_2024_09_12 = :"o1-mini-2024-09-12" - COMPUTER_USE_PREVIEW = :"computer-use-preview" - COMPUTER_USE_PREVIEW_2025_02_04 = :"computer-use-preview-2025-02-04" - COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11" - GPT_4_5_PREVIEW = :"gpt-4.5-preview" - GPT_4_5_PREVIEW_2025_02_27 = :"gpt-4.5-preview-2025-02-27" GPT_4O = :"gpt-4o" GPT_4O_2024_11_20 = :"gpt-4o-2024-11-20" GPT_4O_2024_08_06 = :"gpt-4o-2024-08-06" @@ -26,6 +21,10 @@ class ChatModel < OpenAI::Enum GPT_4O_AUDIO_PREVIEW_2024_12_17 = :"gpt-4o-audio-preview-2024-12-17" GPT_4O_MINI_AUDIO_PREVIEW = :"gpt-4o-mini-audio-preview" GPT_4O_MINI_AUDIO_PREVIEW_2024_12_17 = :"gpt-4o-mini-audio-preview-2024-12-17" + GPT_4O_SEARCH_PREVIEW = :"gpt-4o-search-preview" + GPT_4O_MINI_SEARCH_PREVIEW = :"gpt-4o-mini-search-preview" + GPT_4O_SEARCH_PREVIEW_2025_03_11 = :"gpt-4o-search-preview-2025-03-11" + GPT_4O_MINI_SEARCH_PREVIEW_2025_03_11 = :"gpt-4o-mini-search-preview-2025-03-11" CHATGPT_4O_LATEST = :"chatgpt-4o-latest" GPT_4O_MINI = :"gpt-4o-mini" GPT_4O_MINI_2024_07_18 = :"gpt-4o-mini-2024-07-18" diff --git a/lib/openai/models/responses/response.rb b/lib/openai/models/responses/response.rb index 98b2c145..8b979829 100644 --- a/lib/openai/models/responses/response.rb +++ b/lib/openai/models/responses/response.rb @@ -57,8 +57,8 @@ class Response < OpenAI::BaseModel # [model guide](https://platform.openai.com/docs/models) to browse and compare # available models. # - # @return [String, Symbol, OpenAI::Models::ChatModel] - required :model, union: -> { OpenAI::Models::Responses::Response::Model } + # @return [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::UnionMember2] + required :model, union: -> { OpenAI::Models::ResponsesModel } # @!attribute object # The object type of this resource - always set to `response`. @@ -222,7 +222,7 @@ class Response < OpenAI::BaseModel # # @param incomplete_details [OpenAI::Models::Responses::Response::IncompleteDetails, nil] # # @param instructions [String, nil] # # @param metadata [Hash{Symbol=>String}, nil] - # # @param model [String, Symbol, OpenAI::Models::ChatModel] + # # @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::UnionMember2] # # @param output [Array] # # @param parallel_tool_calls [Boolean] # # @param temperature [Float, nil] @@ -300,29 +300,6 @@ class Reason < OpenAI::Enum end end - # @abstract - # - # Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a - # wide range of models with different capabilities, performance characteristics, - # and price points. Refer to the - # [model guide](https://platform.openai.com/docs/models) to browse and compare - # available models. - class Model < OpenAI::Union - variant String - - # Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI - # offers a wide range of models with different capabilities, performance - # characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) - # to browse and compare available models. - variant enum: -> { OpenAI::Models::ChatModel } - - # @!parse - # class << self - # # @return [Array(String, Symbol, OpenAI::Models::ChatModel)] - # def variants; end - # end - end - # @abstract # # How the model should select which tool (or tools) to use when generating a diff --git a/lib/openai/models/responses/response_create_params.rb b/lib/openai/models/responses/response_create_params.rb index 4c6c485b..05ef2120 100644 --- a/lib/openai/models/responses/response_create_params.rb +++ b/lib/openai/models/responses/response_create_params.rb @@ -29,8 +29,8 @@ class ResponseCreateParams < OpenAI::BaseModel # [model guide](https://platform.openai.com/docs/models) to browse and compare # available models. # - # @return [String, Symbol, OpenAI::Models::ChatModel] - required :model, union: -> { OpenAI::Models::Responses::ResponseCreateParams::Model } + # @return [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::UnionMember2] + required :model, union: -> { OpenAI::Models::ResponsesModel } # @!attribute include # Specify additional output data to include in the model response. Currently @@ -198,7 +198,7 @@ class ResponseCreateParams < OpenAI::BaseModel # @!parse # # @param input [String, Array] - # # @param model [String, Symbol, OpenAI::Models::ChatModel] + # # @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::UnionMember2] # # @param include [Array, nil] # # @param instructions [String, nil] # # @param max_output_tokens [Integer, nil] @@ -269,29 +269,6 @@ class Input < OpenAI::Union # end end - # @abstract - # - # Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a - # wide range of models with different capabilities, performance characteristics, - # and price points. Refer to the - # [model guide](https://platform.openai.com/docs/models) to browse and compare - # available models. - class Model < OpenAI::Union - variant String - - # Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI - # offers a wide range of models with different capabilities, performance - # characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) - # to browse and compare available models. - variant enum: -> { OpenAI::Models::ChatModel } - - # @!parse - # class << self - # # @return [Array(String, Symbol, OpenAI::Models::ChatModel)] - # def variants; end - # end - end - # @abstract # # How the model should select which tool (or tools) to use when generating a diff --git a/lib/openai/models/responses/response_function_tool_call_item.rb b/lib/openai/models/responses/response_function_tool_call_item.rb index fa7413ea..9317cee6 100644 --- a/lib/openai/models/responses/response_function_tool_call_item.rb +++ b/lib/openai/models/responses/response_function_tool_call_item.rb @@ -5,7 +5,7 @@ module Models module Responses class ResponseFunctionToolCallItem < OpenAI::Models::Responses::ResponseFunctionToolCall # @!attribute id - # The unique ID of the function call tool output. + # The unique ID of the function tool call. # # @return [String] required :id, String diff --git a/lib/openai/models/responses_model.rb b/lib/openai/models/responses_model.rb new file mode 100644 index 00000000..d96fdbc5 --- /dev/null +++ b/lib/openai/models/responses_model.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +module OpenAI + module Models + # @abstract + class ResponsesModel < OpenAI::Union + variant String + + variant enum: -> { OpenAI::Models::ChatModel } + + variant enum: -> { OpenAI::Models::ResponsesModel::UnionMember2 } + + # @abstract + class UnionMember2 < OpenAI::Enum + O1_PRO = :"o1-pro" + O1_PRO_2025_03_19 = :"o1-pro-2025-03-19" + COMPUTER_USE_PREVIEW = :"computer-use-preview" + COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11" + + finalize! + end + + # @!parse + # class << self + # # @return [Array(String, Symbol, OpenAI::Models::ChatModel, Symbol, OpenAI::Models::ResponsesModel::UnionMember2)] + # def variants; end + # end + end + end +end diff --git a/lib/openai/resources/responses.rb b/lib/openai/resources/responses.rb index fdbe46bc..b09ce757 100644 --- a/lib/openai/resources/responses.rb +++ b/lib/openai/resources/responses.rb @@ -30,7 +30,7 @@ class Responses # - [Conversation state](https://platform.openai.com/docs/guides/conversation-state) # - [Function calling](https://platform.openai.com/docs/guides/function-calling) # - # @option params [String, Symbol, OpenAI::Models::ChatModel] :model Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a + # @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 # wide range of models with different capabilities, performance characteristics, # and price points. Refer to the # [model guide](https://platform.openai.com/docs/models) to browse and compare @@ -163,7 +163,7 @@ def create(params) # - [Conversation state](https://platform.openai.com/docs/guides/conversation-state) # - [Function calling](https://platform.openai.com/docs/guides/function-calling) # - # @option params [String, Symbol, OpenAI::Models::ChatModel] :model Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a + # @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 # wide range of models with different capabilities, performance characteristics, # and price points. Refer to the # [model guide](https://platform.openai.com/docs/models) to browse and compare diff --git a/rbi/lib/openai/models/all_models.rbi b/rbi/lib/openai/models/all_models.rbi new file mode 100644 index 00000000..d124a099 --- /dev/null +++ b/rbi/lib/openai/models/all_models.rbi @@ -0,0 +1,22 @@ +# typed: strong + +module OpenAI + module Models + class AllModels < OpenAI::Union + abstract! + + Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + + class UnionMember4 < OpenAI::Enum + abstract! + + Value = type_template(:out) { {fixed: Symbol} } + + O1_PRO = :"o1-pro" + O1_PRO_2025_03_19 = :"o1-pro-2025-03-19" + COMPUTER_USE_PREVIEW = :"computer-use-preview" + COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11" + end + end + end +end diff --git a/rbi/lib/openai/models/chat_model.rbi b/rbi/lib/openai/models/chat_model.rbi index acb06a2d..9ec815a5 100644 --- a/rbi/lib/openai/models/chat_model.rbi +++ b/rbi/lib/openai/models/chat_model.rbi @@ -15,11 +15,6 @@ module OpenAI O1_PREVIEW_2024_09_12 = :"o1-preview-2024-09-12" O1_MINI = :"o1-mini" O1_MINI_2024_09_12 = :"o1-mini-2024-09-12" - COMPUTER_USE_PREVIEW = :"computer-use-preview" - COMPUTER_USE_PREVIEW_2025_02_04 = :"computer-use-preview-2025-02-04" - COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11" - GPT_4_5_PREVIEW = :"gpt-4.5-preview" - GPT_4_5_PREVIEW_2025_02_27 = :"gpt-4.5-preview-2025-02-27" GPT_4O = :"gpt-4o" GPT_4O_2024_11_20 = :"gpt-4o-2024-11-20" GPT_4O_2024_08_06 = :"gpt-4o-2024-08-06" @@ -29,6 +24,10 @@ module OpenAI GPT_4O_AUDIO_PREVIEW_2024_12_17 = :"gpt-4o-audio-preview-2024-12-17" GPT_4O_MINI_AUDIO_PREVIEW = :"gpt-4o-mini-audio-preview" GPT_4O_MINI_AUDIO_PREVIEW_2024_12_17 = :"gpt-4o-mini-audio-preview-2024-12-17" + GPT_4O_SEARCH_PREVIEW = :"gpt-4o-search-preview" + GPT_4O_MINI_SEARCH_PREVIEW = :"gpt-4o-mini-search-preview" + GPT_4O_SEARCH_PREVIEW_2025_03_11 = :"gpt-4o-search-preview-2025-03-11" + GPT_4O_MINI_SEARCH_PREVIEW_2025_03_11 = :"gpt-4o-mini-search-preview-2025-03-11" CHATGPT_4O_LATEST = :"chatgpt-4o-latest" GPT_4O_MINI = :"gpt-4o-mini" GPT_4O_MINI_2024_07_18 = :"gpt-4o-mini-2024-07-18" diff --git a/rbi/lib/openai/models/responses/response.rbi b/rbi/lib/openai/models/responses/response.rbi index 1ece0d1b..d0e82f4e 100644 --- a/rbi/lib/openai/models/responses/response.rbi +++ b/rbi/lib/openai/models/responses/response.rbi @@ -502,17 +502,6 @@ module OpenAI end end - # Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a - # wide range of models with different capabilities, performance characteristics, - # and price points. Refer to the - # [model guide](https://platform.openai.com/docs/models) to browse and compare - # available models. - class Model < OpenAI::Union - abstract! - - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } - end - # How the model should select which tool (or tools) to use when generating a # response. See the `tools` parameter to see how to specify which tools the model # can call. diff --git a/rbi/lib/openai/models/responses/response_create_params.rbi b/rbi/lib/openai/models/responses/response_create_params.rbi index cc441334..21d6b940 100644 --- a/rbi/lib/openai/models/responses/response_create_params.rbi +++ b/rbi/lib/openai/models/responses/response_create_params.rbi @@ -385,17 +385,6 @@ module OpenAI Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::Responses::ResponseInput)} } end - # Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a - # wide range of models with different capabilities, performance characteristics, - # and price points. Refer to the - # [model guide](https://platform.openai.com/docs/models) to browse and compare - # available models. - class Model < OpenAI::Union - abstract! - - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } - end - # How the model should select which tool (or tools) to use when generating a # response. See the `tools` parameter to see how to specify which tools the model # can call. diff --git a/rbi/lib/openai/models/responses/response_function_tool_call_item.rbi b/rbi/lib/openai/models/responses/response_function_tool_call_item.rbi index 6e1a4cce..d0e917fc 100644 --- a/rbi/lib/openai/models/responses/response_function_tool_call_item.rbi +++ b/rbi/lib/openai/models/responses/response_function_tool_call_item.rbi @@ -4,7 +4,7 @@ module OpenAI module Models module Responses class ResponseFunctionToolCallItem < OpenAI::Models::Responses::ResponseFunctionToolCall - # The unique ID of the function call tool output. + # The unique ID of the function tool call. sig { returns(String) } def id end diff --git a/rbi/lib/openai/models/responses_model.rbi b/rbi/lib/openai/models/responses_model.rbi new file mode 100644 index 00000000..ecad7412 --- /dev/null +++ b/rbi/lib/openai/models/responses_model.rbi @@ -0,0 +1,22 @@ +# typed: strong + +module OpenAI + module Models + class ResponsesModel < OpenAI::Union + abstract! + + Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + + class UnionMember2 < OpenAI::Enum + abstract! + + Value = type_template(:out) { {fixed: Symbol} } + + O1_PRO = :"o1-pro" + O1_PRO_2025_03_19 = :"o1-pro-2025-03-19" + COMPUTER_USE_PREVIEW = :"computer-use-preview" + COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11" + end + end + end +end diff --git a/sig/openai/models/all_models.rbs b/sig/openai/models/all_models.rbs new file mode 100644 index 00000000..7abb928a --- /dev/null +++ b/sig/openai/models/all_models.rbs @@ -0,0 +1,27 @@ +module OpenAI + module Models + type all_models = + String + | OpenAI::Models::chat_model + | OpenAI::Models::AllModels::union_member4 + + class AllModels < OpenAI::Union + type union_member4 = + :"o1-pro" + | :"o1-pro-2025-03-19" + | :"computer-use-preview" + | :"computer-use-preview-2025-03-11" + + class UnionMember4 < OpenAI::Enum + O1_PRO: :"o1-pro" + O1_PRO_2025_03_19: :"o1-pro-2025-03-19" + COMPUTER_USE_PREVIEW: :"computer-use-preview" + COMPUTER_USE_PREVIEW_2025_03_11: :"computer-use-preview-2025-03-11" + + def self.values: -> ::Array[OpenAI::Models::AllModels::union_member4] + end + + def self.variants: -> [String, OpenAI::Models::chat_model, OpenAI::Models::chat_model, OpenAI::Models::AllModels::union_member4] + end + end +end diff --git a/sig/openai/models/chat_model.rbs b/sig/openai/models/chat_model.rbs index 5940f36f..75caff71 100644 --- a/sig/openai/models/chat_model.rbs +++ b/sig/openai/models/chat_model.rbs @@ -9,11 +9,6 @@ module OpenAI | :"o1-preview-2024-09-12" | :"o1-mini" | :"o1-mini-2024-09-12" - | :"computer-use-preview" - | :"computer-use-preview-2025-02-04" - | :"computer-use-preview-2025-03-11" - | :"gpt-4.5-preview" - | :"gpt-4.5-preview-2025-02-27" | :"gpt-4o" | :"gpt-4o-2024-11-20" | :"gpt-4o-2024-08-06" @@ -23,6 +18,10 @@ module OpenAI | :"gpt-4o-audio-preview-2024-12-17" | :"gpt-4o-mini-audio-preview" | :"gpt-4o-mini-audio-preview-2024-12-17" + | :"gpt-4o-search-preview" + | :"gpt-4o-mini-search-preview" + | :"gpt-4o-search-preview-2025-03-11" + | :"gpt-4o-mini-search-preview-2025-03-11" | :"chatgpt-4o-latest" | :"gpt-4o-mini" | :"gpt-4o-mini-2024-07-18" @@ -55,11 +54,6 @@ module OpenAI O1_PREVIEW_2024_09_12: :"o1-preview-2024-09-12" O1_MINI: :"o1-mini" O1_MINI_2024_09_12: :"o1-mini-2024-09-12" - COMPUTER_USE_PREVIEW: :"computer-use-preview" - COMPUTER_USE_PREVIEW_2025_02_04: :"computer-use-preview-2025-02-04" - COMPUTER_USE_PREVIEW_2025_03_11: :"computer-use-preview-2025-03-11" - GPT_4_5_PREVIEW: :"gpt-4.5-preview" - GPT_4_5_PREVIEW_2025_02_27: :"gpt-4.5-preview-2025-02-27" GPT_4O: :"gpt-4o" GPT_4O_2024_11_20: :"gpt-4o-2024-11-20" GPT_4O_2024_08_06: :"gpt-4o-2024-08-06" @@ -69,6 +63,10 @@ module OpenAI GPT_4O_AUDIO_PREVIEW_2024_12_17: :"gpt-4o-audio-preview-2024-12-17" GPT_4O_MINI_AUDIO_PREVIEW: :"gpt-4o-mini-audio-preview" GPT_4O_MINI_AUDIO_PREVIEW_2024_12_17: :"gpt-4o-mini-audio-preview-2024-12-17" + GPT_4O_SEARCH_PREVIEW: :"gpt-4o-search-preview" + GPT_4O_MINI_SEARCH_PREVIEW: :"gpt-4o-mini-search-preview" + GPT_4O_SEARCH_PREVIEW_2025_03_11: :"gpt-4o-search-preview-2025-03-11" + GPT_4O_MINI_SEARCH_PREVIEW_2025_03_11: :"gpt-4o-mini-search-preview-2025-03-11" CHATGPT_4O_LATEST: :"chatgpt-4o-latest" GPT_4O_MINI: :"gpt-4o-mini" GPT_4O_MINI_2024_07_18: :"gpt-4o-mini-2024-07-18" diff --git a/sig/openai/models/responses/response.rbs b/sig/openai/models/responses/response.rbs index f8f5c22b..39953b70 100644 --- a/sig/openai/models/responses/response.rbs +++ b/sig/openai/models/responses/response.rbs @@ -9,7 +9,7 @@ module OpenAI incomplete_details: OpenAI::Models::Responses::Response::IncompleteDetails?, instructions: String?, metadata: OpenAI::Models::metadata?, - model: OpenAI::Models::Responses::Response::model, + model: OpenAI::Models::responses_model, object: :response, output: ::Array[OpenAI::Models::Responses::response_output_item], parallel_tool_calls: bool, @@ -40,7 +40,7 @@ module OpenAI attr_accessor metadata: OpenAI::Models::metadata? - attr_accessor model: OpenAI::Models::Responses::Response::model + attr_accessor model: OpenAI::Models::responses_model attr_accessor object: :response @@ -93,7 +93,7 @@ module OpenAI incomplete_details: OpenAI::Models::Responses::Response::IncompleteDetails?, instructions: String?, metadata: OpenAI::Models::metadata?, - model: OpenAI::Models::Responses::Response::model, + model: OpenAI::Models::responses_model, output: ::Array[OpenAI::Models::Responses::response_output_item], parallel_tool_calls: bool, temperature: Float?, @@ -141,12 +141,6 @@ module OpenAI end end - type model = String | OpenAI::Models::chat_model - - class Model < OpenAI::Union - def self.variants: -> [String, OpenAI::Models::chat_model] - end - type tool_choice = OpenAI::Models::Responses::tool_choice_options | OpenAI::Models::Responses::ToolChoiceTypes diff --git a/sig/openai/models/responses/response_create_params.rbs b/sig/openai/models/responses/response_create_params.rbs index 2f4ca294..697640de 100644 --- a/sig/openai/models/responses/response_create_params.rbs +++ b/sig/openai/models/responses/response_create_params.rbs @@ -4,7 +4,7 @@ module OpenAI type response_create_params = { input: OpenAI::Models::Responses::ResponseCreateParams::input, - model: OpenAI::Models::Responses::ResponseCreateParams::model, + model: OpenAI::Models::responses_model, include: ::Array[OpenAI::Models::Responses::response_includable]?, instructions: String?, max_output_tokens: Integer?, @@ -29,7 +29,7 @@ module OpenAI attr_accessor input: OpenAI::Models::Responses::ResponseCreateParams::input - attr_accessor model: OpenAI::Models::Responses::ResponseCreateParams::model + attr_accessor model: OpenAI::Models::responses_model attr_accessor include: ::Array[OpenAI::Models::Responses::response_includable]? @@ -77,7 +77,7 @@ module OpenAI def initialize: ( input: OpenAI::Models::Responses::ResponseCreateParams::input, - model: OpenAI::Models::Responses::ResponseCreateParams::model, + model: OpenAI::Models::responses_model, ?include: ::Array[OpenAI::Models::Responses::response_includable]?, ?instructions: String?, ?max_output_tokens: Integer?, @@ -104,12 +104,6 @@ module OpenAI def self.variants: -> [String, OpenAI::Models::Responses::response_input] end - type model = String | OpenAI::Models::chat_model - - class Model < OpenAI::Union - def self.variants: -> [String, OpenAI::Models::chat_model] - end - type tool_choice = OpenAI::Models::Responses::tool_choice_options | OpenAI::Models::Responses::ToolChoiceTypes diff --git a/sig/openai/models/responses_model.rbs b/sig/openai/models/responses_model.rbs new file mode 100644 index 00000000..582ad254 --- /dev/null +++ b/sig/openai/models/responses_model.rbs @@ -0,0 +1,27 @@ +module OpenAI + module Models + type responses_model = + String + | OpenAI::Models::chat_model + | OpenAI::Models::ResponsesModel::union_member2 + + class ResponsesModel < OpenAI::Union + type union_member2 = + :"o1-pro" + | :"o1-pro-2025-03-19" + | :"computer-use-preview" + | :"computer-use-preview-2025-03-11" + + class UnionMember2 < OpenAI::Enum + O1_PRO: :"o1-pro" + O1_PRO_2025_03_19: :"o1-pro-2025-03-19" + COMPUTER_USE_PREVIEW: :"computer-use-preview" + COMPUTER_USE_PREVIEW_2025_03_11: :"computer-use-preview-2025-03-11" + + def self.values: -> ::Array[OpenAI::Models::ResponsesModel::union_member2] + end + + def self.variants: -> [String, OpenAI::Models::chat_model, OpenAI::Models::ResponsesModel::union_member2] + end + end +end diff --git a/sig/openai/resources/responses.rbs b/sig/openai/resources/responses.rbs index 3e91571f..ba80da78 100644 --- a/sig/openai/resources/responses.rbs +++ b/sig/openai/resources/responses.rbs @@ -5,7 +5,7 @@ module OpenAI def create: ( input: OpenAI::Models::Responses::ResponseCreateParams::input, - model: OpenAI::Models::Responses::ResponseCreateParams::model, + model: OpenAI::Models::responses_model, ?include: ::Array[OpenAI::Models::Responses::response_includable]?, ?instructions: String?, ?max_output_tokens: Integer?, @@ -26,7 +26,7 @@ module OpenAI def create_streaming: ( input: OpenAI::Models::Responses::ResponseCreateParams::input, - model: OpenAI::Models::Responses::ResponseCreateParams::model, + model: OpenAI::Models::responses_model, ?include: ::Array[OpenAI::Models::Responses::response_includable]?, ?instructions: String?, ?max_output_tokens: Integer?, diff --git a/test/openai/resources/responses_test.rb b/test/openai/resources/responses_test.rb index 6ecd70a3..1f0c3d9f 100644 --- a/test/openai/resources/responses_test.rb +++ b/test/openai/resources/responses_test.rb @@ -4,7 +4,7 @@ class OpenAI::Test::Resources::ResponsesTest < OpenAI::Test::ResourceTest def test_create_required_params - response = @openai.responses.create(input: "string", model: :"o3-mini", stream: true) + response = @openai.responses.create(input: "string", model: :"gpt-4o", stream: true) assert_pattern do response => OpenAI::Models::Responses::Response @@ -18,7 +18,7 @@ def test_create_required_params incomplete_details: OpenAI::Models::Responses::Response::IncompleteDetails | nil, instructions: String | nil, metadata: ^(OpenAI::HashOf[String]) | nil, - model: OpenAI::Models::Responses::Response::Model, + model: OpenAI::Models::ResponsesModel, object: Symbol, output: ^(OpenAI::ArrayOf[union: OpenAI::Models::Responses::ResponseOutputItem]), parallel_tool_calls: OpenAI::BooleanModel, @@ -53,7 +53,7 @@ def test_retrieve incomplete_details: OpenAI::Models::Responses::Response::IncompleteDetails | nil, instructions: String | nil, metadata: ^(OpenAI::HashOf[String]) | nil, - model: OpenAI::Models::Responses::Response::Model, + model: OpenAI::Models::ResponsesModel, object: Symbol, output: ^(OpenAI::ArrayOf[union: OpenAI::Models::Responses::ResponseOutputItem]), parallel_tool_calls: OpenAI::BooleanModel,