Skip to content

Commit 2eab4c7

Browse files
fix: enums should not unnecessarily convert non-members to symbol type (#23)
1 parent 02c3b7d commit 2eab4c7

File tree

20 files changed

+231
-274
lines changed

20 files changed

+231
-274
lines changed

lib/openai/models/beta/assistant_update_params.rb

Lines changed: 97 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ class AssistantUpdateParams < OpenAI::BaseModel
3939
# [Model overview](https://platform.openai.com/docs/models) for descriptions of
4040
# them.
4141
#
42-
# @return [String, Symbol, OpenAI::Models::Beta::AssistantUpdateParams::Model::AssistantSupportedModels, nil]
42+
# @return [String, Symbol, nil]
4343
optional :model, union: -> { OpenAI::Models::Beta::AssistantUpdateParams::Model }
4444

4545
# @!parse
46-
# # @return [String, Symbol, OpenAI::Models::Beta::AssistantUpdateParams::Model::AssistantSupportedModels]
46+
# # @return [String, Symbol]
4747
# attr_writer :model
4848

4949
# @!attribute name
@@ -131,7 +131,7 @@ class AssistantUpdateParams < OpenAI::BaseModel
131131
# # @param description [String, nil]
132132
# # @param instructions [String, nil]
133133
# # @param metadata [Hash{Symbol=>String}, nil]
134-
# # @param model [String, Symbol, OpenAI::Models::Beta::AssistantUpdateParams::Model::AssistantSupportedModels]
134+
# # @param model [String, Symbol]
135135
# # @param name [String, nil]
136136
# # @param reasoning_effort [Symbol, OpenAI::Models::ReasoningEffort, nil]
137137
# # @param response_format [Symbol, :auto, OpenAI::Models::ResponseFormatText, OpenAI::Models::ResponseFormatJSONObject, OpenAI::Models::ResponseFormatJSONSchema, nil]
@@ -169,56 +169,106 @@ class AssistantUpdateParams < OpenAI::BaseModel
169169
# [Model overview](https://platform.openai.com/docs/models) for descriptions of
170170
# them.
171171
class Model < OpenAI::Union
172+
# @!group
173+
174+
O3_MINI = :"o3-mini"
175+
O3_MINI_2025_01_31 = :"o3-mini-2025-01-31"
176+
O1 = :o1
177+
O1_2024_12_17 = :"o1-2024-12-17"
178+
GPT_4O = :"gpt-4o"
179+
GPT_4O_2024_11_20 = :"gpt-4o-2024-11-20"
180+
GPT_4O_2024_08_06 = :"gpt-4o-2024-08-06"
181+
GPT_4O_2024_05_13 = :"gpt-4o-2024-05-13"
182+
GPT_4O_MINI = :"gpt-4o-mini"
183+
GPT_4O_MINI_2024_07_18 = :"gpt-4o-mini-2024-07-18"
184+
GPT_4_5_PREVIEW = :"gpt-4.5-preview"
185+
GPT_4_5_PREVIEW_2025_02_27 = :"gpt-4.5-preview-2025-02-27"
186+
GPT_4_TURBO = :"gpt-4-turbo"
187+
GPT_4_TURBO_2024_04_09 = :"gpt-4-turbo-2024-04-09"
188+
GPT_4_0125_PREVIEW = :"gpt-4-0125-preview"
189+
GPT_4_TURBO_PREVIEW = :"gpt-4-turbo-preview"
190+
GPT_4_1106_PREVIEW = :"gpt-4-1106-preview"
191+
GPT_4_VISION_PREVIEW = :"gpt-4-vision-preview"
192+
GPT_4 = :"gpt-4"
193+
GPT_4_0314 = :"gpt-4-0314"
194+
GPT_4_0613 = :"gpt-4-0613"
195+
GPT_4_32K = :"gpt-4-32k"
196+
GPT_4_32K_0314 = :"gpt-4-32k-0314"
197+
GPT_4_32K_0613 = :"gpt-4-32k-0613"
198+
GPT_3_5_TURBO = :"gpt-3.5-turbo"
199+
GPT_3_5_TURBO_16K = :"gpt-3.5-turbo-16k"
200+
GPT_3_5_TURBO_0613 = :"gpt-3.5-turbo-0613"
201+
GPT_3_5_TURBO_1106 = :"gpt-3.5-turbo-1106"
202+
GPT_3_5_TURBO_0125 = :"gpt-3.5-turbo-0125"
203+
GPT_3_5_TURBO_16K_0613 = :"gpt-3.5-turbo-16k-0613"
204+
205+
# @!endgroup
206+
172207
variant String
173208

174-
# 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.
175-
variant enum: -> { OpenAI::Models::Beta::AssistantUpdateParams::Model::AssistantSupportedModels }
209+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::O3_MINI
176210

177-
# @abstract
178-
#
179-
# ID of the model to use. You can use the
180-
# [List models](https://platform.openai.com/docs/api-reference/models/list) API to
181-
# see all of your available models, or see our
182-
# [Model overview](https://platform.openai.com/docs/models) for descriptions of
183-
# them.
184-
class AssistantSupportedModels < OpenAI::Enum
185-
O3_MINI = :"o3-mini"
186-
O3_MINI_2025_01_31 = :"o3-mini-2025-01-31"
187-
O1 = :o1
188-
O1_2024_12_17 = :"o1-2024-12-17"
189-
GPT_4O = :"gpt-4o"
190-
GPT_4O_2024_11_20 = :"gpt-4o-2024-11-20"
191-
GPT_4O_2024_08_06 = :"gpt-4o-2024-08-06"
192-
GPT_4O_2024_05_13 = :"gpt-4o-2024-05-13"
193-
GPT_4O_MINI = :"gpt-4o-mini"
194-
GPT_4O_MINI_2024_07_18 = :"gpt-4o-mini-2024-07-18"
195-
GPT_4_5_PREVIEW = :"gpt-4.5-preview"
196-
GPT_4_5_PREVIEW_2025_02_27 = :"gpt-4.5-preview-2025-02-27"
197-
GPT_4_TURBO = :"gpt-4-turbo"
198-
GPT_4_TURBO_2024_04_09 = :"gpt-4-turbo-2024-04-09"
199-
GPT_4_0125_PREVIEW = :"gpt-4-0125-preview"
200-
GPT_4_TURBO_PREVIEW = :"gpt-4-turbo-preview"
201-
GPT_4_1106_PREVIEW = :"gpt-4-1106-preview"
202-
GPT_4_VISION_PREVIEW = :"gpt-4-vision-preview"
203-
GPT_4 = :"gpt-4"
204-
GPT_4_0314 = :"gpt-4-0314"
205-
GPT_4_0613 = :"gpt-4-0613"
206-
GPT_4_32K = :"gpt-4-32k"
207-
GPT_4_32K_0314 = :"gpt-4-32k-0314"
208-
GPT_4_32K_0613 = :"gpt-4-32k-0613"
209-
GPT_3_5_TURBO = :"gpt-3.5-turbo"
210-
GPT_3_5_TURBO_16K = :"gpt-3.5-turbo-16k"
211-
GPT_3_5_TURBO_0613 = :"gpt-3.5-turbo-0613"
212-
GPT_3_5_TURBO_1106 = :"gpt-3.5-turbo-1106"
213-
GPT_3_5_TURBO_0125 = :"gpt-3.5-turbo-0125"
214-
GPT_3_5_TURBO_16K_0613 = :"gpt-3.5-turbo-16k-0613"
215-
216-
finalize!
217-
end
211+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::O3_MINI_2025_01_31
212+
213+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::O1
214+
215+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::O1_2024_12_17
216+
217+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4O
218+
219+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4O_2024_11_20
220+
221+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4O_2024_08_06
222+
223+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4O_2024_05_13
224+
225+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4O_MINI
226+
227+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4O_MINI_2024_07_18
228+
229+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_5_PREVIEW
230+
231+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_5_PREVIEW_2025_02_27
232+
233+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_TURBO
234+
235+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_TURBO_2024_04_09
236+
237+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_0125_PREVIEW
238+
239+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_TURBO_PREVIEW
240+
241+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_1106_PREVIEW
242+
243+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_VISION_PREVIEW
244+
245+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4
246+
247+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_0314
248+
249+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_0613
250+
251+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_32K
252+
253+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_32K_0314
254+
255+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_32K_0613
256+
257+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_3_5_TURBO
258+
259+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_3_5_TURBO_16K
260+
261+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_3_5_TURBO_0613
262+
263+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_3_5_TURBO_1106
264+
265+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_3_5_TURBO_0125
266+
267+
variant const: OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_3_5_TURBO_16K_0613
218268

219269
# @!parse
220270
# class << self
221-
# # @return [Array(String, Symbol, OpenAI::Models::Beta::AssistantUpdateParams::Model::AssistantSupportedModels)]
271+
# # @return [Array(String, Symbol)]
222272
# def variants; end
223273
# end
224274
end

lib/openai/models/completion_create_params.rb

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class CompletionCreateParams < OpenAI::BaseModel
1414
# [Model overview](https://platform.openai.com/docs/models) for descriptions of
1515
# them.
1616
#
17-
# @return [String, Symbol, OpenAI::Models::CompletionCreateParams::Model::Preset]
17+
# @return [String, Symbol]
1818
required :model, union: -> { OpenAI::Models::CompletionCreateParams::Model }
1919

2020
# @!attribute prompt
@@ -183,7 +183,7 @@ class CompletionCreateParams < OpenAI::BaseModel
183183
# attr_writer :user
184184

185185
# @!parse
186-
# # @param model [String, Symbol, OpenAI::Models::CompletionCreateParams::Model::Preset]
186+
# # @param model [String, Symbol]
187187
# # @param prompt [String, Array<String>, Array<Integer>, Array<Array<Integer>>, nil]
188188
# # @param best_of [Integer, nil]
189189
# # @param echo [Boolean, nil]
@@ -236,29 +236,25 @@ class CompletionCreateParams < OpenAI::BaseModel
236236
# [Model overview](https://platform.openai.com/docs/models) for descriptions of
237237
# them.
238238
class Model < OpenAI::Union
239+
# @!group
240+
241+
GPT_3_5_TURBO_INSTRUCT = :"gpt-3.5-turbo-instruct"
242+
DAVINCI_002 = :"davinci-002"
243+
BABBAGE_002 = :"babbage-002"
244+
245+
# @!endgroup
246+
239247
variant String
240248

241-
# 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.
242-
variant enum: -> { OpenAI::Models::CompletionCreateParams::Model::Preset }
249+
variant const: OpenAI::Models::CompletionCreateParams::Model::GPT_3_5_TURBO_INSTRUCT
243250

244-
# @abstract
245-
#
246-
# ID of the model to use. You can use the
247-
# [List models](https://platform.openai.com/docs/api-reference/models/list) API to
248-
# see all of your available models, or see our
249-
# [Model overview](https://platform.openai.com/docs/models) for descriptions of
250-
# them.
251-
class Preset < OpenAI::Enum
252-
GPT_3_5_TURBO_INSTRUCT = :"gpt-3.5-turbo-instruct"
253-
DAVINCI_002 = :"davinci-002"
254-
BABBAGE_002 = :"babbage-002"
251+
variant const: OpenAI::Models::CompletionCreateParams::Model::DAVINCI_002
255252

256-
finalize!
257-
end
253+
variant const: OpenAI::Models::CompletionCreateParams::Model::BABBAGE_002
258254

259255
# @!parse
260256
# class << self
261-
# # @return [Array(String, Symbol, OpenAI::Models::CompletionCreateParams::Model::Preset)]
257+
# # @return [Array(String, Symbol)]
262258
# def variants; end
263259
# end
264260
end

lib/openai/models/fine_tuning/job_create_params.rb

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class JobCreateParams < OpenAI::BaseModel
1212
# The name of the model to fine-tune. You can select one of the
1313
# [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned).
1414
#
15-
# @return [String, Symbol, OpenAI::Models::FineTuning::JobCreateParams::Model::Preset]
15+
# @return [String, Symbol]
1616
required :model, union: -> { OpenAI::Models::FineTuning::JobCreateParams::Model }
1717

1818
# @!attribute training_file
@@ -113,7 +113,7 @@ class JobCreateParams < OpenAI::BaseModel
113113
optional :validation_file, String, nil?: true
114114

115115
# @!parse
116-
# # @param model [String, Symbol, OpenAI::Models::FineTuning::JobCreateParams::Model::Preset]
116+
# # @param model [String, Symbol]
117117
# # @param training_file [String]
118118
# # @param hyperparameters [OpenAI::Models::FineTuning::JobCreateParams::Hyperparameters]
119119
# # @param integrations [Array<OpenAI::Models::FineTuning::JobCreateParams::Integration>, nil]
@@ -147,28 +147,28 @@ class JobCreateParams < OpenAI::BaseModel
147147
# The name of the model to fine-tune. You can select one of the
148148
# [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned).
149149
class Model < OpenAI::Union
150+
# @!group
151+
152+
BABBAGE_002 = :"babbage-002"
153+
DAVINCI_002 = :"davinci-002"
154+
GPT_3_5_TURBO = :"gpt-3.5-turbo"
155+
GPT_4O_MINI = :"gpt-4o-mini"
156+
157+
# @!endgroup
158+
150159
variant String
151160

152-
# The name of the model to fine-tune. You can select one of the
153-
# [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned).
154-
variant enum: -> { OpenAI::Models::FineTuning::JobCreateParams::Model::Preset }
161+
variant const: OpenAI::Models::FineTuning::JobCreateParams::Model::BABBAGE_002
155162

156-
# @abstract
157-
#
158-
# The name of the model to fine-tune. You can select one of the
159-
# [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned).
160-
class Preset < OpenAI::Enum
161-
BABBAGE_002 = :"babbage-002"
162-
DAVINCI_002 = :"davinci-002"
163-
GPT_3_5_TURBO = :"gpt-3.5-turbo"
164-
GPT_4O_MINI = :"gpt-4o-mini"
163+
variant const: OpenAI::Models::FineTuning::JobCreateParams::Model::DAVINCI_002
165164

166-
finalize!
167-
end
165+
variant const: OpenAI::Models::FineTuning::JobCreateParams::Model::GPT_3_5_TURBO
166+
167+
variant const: OpenAI::Models::FineTuning::JobCreateParams::Model::GPT_4O_MINI
168168

169169
# @!parse
170170
# class << self
171-
# # @return [Array(String, Symbol, OpenAI::Models::FineTuning::JobCreateParams::Model::Preset)]
171+
# # @return [Array(String, Symbol)]
172172
# def variants; end
173173
# end
174174
end

lib/openai/resources/beta/assistants.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ def retrieve(assistant_id, params = {})
125125
# Keys are strings with a maximum length of 64 characters. Values are strings with
126126
# a maximum length of 512 characters.
127127
#
128-
# @option params [String, Symbol, OpenAI::Models::Beta::AssistantUpdateParams::Model::AssistantSupportedModels] :model ID of the model to use. You can use the
128+
# @option params [String, Symbol] :model ID of the model to use. You can use the
129129
# [List models](https://platform.openai.com/docs/api-reference/models/list) API to
130130
# see all of your available models, or see our
131131
# [Model overview](https://platform.openai.com/docs/models) for descriptions of

lib/openai/resources/completions.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class Completions
77
#
88
# @param params [OpenAI::Models::CompletionCreateParams, Hash{Symbol=>Object}] .
99
#
10-
# @option params [String, Symbol, OpenAI::Models::CompletionCreateParams::Model::Preset] :model ID of the model to use. You can use the
10+
# @option params [String, Symbol] :model ID of the model to use. You can use the
1111
# [List models](https://platform.openai.com/docs/api-reference/models/list) API to
1212
# see all of your available models, or see our
1313
# [Model overview](https://platform.openai.com/docs/models) for descriptions of
@@ -129,7 +129,7 @@ def create(params)
129129
#
130130
# @param params [OpenAI::Models::CompletionCreateParams, Hash{Symbol=>Object}] .
131131
#
132-
# @option params [String, Symbol, OpenAI::Models::CompletionCreateParams::Model::Preset] :model ID of the model to use. You can use the
132+
# @option params [String, Symbol] :model ID of the model to use. You can use the
133133
# [List models](https://platform.openai.com/docs/api-reference/models/list) API to
134134
# see all of your available models, or see our
135135
# [Model overview](https://platform.openai.com/docs/models) for descriptions of

lib/openai/resources/fine_tuning/jobs.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class Jobs
1717
#
1818
# @param params [OpenAI::Models::FineTuning::JobCreateParams, Hash{Symbol=>Object}] .
1919
#
20-
# @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
20+
# @option params [String, Symbol] :model The name of the model to fine-tune. You can select one of the
2121
# [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned).
2222
#
2323
# @option params [String] :training_file The ID of an uploaded file that contains training data.

rbi/lib/openai/models/beta/assistant_update_params.rbi

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -307,48 +307,6 @@ module OpenAI
307307
abstract!
308308

309309
Variants = type_template(:out) { {fixed: T.any(String, Symbol)} }
310-
311-
# ID of the model to use. You can use the
312-
# [List models](https://platform.openai.com/docs/api-reference/models/list) API to
313-
# see all of your available models, or see our
314-
# [Model overview](https://platform.openai.com/docs/models) for descriptions of
315-
# them.
316-
class AssistantSupportedModels < OpenAI::Enum
317-
abstract!
318-
319-
Value = type_template(:out) { {fixed: Symbol} }
320-
321-
O3_MINI = :"o3-mini"
322-
O3_MINI_2025_01_31 = :"o3-mini-2025-01-31"
323-
O1 = :o1
324-
O1_2024_12_17 = :"o1-2024-12-17"
325-
GPT_4O = :"gpt-4o"
326-
GPT_4O_2024_11_20 = :"gpt-4o-2024-11-20"
327-
GPT_4O_2024_08_06 = :"gpt-4o-2024-08-06"
328-
GPT_4O_2024_05_13 = :"gpt-4o-2024-05-13"
329-
GPT_4O_MINI = :"gpt-4o-mini"
330-
GPT_4O_MINI_2024_07_18 = :"gpt-4o-mini-2024-07-18"
331-
GPT_4_5_PREVIEW = :"gpt-4.5-preview"
332-
GPT_4_5_PREVIEW_2025_02_27 = :"gpt-4.5-preview-2025-02-27"
333-
GPT_4_TURBO = :"gpt-4-turbo"
334-
GPT_4_TURBO_2024_04_09 = :"gpt-4-turbo-2024-04-09"
335-
GPT_4_0125_PREVIEW = :"gpt-4-0125-preview"
336-
GPT_4_TURBO_PREVIEW = :"gpt-4-turbo-preview"
337-
GPT_4_1106_PREVIEW = :"gpt-4-1106-preview"
338-
GPT_4_VISION_PREVIEW = :"gpt-4-vision-preview"
339-
GPT_4 = :"gpt-4"
340-
GPT_4_0314 = :"gpt-4-0314"
341-
GPT_4_0613 = :"gpt-4-0613"
342-
GPT_4_32K = :"gpt-4-32k"
343-
GPT_4_32K_0314 = :"gpt-4-32k-0314"
344-
GPT_4_32K_0613 = :"gpt-4-32k-0613"
345-
GPT_3_5_TURBO = :"gpt-3.5-turbo"
346-
GPT_3_5_TURBO_16K = :"gpt-3.5-turbo-16k"
347-
GPT_3_5_TURBO_0613 = :"gpt-3.5-turbo-0613"
348-
GPT_3_5_TURBO_1106 = :"gpt-3.5-turbo-1106"
349-
GPT_3_5_TURBO_0125 = :"gpt-3.5-turbo-0125"
350-
GPT_3_5_TURBO_16K_0613 = :"gpt-3.5-turbo-16k-0613"
351-
end
352310
end
353311

354312
class ToolResources < OpenAI::BaseModel

0 commit comments

Comments
 (0)