From c2bdf2fdd10a9f3ba6e32fdaa59b478a1c00aec6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 17 Mar 2025 14:28:53 +0000 Subject: [PATCH] fix: enums should not unnecessarily convert non-members to symbol type --- .../models/beta/assistant_update_params.rb | 144 ++++++++++++------ lib/openai/models/completion_create_params.rb | 32 ++-- .../models/fine_tuning/job_create_params.rb | 34 ++--- lib/openai/resources/beta/assistants.rb | 2 +- lib/openai/resources/completions.rb | 4 +- lib/openai/resources/fine_tuning/jobs.rb | 2 +- .../models/beta/assistant_update_params.rbi | 42 ----- .../models/completion_create_params.rbi | 15 -- .../models/fine_tuning/job_create_params.rbi | 13 -- .../models/beta/assistant_update_params.rbs | 129 ++++++++-------- .../models/completion_create_params.rbs | 17 +-- .../models/fine_tuning/job_create_params.rbs | 23 ++- test/openai/client_test.rb | 30 ++-- test/openai/resources/audio/speech_test.rb | 2 +- test/openai/resources/beta/assistants_test.rb | 2 +- .../openai/resources/chat/completions_test.rb | 2 +- test/openai/resources/completions_test.rb | 6 +- test/openai/resources/embeddings_test.rb | 2 +- .../openai/resources/fine_tuning/jobs_test.rb | 2 +- test/openai/resources/responses_test.rb | 2 +- 20 files changed, 231 insertions(+), 274 deletions(-) diff --git a/lib/openai/models/beta/assistant_update_params.rb b/lib/openai/models/beta/assistant_update_params.rb index 5a89f162..494df652 100644 --- a/lib/openai/models/beta/assistant_update_params.rb +++ b/lib/openai/models/beta/assistant_update_params.rb @@ -39,11 +39,11 @@ class AssistantUpdateParams < OpenAI::BaseModel # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. # - # @return [String, Symbol, OpenAI::Models::Beta::AssistantUpdateParams::Model::AssistantSupportedModels, nil] + # @return [String, Symbol, nil] optional :model, union: -> { OpenAI::Models::Beta::AssistantUpdateParams::Model } # @!parse - # # @return [String, Symbol, OpenAI::Models::Beta::AssistantUpdateParams::Model::AssistantSupportedModels] + # # @return [String, Symbol] # attr_writer :model # @!attribute name @@ -131,7 +131,7 @@ class AssistantUpdateParams < OpenAI::BaseModel # # @param description [String, nil] # # @param instructions [String, nil] # # @param metadata [Hash{Symbol=>String}, nil] - # # @param model [String, Symbol, OpenAI::Models::Beta::AssistantUpdateParams::Model::AssistantSupportedModels] + # # @param model [String, Symbol] # # @param name [String, nil] # # @param reasoning_effort [Symbol, OpenAI::Models::ReasoningEffort, nil] # # @param response_format [Symbol, :auto, OpenAI::Models::ResponseFormatText, OpenAI::Models::ResponseFormatJSONObject, OpenAI::Models::ResponseFormatJSONSchema, nil] @@ -169,56 +169,106 @@ class AssistantUpdateParams < OpenAI::BaseModel # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. class Model < OpenAI::Union + # @!group + + O3_MINI = :"o3-mini" + O3_MINI_2025_01_31 = :"o3-mini-2025-01-31" + O1 = :o1 + O1_2024_12_17 = :"o1-2024-12-17" + GPT_4O = :"gpt-4o" + GPT_4O_2024_11_20 = :"gpt-4o-2024-11-20" + GPT_4O_2024_08_06 = :"gpt-4o-2024-08-06" + GPT_4O_2024_05_13 = :"gpt-4o-2024-05-13" + GPT_4O_MINI = :"gpt-4o-mini" + GPT_4O_MINI_2024_07_18 = :"gpt-4o-mini-2024-07-18" + GPT_4_5_PREVIEW = :"gpt-4.5-preview" + GPT_4_5_PREVIEW_2025_02_27 = :"gpt-4.5-preview-2025-02-27" + GPT_4_TURBO = :"gpt-4-turbo" + GPT_4_TURBO_2024_04_09 = :"gpt-4-turbo-2024-04-09" + GPT_4_0125_PREVIEW = :"gpt-4-0125-preview" + GPT_4_TURBO_PREVIEW = :"gpt-4-turbo-preview" + GPT_4_1106_PREVIEW = :"gpt-4-1106-preview" + GPT_4_VISION_PREVIEW = :"gpt-4-vision-preview" + GPT_4 = :"gpt-4" + GPT_4_0314 = :"gpt-4-0314" + GPT_4_0613 = :"gpt-4-0613" + GPT_4_32K = :"gpt-4-32k" + GPT_4_32K_0314 = :"gpt-4-32k-0314" + GPT_4_32K_0613 = :"gpt-4-32k-0613" + GPT_3_5_TURBO = :"gpt-3.5-turbo" + GPT_3_5_TURBO_16K = :"gpt-3.5-turbo-16k" + GPT_3_5_TURBO_0613 = :"gpt-3.5-turbo-0613" + GPT_3_5_TURBO_1106 = :"gpt-3.5-turbo-1106" + GPT_3_5_TURBO_0125 = :"gpt-3.5-turbo-0125" + GPT_3_5_TURBO_16K_0613 = :"gpt-3.5-turbo-16k-0613" + + # @!endgroup + variant String - # ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. - variant enum: -> { OpenAI::Models::Beta::AssistantUpdateParams::Model::AssistantSupportedModels } + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::O3_MINI - # @abstract - # - # ID of the model to use. You can use the - # [List models](https://platform.openai.com/docs/api-reference/models/list) API to - # see all of your available models, or see our - # [Model overview](https://platform.openai.com/docs/models) for descriptions of - # them. - class AssistantSupportedModels < OpenAI::Enum - O3_MINI = :"o3-mini" - O3_MINI_2025_01_31 = :"o3-mini-2025-01-31" - O1 = :o1 - O1_2024_12_17 = :"o1-2024-12-17" - GPT_4O = :"gpt-4o" - GPT_4O_2024_11_20 = :"gpt-4o-2024-11-20" - GPT_4O_2024_08_06 = :"gpt-4o-2024-08-06" - GPT_4O_2024_05_13 = :"gpt-4o-2024-05-13" - GPT_4O_MINI = :"gpt-4o-mini" - GPT_4O_MINI_2024_07_18 = :"gpt-4o-mini-2024-07-18" - GPT_4_5_PREVIEW = :"gpt-4.5-preview" - GPT_4_5_PREVIEW_2025_02_27 = :"gpt-4.5-preview-2025-02-27" - GPT_4_TURBO = :"gpt-4-turbo" - GPT_4_TURBO_2024_04_09 = :"gpt-4-turbo-2024-04-09" - GPT_4_0125_PREVIEW = :"gpt-4-0125-preview" - GPT_4_TURBO_PREVIEW = :"gpt-4-turbo-preview" - GPT_4_1106_PREVIEW = :"gpt-4-1106-preview" - GPT_4_VISION_PREVIEW = :"gpt-4-vision-preview" - GPT_4 = :"gpt-4" - GPT_4_0314 = :"gpt-4-0314" - GPT_4_0613 = :"gpt-4-0613" - GPT_4_32K = :"gpt-4-32k" - GPT_4_32K_0314 = :"gpt-4-32k-0314" - GPT_4_32K_0613 = :"gpt-4-32k-0613" - GPT_3_5_TURBO = :"gpt-3.5-turbo" - GPT_3_5_TURBO_16K = :"gpt-3.5-turbo-16k" - GPT_3_5_TURBO_0613 = :"gpt-3.5-turbo-0613" - GPT_3_5_TURBO_1106 = :"gpt-3.5-turbo-1106" - GPT_3_5_TURBO_0125 = :"gpt-3.5-turbo-0125" - GPT_3_5_TURBO_16K_0613 = :"gpt-3.5-turbo-16k-0613" - - finalize! - end + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::O3_MINI_2025_01_31 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::O1 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::O1_2024_12_17 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4O + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4O_2024_11_20 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4O_2024_08_06 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4O_2024_05_13 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4O_MINI + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4O_MINI_2024_07_18 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_5_PREVIEW + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_5_PREVIEW_2025_02_27 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_TURBO + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_TURBO_2024_04_09 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_0125_PREVIEW + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_TURBO_PREVIEW + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_1106_PREVIEW + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_VISION_PREVIEW + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_0314 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_0613 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_32K + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_32K_0314 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_32K_0613 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_3_5_TURBO + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_3_5_TURBO_16K + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_3_5_TURBO_0613 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_3_5_TURBO_1106 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_3_5_TURBO_0125 + + variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_3_5_TURBO_16K_0613 # @!parse # class << self - # # @return [Array(String, Symbol, OpenAI::Models::Beta::AssistantUpdateParams::Model::AssistantSupportedModels)] + # # @return [Array(String, Symbol)] # def variants; end # end end diff --git a/lib/openai/models/completion_create_params.rb b/lib/openai/models/completion_create_params.rb index a65b7051..c1c44876 100644 --- a/lib/openai/models/completion_create_params.rb +++ b/lib/openai/models/completion_create_params.rb @@ -14,7 +14,7 @@ class CompletionCreateParams < OpenAI::BaseModel # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. # - # @return [String, Symbol, OpenAI::Models::CompletionCreateParams::Model::Preset] + # @return [String, Symbol] required :model, union: -> { OpenAI::Models::CompletionCreateParams::Model } # @!attribute prompt @@ -183,7 +183,7 @@ class CompletionCreateParams < OpenAI::BaseModel # attr_writer :user # @!parse - # # @param model [String, Symbol, OpenAI::Models::CompletionCreateParams::Model::Preset] + # # @param model [String, Symbol] # # @param prompt [String, Array, Array, Array>, nil] # # @param best_of [Integer, nil] # # @param echo [Boolean, nil] @@ -236,29 +236,25 @@ class CompletionCreateParams < OpenAI::BaseModel # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. class Model < OpenAI::Union + # @!group + + GPT_3_5_TURBO_INSTRUCT = :"gpt-3.5-turbo-instruct" + DAVINCI_002 = :"davinci-002" + BABBAGE_002 = :"babbage-002" + + # @!endgroup + variant String - # ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. - variant enum: -> { OpenAI::Models::CompletionCreateParams::Model::Preset } + variant const: OpenAI::Models::CompletionCreateParams::Model::GPT_3_5_TURBO_INSTRUCT - # @abstract - # - # ID of the model to use. You can use the - # [List models](https://platform.openai.com/docs/api-reference/models/list) API to - # see all of your available models, or see our - # [Model overview](https://platform.openai.com/docs/models) for descriptions of - # them. - class Preset < OpenAI::Enum - GPT_3_5_TURBO_INSTRUCT = :"gpt-3.5-turbo-instruct" - DAVINCI_002 = :"davinci-002" - BABBAGE_002 = :"babbage-002" + variant const: OpenAI::Models::CompletionCreateParams::Model::DAVINCI_002 - finalize! - end + variant const: OpenAI::Models::CompletionCreateParams::Model::BABBAGE_002 # @!parse # class << self - # # @return [Array(String, Symbol, OpenAI::Models::CompletionCreateParams::Model::Preset)] + # # @return [Array(String, Symbol)] # def variants; end # end end diff --git a/lib/openai/models/fine_tuning/job_create_params.rb b/lib/openai/models/fine_tuning/job_create_params.rb index db4866c1..6900ac01 100644 --- a/lib/openai/models/fine_tuning/job_create_params.rb +++ b/lib/openai/models/fine_tuning/job_create_params.rb @@ -12,7 +12,7 @@ class JobCreateParams < OpenAI::BaseModel # The name of the model to fine-tune. You can select one of the # [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned). # - # @return [String, Symbol, OpenAI::Models::FineTuning::JobCreateParams::Model::Preset] + # @return [String, Symbol] required :model, union: -> { OpenAI::Models::FineTuning::JobCreateParams::Model } # @!attribute training_file @@ -113,7 +113,7 @@ class JobCreateParams < OpenAI::BaseModel optional :validation_file, String, nil?: true # @!parse - # # @param model [String, Symbol, OpenAI::Models::FineTuning::JobCreateParams::Model::Preset] + # # @param model [String, Symbol] # # @param training_file [String] # # @param hyperparameters [OpenAI::Models::FineTuning::JobCreateParams::Hyperparameters] # # @param integrations [Array, nil] @@ -147,28 +147,28 @@ class JobCreateParams < OpenAI::BaseModel # The name of the model to fine-tune. You can select one of the # [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned). class Model < OpenAI::Union + # @!group + + BABBAGE_002 = :"babbage-002" + DAVINCI_002 = :"davinci-002" + GPT_3_5_TURBO = :"gpt-3.5-turbo" + GPT_4O_MINI = :"gpt-4o-mini" + + # @!endgroup + variant String - # The name of the model to fine-tune. You can select one of the - # [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned). - variant enum: -> { OpenAI::Models::FineTuning::JobCreateParams::Model::Preset } + variant const: OpenAI::Models::FineTuning::JobCreateParams::Model::BABBAGE_002 - # @abstract - # - # The name of the model to fine-tune. You can select one of the - # [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned). - class Preset < OpenAI::Enum - BABBAGE_002 = :"babbage-002" - DAVINCI_002 = :"davinci-002" - GPT_3_5_TURBO = :"gpt-3.5-turbo" - GPT_4O_MINI = :"gpt-4o-mini" + variant const: OpenAI::Models::FineTuning::JobCreateParams::Model::DAVINCI_002 - finalize! - end + variant const: OpenAI::Models::FineTuning::JobCreateParams::Model::GPT_3_5_TURBO + + variant const: OpenAI::Models::FineTuning::JobCreateParams::Model::GPT_4O_MINI # @!parse # class << self - # # @return [Array(String, Symbol, OpenAI::Models::FineTuning::JobCreateParams::Model::Preset)] + # # @return [Array(String, Symbol)] # def variants; end # end end diff --git a/lib/openai/resources/beta/assistants.rb b/lib/openai/resources/beta/assistants.rb index 5911fe3f..8fbb01b9 100644 --- a/lib/openai/resources/beta/assistants.rb +++ b/lib/openai/resources/beta/assistants.rb @@ -125,7 +125,7 @@ def retrieve(assistant_id, params = {}) # Keys are strings with a maximum length of 64 characters. Values are strings with # a maximum length of 512 characters. # - # @option params [String, Symbol, OpenAI::Models::Beta::AssistantUpdateParams::Model::AssistantSupportedModels] :model ID of the model to use. You can use the + # @option params [String, Symbol] :model ID of the model to use. You can use the # [List models](https://platform.openai.com/docs/api-reference/models/list) API to # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of diff --git a/lib/openai/resources/completions.rb b/lib/openai/resources/completions.rb index a16f4bcf..79cc6805 100644 --- a/lib/openai/resources/completions.rb +++ b/lib/openai/resources/completions.rb @@ -7,7 +7,7 @@ class Completions # # @param params [OpenAI::Models::CompletionCreateParams, Hash{Symbol=>Object}] . # - # @option params [String, Symbol, OpenAI::Models::CompletionCreateParams::Model::Preset] :model ID of the model to use. You can use the + # @option params [String, Symbol] :model ID of the model to use. You can use the # [List models](https://platform.openai.com/docs/api-reference/models/list) API to # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of @@ -129,7 +129,7 @@ def create(params) # # @param params [OpenAI::Models::CompletionCreateParams, Hash{Symbol=>Object}] . # - # @option params [String, Symbol, OpenAI::Models::CompletionCreateParams::Model::Preset] :model ID of the model to use. You can use the + # @option params [String, Symbol] :model ID of the model to use. You can use the # [List models](https://platform.openai.com/docs/api-reference/models/list) API to # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of diff --git a/lib/openai/resources/fine_tuning/jobs.rb b/lib/openai/resources/fine_tuning/jobs.rb index 177d978b..9d00777f 100644 --- a/lib/openai/resources/fine_tuning/jobs.rb +++ b/lib/openai/resources/fine_tuning/jobs.rb @@ -17,7 +17,7 @@ class Jobs # # @param params [OpenAI::Models::FineTuning::JobCreateParams, Hash{Symbol=>Object}] . # - # @option params [String, Symbol, OpenAI::Models::FineTuning::JobCreateParams::Model::Preset] :model The name of the model to fine-tune. You can select one of the + # @option params [String, Symbol] :model The name of the model to fine-tune. You can select one of the # [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned). # # @option params [String] :training_file The ID of an uploaded file that contains training data. diff --git a/rbi/lib/openai/models/beta/assistant_update_params.rbi b/rbi/lib/openai/models/beta/assistant_update_params.rbi index 44b8293f..e05cff62 100644 --- a/rbi/lib/openai/models/beta/assistant_update_params.rbi +++ b/rbi/lib/openai/models/beta/assistant_update_params.rbi @@ -307,48 +307,6 @@ module OpenAI abstract! Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } - - # ID of the model to use. You can use the - # [List models](https://platform.openai.com/docs/api-reference/models/list) API to - # see all of your available models, or see our - # [Model overview](https://platform.openai.com/docs/models) for descriptions of - # them. - class AssistantSupportedModels < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - O3_MINI = :"o3-mini" - O3_MINI_2025_01_31 = :"o3-mini-2025-01-31" - O1 = :o1 - O1_2024_12_17 = :"o1-2024-12-17" - GPT_4O = :"gpt-4o" - GPT_4O_2024_11_20 = :"gpt-4o-2024-11-20" - GPT_4O_2024_08_06 = :"gpt-4o-2024-08-06" - GPT_4O_2024_05_13 = :"gpt-4o-2024-05-13" - GPT_4O_MINI = :"gpt-4o-mini" - GPT_4O_MINI_2024_07_18 = :"gpt-4o-mini-2024-07-18" - GPT_4_5_PREVIEW = :"gpt-4.5-preview" - GPT_4_5_PREVIEW_2025_02_27 = :"gpt-4.5-preview-2025-02-27" - GPT_4_TURBO = :"gpt-4-turbo" - GPT_4_TURBO_2024_04_09 = :"gpt-4-turbo-2024-04-09" - GPT_4_0125_PREVIEW = :"gpt-4-0125-preview" - GPT_4_TURBO_PREVIEW = :"gpt-4-turbo-preview" - GPT_4_1106_PREVIEW = :"gpt-4-1106-preview" - GPT_4_VISION_PREVIEW = :"gpt-4-vision-preview" - GPT_4 = :"gpt-4" - GPT_4_0314 = :"gpt-4-0314" - GPT_4_0613 = :"gpt-4-0613" - GPT_4_32K = :"gpt-4-32k" - GPT_4_32K_0314 = :"gpt-4-32k-0314" - GPT_4_32K_0613 = :"gpt-4-32k-0613" - GPT_3_5_TURBO = :"gpt-3.5-turbo" - GPT_3_5_TURBO_16K = :"gpt-3.5-turbo-16k" - GPT_3_5_TURBO_0613 = :"gpt-3.5-turbo-0613" - GPT_3_5_TURBO_1106 = :"gpt-3.5-turbo-1106" - GPT_3_5_TURBO_0125 = :"gpt-3.5-turbo-0125" - GPT_3_5_TURBO_16K_0613 = :"gpt-3.5-turbo-16k-0613" - end end class ToolResources < OpenAI::BaseModel diff --git a/rbi/lib/openai/models/completion_create_params.rbi b/rbi/lib/openai/models/completion_create_params.rbi index f2ca35dd..2e1185c5 100644 --- a/rbi/lib/openai/models/completion_create_params.rbi +++ b/rbi/lib/openai/models/completion_create_params.rbi @@ -341,21 +341,6 @@ module OpenAI abstract! Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } - - # ID of the model to use. You can use the - # [List models](https://platform.openai.com/docs/api-reference/models/list) API to - # see all of your available models, or see our - # [Model overview](https://platform.openai.com/docs/models) for descriptions of - # them. - class Preset < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - GPT_3_5_TURBO_INSTRUCT = :"gpt-3.5-turbo-instruct" - DAVINCI_002 = :"davinci-002" - BABBAGE_002 = :"babbage-002" - end end # The prompt(s) to generate completions for, encoded as a string, array of diff --git a/rbi/lib/openai/models/fine_tuning/job_create_params.rbi b/rbi/lib/openai/models/fine_tuning/job_create_params.rbi index 1af7bd79..224616d6 100644 --- a/rbi/lib/openai/models/fine_tuning/job_create_params.rbi +++ b/rbi/lib/openai/models/fine_tuning/job_create_params.rbi @@ -192,19 +192,6 @@ module OpenAI abstract! Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } - - # The name of the model to fine-tune. You can select one of the - # [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned). - class Preset < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - BABBAGE_002 = :"babbage-002" - DAVINCI_002 = :"davinci-002" - GPT_3_5_TURBO = :"gpt-3.5-turbo" - GPT_4O_MINI = :"gpt-4o-mini" - end end class Hyperparameters < OpenAI::BaseModel diff --git a/sig/openai/models/beta/assistant_update_params.rbs b/sig/openai/models/beta/assistant_update_params.rbs index f2f849d4..39a0d8e2 100644 --- a/sig/openai/models/beta/assistant_update_params.rbs +++ b/sig/openai/models/beta/assistant_update_params.rbs @@ -75,77 +75,68 @@ module OpenAI type model = String - | OpenAI::Models::Beta::AssistantUpdateParams::Model::assistant_supported_models + | :"o3-mini" + | :"o3-mini-2025-01-31" + | :o1 + | :"o1-2024-12-17" + | :"gpt-4o" + | :"gpt-4o-2024-11-20" + | :"gpt-4o-2024-08-06" + | :"gpt-4o-2024-05-13" + | :"gpt-4o-mini" + | :"gpt-4o-mini-2024-07-18" + | :"gpt-4.5-preview" + | :"gpt-4.5-preview-2025-02-27" + | :"gpt-4-turbo" + | :"gpt-4-turbo-2024-04-09" + | :"gpt-4-0125-preview" + | :"gpt-4-turbo-preview" + | :"gpt-4-1106-preview" + | :"gpt-4-vision-preview" + | :"gpt-4" + | :"gpt-4-0314" + | :"gpt-4-0613" + | :"gpt-4-32k" + | :"gpt-4-32k-0314" + | :"gpt-4-32k-0613" + | :"gpt-3.5-turbo" + | :"gpt-3.5-turbo-16k" + | :"gpt-3.5-turbo-0613" + | :"gpt-3.5-turbo-1106" + | :"gpt-3.5-turbo-0125" + | :"gpt-3.5-turbo-16k-0613" class Model < OpenAI::Union - type assistant_supported_models = - :"o3-mini" - | :"o3-mini-2025-01-31" - | :o1 - | :"o1-2024-12-17" - | :"gpt-4o" - | :"gpt-4o-2024-11-20" - | :"gpt-4o-2024-08-06" - | :"gpt-4o-2024-05-13" - | :"gpt-4o-mini" - | :"gpt-4o-mini-2024-07-18" - | :"gpt-4.5-preview" - | :"gpt-4.5-preview-2025-02-27" - | :"gpt-4-turbo" - | :"gpt-4-turbo-2024-04-09" - | :"gpt-4-0125-preview" - | :"gpt-4-turbo-preview" - | :"gpt-4-1106-preview" - | :"gpt-4-vision-preview" - | :"gpt-4" - | :"gpt-4-0314" - | :"gpt-4-0613" - | :"gpt-4-32k" - | :"gpt-4-32k-0314" - | :"gpt-4-32k-0613" - | :"gpt-3.5-turbo" - | :"gpt-3.5-turbo-16k" - | :"gpt-3.5-turbo-0613" - | :"gpt-3.5-turbo-1106" - | :"gpt-3.5-turbo-0125" - | :"gpt-3.5-turbo-16k-0613" - - class AssistantSupportedModels < OpenAI::Enum - O3_MINI: :"o3-mini" - O3_MINI_2025_01_31: :"o3-mini-2025-01-31" - O1: :o1 - O1_2024_12_17: :"o1-2024-12-17" - GPT_4O: :"gpt-4o" - GPT_4O_2024_11_20: :"gpt-4o-2024-11-20" - GPT_4O_2024_08_06: :"gpt-4o-2024-08-06" - GPT_4O_2024_05_13: :"gpt-4o-2024-05-13" - GPT_4O_MINI: :"gpt-4o-mini" - GPT_4O_MINI_2024_07_18: :"gpt-4o-mini-2024-07-18" - GPT_4_5_PREVIEW: :"gpt-4.5-preview" - GPT_4_5_PREVIEW_2025_02_27: :"gpt-4.5-preview-2025-02-27" - GPT_4_TURBO: :"gpt-4-turbo" - GPT_4_TURBO_2024_04_09: :"gpt-4-turbo-2024-04-09" - GPT_4_0125_PREVIEW: :"gpt-4-0125-preview" - GPT_4_TURBO_PREVIEW: :"gpt-4-turbo-preview" - GPT_4_1106_PREVIEW: :"gpt-4-1106-preview" - GPT_4_VISION_PREVIEW: :"gpt-4-vision-preview" - GPT_4: :"gpt-4" - GPT_4_0314: :"gpt-4-0314" - GPT_4_0613: :"gpt-4-0613" - GPT_4_32K: :"gpt-4-32k" - GPT_4_32K_0314: :"gpt-4-32k-0314" - GPT_4_32K_0613: :"gpt-4-32k-0613" - GPT_3_5_TURBO: :"gpt-3.5-turbo" - GPT_3_5_TURBO_16K: :"gpt-3.5-turbo-16k" - GPT_3_5_TURBO_0613: :"gpt-3.5-turbo-0613" - GPT_3_5_TURBO_1106: :"gpt-3.5-turbo-1106" - GPT_3_5_TURBO_0125: :"gpt-3.5-turbo-0125" - GPT_3_5_TURBO_16K_0613: :"gpt-3.5-turbo-16k-0613" - - def self.values: -> ::Array[OpenAI::Models::Beta::AssistantUpdateParams::Model::assistant_supported_models] - end - - def self.variants: -> [String, OpenAI::Models::Beta::AssistantUpdateParams::Model::assistant_supported_models] + def self.variants: -> [String, (:"o3-mini" + | :"o3-mini-2025-01-31" + | :o1 + | :"o1-2024-12-17" + | :"gpt-4o" + | :"gpt-4o-2024-11-20" + | :"gpt-4o-2024-08-06" + | :"gpt-4o-2024-05-13" + | :"gpt-4o-mini" + | :"gpt-4o-mini-2024-07-18" + | :"gpt-4.5-preview" + | :"gpt-4.5-preview-2025-02-27" + | :"gpt-4-turbo" + | :"gpt-4-turbo-2024-04-09" + | :"gpt-4-0125-preview" + | :"gpt-4-turbo-preview" + | :"gpt-4-1106-preview" + | :"gpt-4-vision-preview" + | :"gpt-4" + | :"gpt-4-0314" + | :"gpt-4-0613" + | :"gpt-4-32k" + | :"gpt-4-32k-0314" + | :"gpt-4-32k-0613" + | :"gpt-3.5-turbo" + | :"gpt-3.5-turbo-16k" + | :"gpt-3.5-turbo-0613" + | :"gpt-3.5-turbo-1106" + | :"gpt-3.5-turbo-0125" + | :"gpt-3.5-turbo-16k-0613")] end type tool_resources = diff --git a/sig/openai/models/completion_create_params.rbs b/sig/openai/models/completion_create_params.rbs index 6f496b04..131c7bd7 100644 --- a/sig/openai/models/completion_create_params.rbs +++ b/sig/openai/models/completion_create_params.rbs @@ -90,21 +90,12 @@ module OpenAI def to_hash: -> OpenAI::Models::completion_create_params type model = - String | OpenAI::Models::CompletionCreateParams::Model::preset + String | :"gpt-3.5-turbo-instruct" | :"davinci-002" | :"babbage-002" class Model < OpenAI::Union - type preset = - :"gpt-3.5-turbo-instruct" | :"davinci-002" | :"babbage-002" - - class Preset < OpenAI::Enum - GPT_3_5_TURBO_INSTRUCT: :"gpt-3.5-turbo-instruct" - DAVINCI_002: :"davinci-002" - BABBAGE_002: :"babbage-002" - - def self.values: -> ::Array[OpenAI::Models::CompletionCreateParams::Model::preset] - end - - def self.variants: -> [String, OpenAI::Models::CompletionCreateParams::Model::preset] + def self.variants: -> [String, (:"gpt-3.5-turbo-instruct" + | :"davinci-002" + | :"babbage-002")] end type prompt = diff --git a/sig/openai/models/fine_tuning/job_create_params.rbs b/sig/openai/models/fine_tuning/job_create_params.rbs index e5712ef5..468dee15 100644 --- a/sig/openai/models/fine_tuning/job_create_params.rbs +++ b/sig/openai/models/fine_tuning/job_create_params.rbs @@ -66,22 +66,17 @@ module OpenAI def to_hash: -> OpenAI::Models::FineTuning::job_create_params type model = - String | OpenAI::Models::FineTuning::JobCreateParams::Model::preset + String + | :"babbage-002" + | :"davinci-002" + | :"gpt-3.5-turbo" + | :"gpt-4o-mini" class Model < OpenAI::Union - type preset = - :"babbage-002" | :"davinci-002" | :"gpt-3.5-turbo" | :"gpt-4o-mini" - - class Preset < OpenAI::Enum - BABBAGE_002: :"babbage-002" - DAVINCI_002: :"davinci-002" - GPT_3_5_TURBO: :"gpt-3.5-turbo" - GPT_4O_MINI: :"gpt-4o-mini" - - def self.values: -> ::Array[OpenAI::Models::FineTuning::JobCreateParams::Model::preset] - end - - def self.variants: -> [String, OpenAI::Models::FineTuning::JobCreateParams::Model::preset] + def self.variants: -> [String, (:"babbage-002" + | :"davinci-002" + | :"gpt-3.5-turbo" + | :"gpt-4o-mini")] end type hyperparameters = diff --git a/test/openai/client_test.rb b/test/openai/client_test.rb index 7d0758fa..9a3f400f 100644 --- a/test/openai/client_test.rb +++ b/test/openai/client_test.rb @@ -58,7 +58,7 @@ def test_client_default_request_default_retry_attempts assert_raises(OpenAI::InternalServerError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true ) end @@ -74,7 +74,7 @@ def test_client_given_request_default_retry_attempts assert_raises(OpenAI::InternalServerError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true ) end @@ -90,7 +90,7 @@ def test_client_default_request_given_retry_attempts assert_raises(OpenAI::InternalServerError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true, request_options: {max_retries: 3} ) @@ -107,7 +107,7 @@ def test_client_given_request_given_retry_attempts assert_raises(OpenAI::InternalServerError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true, request_options: {max_retries: 4} ) @@ -124,7 +124,7 @@ def test_client_retry_after_seconds assert_raises(OpenAI::InternalServerError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true ) end @@ -142,7 +142,7 @@ def test_client_retry_after_date Thread.current.thread_variable_set(:time_now, Time.now) openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true ) Thread.current.thread_variable_set(:time_now, nil) @@ -160,7 +160,7 @@ def test_client_retry_after_ms assert_raises(OpenAI::InternalServerError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true ) end @@ -177,7 +177,7 @@ def test_retry_count_header assert_raises(OpenAI::InternalServerError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true ) end @@ -194,7 +194,7 @@ def test_omit_retry_count_header assert_raises(OpenAI::InternalServerError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true, request_options: {extra_headers: {"x-stainless-retry-count" => nil}} ) @@ -212,7 +212,7 @@ def test_overwrite_retry_count_header assert_raises(OpenAI::InternalServerError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true, request_options: {extra_headers: {"x-stainless-retry-count" => "42"}} ) @@ -230,7 +230,7 @@ def test_client_redirect_307 assert_raises(OpenAI::APIConnectionError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true, request_options: {extra_headers: {}} ) @@ -253,7 +253,7 @@ def test_client_redirect_303 assert_raises(OpenAI::APIConnectionError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true, request_options: {extra_headers: {}} ) @@ -273,7 +273,7 @@ def test_client_redirect_auth_keep_same_origin assert_raises(OpenAI::APIConnectionError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true, request_options: {extra_headers: {"Authorization" => "Bearer xyz"}} ) @@ -293,7 +293,7 @@ def test_client_redirect_auth_strip_cross_origin assert_raises(OpenAI::APIConnectionError) do openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true, request_options: {extra_headers: {"Authorization" => "Bearer xyz"}} ) @@ -308,7 +308,7 @@ def test_default_headers openai.requester = requester openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true ) headers = requester.attempts.first[:headers] diff --git a/test/openai/resources/audio/speech_test.rb b/test/openai/resources/audio/speech_test.rb index e2d6de20..9718aa1a 100644 --- a/test/openai/resources/audio/speech_test.rb +++ b/test/openai/resources/audio/speech_test.rb @@ -4,7 +4,7 @@ class OpenAI::Test::Resources::Audio::SpeechTest < OpenAI::Test::ResourceTest def test_create_required_params - response = @openai.audio.speech.create(input: "input", model: "string", voice: :alloy) + response = @openai.audio.speech.create(input: "input", model: :"tts-1", voice: :alloy) assert_pattern do response => OpenAI::Unknown diff --git a/test/openai/resources/beta/assistants_test.rb b/test/openai/resources/beta/assistants_test.rb index 175fb0d5..e0ffb63a 100644 --- a/test/openai/resources/beta/assistants_test.rb +++ b/test/openai/resources/beta/assistants_test.rb @@ -4,7 +4,7 @@ class OpenAI::Test::Resources::Beta::AssistantsTest < OpenAI::Test::ResourceTest def test_create_required_params - response = @openai.beta.assistants.create(model: :"gpt-4o") + response = @openai.beta.assistants.create(model: :"o3-mini") assert_pattern do response => OpenAI::Models::Beta::Assistant diff --git a/test/openai/resources/chat/completions_test.rb b/test/openai/resources/chat/completions_test.rb index c45ef70f..4b353ac2 100644 --- a/test/openai/resources/chat/completions_test.rb +++ b/test/openai/resources/chat/completions_test.rb @@ -6,7 +6,7 @@ class OpenAI::Test::Resources::Chat::CompletionsTest < OpenAI::Test::ResourceTes def test_create_required_params response = @openai.chat.completions.create( messages: [{content: "string", role: :developer}], - model: :"gpt-4o", + model: :"o3-mini", stream: true ) diff --git a/test/openai/resources/completions_test.rb b/test/openai/resources/completions_test.rb index 0ff1c63c..6fb99107 100644 --- a/test/openai/resources/completions_test.rb +++ b/test/openai/resources/completions_test.rb @@ -4,7 +4,11 @@ class OpenAI::Test::Resources::CompletionsTest < OpenAI::Test::ResourceTest def test_create_required_params - response = @openai.completions.create(model: "string", prompt: "This is a test.", stream: true) + response = @openai.completions.create( + model: :"gpt-3.5-turbo-instruct", + prompt: "This is a test.", + stream: true + ) assert_pattern do response => OpenAI::Models::Completion diff --git a/test/openai/resources/embeddings_test.rb b/test/openai/resources/embeddings_test.rb index 59218d06..244d5817 100644 --- a/test/openai/resources/embeddings_test.rb +++ b/test/openai/resources/embeddings_test.rb @@ -6,7 +6,7 @@ class OpenAI::Test::Resources::EmbeddingsTest < OpenAI::Test::ResourceTest def test_create_required_params response = @openai.embeddings.create( input: "The quick brown fox jumped over the lazy dog", - model: :"text-embedding-3-small" + model: :"text-embedding-ada-002" ) assert_pattern do diff --git a/test/openai/resources/fine_tuning/jobs_test.rb b/test/openai/resources/fine_tuning/jobs_test.rb index c085d073..2b35089a 100644 --- a/test/openai/resources/fine_tuning/jobs_test.rb +++ b/test/openai/resources/fine_tuning/jobs_test.rb @@ -4,7 +4,7 @@ class OpenAI::Test::Resources::FineTuning::JobsTest < OpenAI::Test::ResourceTest def test_create_required_params - response = @openai.fine_tuning.jobs.create(model: :"gpt-4o-mini", training_file: "file-abc123") + response = @openai.fine_tuning.jobs.create(model: :"babbage-002", training_file: "file-abc123") assert_pattern do response => OpenAI::Models::FineTuning::FineTuningJob diff --git a/test/openai/resources/responses_test.rb b/test/openai/resources/responses_test.rb index bd1bcaf3..6ecd70a3 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: :"gpt-4o", stream: true) + response = @openai.responses.create(input: "string", model: :"o3-mini", stream: true) assert_pattern do response => OpenAI::Models::Responses::Response