Skip to content

Commit dd8e964

Browse files
feat(api): adding gpt-4.1 family of model IDs
1 parent 16b413b commit dd8e964

File tree

11 files changed

+96
-27
lines changed

11 files changed

+96
-27
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 95
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-44b20fa9d24544217fe6bb48852037537030a1ad29b202936425110744fe66fb.yml
3-
openapi_spec_hash: ea86343b5e9858a74e85da8ab2c532f6
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-a555f81249cb084f463dcefa4aba069f9341fdaf3dd6ac27d7f237fc90e8f488.yml
3+
openapi_spec_hash: 8e590296cd1a54b9508510b0c7a2c45a
44
config_hash: 5ea32de61ff42fcf5e66cff8d9e247ea

lib/openai/internal/type/enum.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,23 @@ module Type
1919
# @example
2020
# # `chat_model` is a `OpenAI::Models::ChatModel`
2121
# case chat_model
22-
# when OpenAI::Models::ChatModel::O3_MINI
22+
# when OpenAI::Models::ChatModel::GPT_4_1
2323
# # ...
24-
# when OpenAI::Models::ChatModel::O3_MINI_2025_01_31
24+
# when OpenAI::Models::ChatModel::GPT_4_1_MINI
2525
# # ...
26-
# when OpenAI::Models::ChatModel::O1
26+
# when OpenAI::Models::ChatModel::GPT_4_1_NANO
2727
# # ...
2828
# else
2929
# puts(chat_model)
3030
# end
3131
#
3232
# @example
3333
# case chat_model
34-
# in :"o3-mini"
34+
# in :"gpt-4.1"
3535
# # ...
36-
# in :"o3-mini-2025-01-31"
36+
# in :"gpt-4.1-mini"
3737
# # ...
38-
# in :o1
38+
# in :"gpt-4.1-nano"
3939
# # ...
4040
# else
4141
# puts(chat_model)

lib/openai/models/beta/assistant_update_params.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,18 @@ module Model
172172

173173
variant String
174174

175+
variant const: -> { OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_1 }
176+
177+
variant const: -> { OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_1_MINI }
178+
179+
variant const: -> { OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_1_NANO }
180+
181+
variant const: -> { OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_1_2025_04_14 }
182+
183+
variant const: -> { OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_1_MINI_2025_04_14 }
184+
185+
variant const: -> { OpenAI::Models::Beta::AssistantUpdateParams::Model::GPT_4_1_NANO_2025_04_14 }
186+
175187
variant const: -> { OpenAI::Models::Beta::AssistantUpdateParams::Model::O3_MINI }
176188

177189
variant const: -> { OpenAI::Models::Beta::AssistantUpdateParams::Model::O3_MINI_2025_01_31 }
@@ -238,6 +250,12 @@ module Model
238250

239251
# @!group
240252

253+
GPT_4_1 = :"gpt-4.1"
254+
GPT_4_1_MINI = :"gpt-4.1-mini"
255+
GPT_4_1_NANO = :"gpt-4.1-nano"
256+
GPT_4_1_2025_04_14 = :"gpt-4.1-2025-04-14"
257+
GPT_4_1_MINI_2025_04_14 = :"gpt-4.1-mini-2025-04-14"
258+
GPT_4_1_NANO_2025_04_14 = :"gpt-4.1-nano-2025-04-14"
241259
O3_MINI = :"o3-mini"
242260
O3_MINI_2025_01_31 = :"o3-mini-2025-01-31"
243261
O1 = :o1

lib/openai/models/chat_model.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ module Models
55
module ChatModel
66
extend OpenAI::Internal::Type::Enum
77

8+
GPT_4_1 = :"gpt-4.1"
9+
GPT_4_1_MINI = :"gpt-4.1-mini"
10+
GPT_4_1_NANO = :"gpt-4.1-nano"
11+
GPT_4_1_2025_04_14 = :"gpt-4.1-2025-04-14"
12+
GPT_4_1_MINI_2025_04_14 = :"gpt-4.1-mini-2025-04-14"
13+
GPT_4_1_NANO_2025_04_14 = :"gpt-4.1-nano-2025-04-14"
814
O3_MINI = :"o3-mini"
915
O3_MINI_2025_01_31 = :"o3-mini-2025-01-31"
1016
O1 = :o1

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,15 @@ module OpenAI
240240
OrSymbol =
241241
T.type_alias { T.any(Symbol, String, OpenAI::Models::Beta::AssistantUpdateParams::Model::TaggedSymbol) }
242242

243+
GPT_4_1 = T.let(:"gpt-4.1", OpenAI::Models::Beta::AssistantUpdateParams::Model::TaggedSymbol)
244+
GPT_4_1_MINI = T.let(:"gpt-4.1-mini", OpenAI::Models::Beta::AssistantUpdateParams::Model::TaggedSymbol)
245+
GPT_4_1_NANO = T.let(:"gpt-4.1-nano", OpenAI::Models::Beta::AssistantUpdateParams::Model::TaggedSymbol)
246+
GPT_4_1_2025_04_14 =
247+
T.let(:"gpt-4.1-2025-04-14", OpenAI::Models::Beta::AssistantUpdateParams::Model::TaggedSymbol)
248+
GPT_4_1_MINI_2025_04_14 =
249+
T.let(:"gpt-4.1-mini-2025-04-14", OpenAI::Models::Beta::AssistantUpdateParams::Model::TaggedSymbol)
250+
GPT_4_1_NANO_2025_04_14 =
251+
T.let(:"gpt-4.1-nano-2025-04-14", OpenAI::Models::Beta::AssistantUpdateParams::Model::TaggedSymbol)
243252
O3_MINI = T.let(:"o3-mini", OpenAI::Models::Beta::AssistantUpdateParams::Model::TaggedSymbol)
244253
O3_MINI_2025_01_31 =
245254
T.let(:"o3-mini-2025-01-31", OpenAI::Models::Beta::AssistantUpdateParams::Model::TaggedSymbol)

rbi/lib/openai/models/chat_model.rbi

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ module OpenAI
88
TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ChatModel) }
99
OrSymbol = T.type_alias { T.any(Symbol, String, OpenAI::Models::ChatModel::TaggedSymbol) }
1010

11+
GPT_4_1 = T.let(:"gpt-4.1", OpenAI::Models::ChatModel::TaggedSymbol)
12+
GPT_4_1_MINI = T.let(:"gpt-4.1-mini", OpenAI::Models::ChatModel::TaggedSymbol)
13+
GPT_4_1_NANO = T.let(:"gpt-4.1-nano", OpenAI::Models::ChatModel::TaggedSymbol)
14+
GPT_4_1_2025_04_14 = T.let(:"gpt-4.1-2025-04-14", OpenAI::Models::ChatModel::TaggedSymbol)
15+
GPT_4_1_MINI_2025_04_14 = T.let(:"gpt-4.1-mini-2025-04-14", OpenAI::Models::ChatModel::TaggedSymbol)
16+
GPT_4_1_NANO_2025_04_14 = T.let(:"gpt-4.1-nano-2025-04-14", OpenAI::Models::ChatModel::TaggedSymbol)
1117
O3_MINI = T.let(:"o3-mini", OpenAI::Models::ChatModel::TaggedSymbol)
1218
O3_MINI_2025_01_31 = T.let(:"o3-mini-2025-01-31", OpenAI::Models::ChatModel::TaggedSymbol)
1319
O1 = T.let(:o1, OpenAI::Models::ChatModel::TaggedSymbol)

sig/openai/models/beta/assistant_update_params.rbs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,12 @@ module OpenAI
7070

7171
type model =
7272
String
73+
| :"gpt-4.1"
74+
| :"gpt-4.1-mini"
75+
| :"gpt-4.1-nano"
76+
| :"gpt-4.1-2025-04-14"
77+
| :"gpt-4.1-mini-2025-04-14"
78+
| :"gpt-4.1-nano-2025-04-14"
7379
| :"o3-mini"
7480
| :"o3-mini-2025-01-31"
7581
| :o1
@@ -104,7 +110,13 @@ module OpenAI
104110
module Model
105111
extend OpenAI::Internal::Type::Union
106112

107-
def self?.variants: -> [String, (:"o3-mini"
113+
def self?.variants: -> [String, (:"gpt-4.1"
114+
| :"gpt-4.1-mini"
115+
| :"gpt-4.1-nano"
116+
| :"gpt-4.1-2025-04-14"
117+
| :"gpt-4.1-mini-2025-04-14"
118+
| :"gpt-4.1-nano-2025-04-14"
119+
| :"o3-mini"
108120
| :"o3-mini-2025-01-31"
109121
| :o1
110122
| :"o1-2024-12-17"
@@ -135,6 +147,12 @@ module OpenAI
135147
| :"gpt-3.5-turbo-0125"
136148
| :"gpt-3.5-turbo-16k-0613")]
137149

150+
GPT_4_1: :"gpt-4.1"
151+
GPT_4_1_MINI: :"gpt-4.1-mini"
152+
GPT_4_1_NANO: :"gpt-4.1-nano"
153+
GPT_4_1_2025_04_14: :"gpt-4.1-2025-04-14"
154+
GPT_4_1_MINI_2025_04_14: :"gpt-4.1-mini-2025-04-14"
155+
GPT_4_1_NANO_2025_04_14: :"gpt-4.1-nano-2025-04-14"
138156
O3_MINI: :"o3-mini"
139157
O3_MINI_2025_01_31: :"o3-mini-2025-01-31"
140158
O1: :o1

sig/openai/models/chat_model.rbs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
module OpenAI
22
module Models
33
type chat_model =
4-
:"o3-mini"
4+
:"gpt-4.1"
5+
| :"gpt-4.1-mini"
6+
| :"gpt-4.1-nano"
7+
| :"gpt-4.1-2025-04-14"
8+
| :"gpt-4.1-mini-2025-04-14"
9+
| :"gpt-4.1-nano-2025-04-14"
10+
| :"o3-mini"
511
| :"o3-mini-2025-01-31"
612
| :o1
713
| :"o1-2024-12-17"
@@ -48,6 +54,12 @@ module OpenAI
4854
module ChatModel
4955
extend OpenAI::Internal::Type::Enum
5056

57+
GPT_4_1: :"gpt-4.1"
58+
GPT_4_1_MINI: :"gpt-4.1-mini"
59+
GPT_4_1_NANO: :"gpt-4.1-nano"
60+
GPT_4_1_2025_04_14: :"gpt-4.1-2025-04-14"
61+
GPT_4_1_MINI_2025_04_14: :"gpt-4.1-mini-2025-04-14"
62+
GPT_4_1_NANO_2025_04_14: :"gpt-4.1-nano-2025-04-14"
5163
O3_MINI: :"o3-mini"
5264
O3_MINI_2025_01_31: :"o3-mini-2025-01-31"
5365
O1: :o1

test/openai/client_test.rb

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def test_client_default_request_default_retry_attempts
5656
openai.requester = requester
5757

5858
assert_raises(OpenAI::Errors::InternalServerError) do
59-
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"o3-mini")
59+
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"gpt-4.1")
6060
end
6161

6262
assert_equal(3, requester.attempts.length)
@@ -68,7 +68,7 @@ def test_client_given_request_default_retry_attempts
6868
openai.requester = requester
6969

7070
assert_raises(OpenAI::Errors::InternalServerError) do
71-
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"o3-mini")
71+
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"gpt-4.1")
7272
end
7373

7474
assert_equal(4, requester.attempts.length)
@@ -82,7 +82,7 @@ def test_client_default_request_given_retry_attempts
8282
assert_raises(OpenAI::Errors::InternalServerError) do
8383
openai.chat.completions.create(
8484
messages: [{content: "string", role: :developer}],
85-
model: :"o3-mini",
85+
model: :"gpt-4.1",
8686
request_options: {max_retries: 3}
8787
)
8888
end
@@ -98,7 +98,7 @@ def test_client_given_request_given_retry_attempts
9898
assert_raises(OpenAI::Errors::InternalServerError) do
9999
openai.chat.completions.create(
100100
messages: [{content: "string", role: :developer}],
101-
model: :"o3-mini",
101+
model: :"gpt-4.1",
102102
request_options: {max_retries: 4}
103103
)
104104
end
@@ -112,7 +112,7 @@ def test_client_retry_after_seconds
112112
openai.requester = requester
113113

114114
assert_raises(OpenAI::Errors::InternalServerError) do
115-
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"o3-mini")
115+
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"gpt-4.1")
116116
end
117117

118118
assert_equal(2, requester.attempts.length)
@@ -126,7 +126,7 @@ def test_client_retry_after_date
126126

127127
assert_raises(OpenAI::Errors::InternalServerError) do
128128
Thread.current.thread_variable_set(:time_now, Time.now)
129-
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"o3-mini")
129+
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"gpt-4.1")
130130
Thread.current.thread_variable_set(:time_now, nil)
131131
end
132132

@@ -140,7 +140,7 @@ def test_client_retry_after_ms
140140
openai.requester = requester
141141

142142
assert_raises(OpenAI::Errors::InternalServerError) do
143-
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"o3-mini")
143+
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"gpt-4.1")
144144
end
145145

146146
assert_equal(2, requester.attempts.length)
@@ -153,7 +153,7 @@ def test_retry_count_header
153153
openai.requester = requester
154154

155155
assert_raises(OpenAI::Errors::InternalServerError) do
156-
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"o3-mini")
156+
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"gpt-4.1")
157157
end
158158

159159
retry_count_headers = requester.attempts.map do
@@ -171,7 +171,7 @@ def test_omit_retry_count_header
171171
assert_raises(OpenAI::Errors::InternalServerError) do
172172
openai.chat.completions.create(
173173
messages: [{content: "string", role: :developer}],
174-
model: :"o3-mini",
174+
model: :"gpt-4.1",
175175
request_options: {extra_headers: {"x-stainless-retry-count" => nil}}
176176
)
177177
end
@@ -191,7 +191,7 @@ def test_overwrite_retry_count_header
191191
assert_raises(OpenAI::Errors::InternalServerError) do
192192
openai.chat.completions.create(
193193
messages: [{content: "string", role: :developer}],
194-
model: :"o3-mini",
194+
model: :"gpt-4.1",
195195
request_options: {extra_headers: {"x-stainless-retry-count" => "42"}}
196196
)
197197
end
@@ -211,7 +211,7 @@ def test_client_redirect_307
211211
assert_raises(OpenAI::Errors::APIConnectionError) do
212212
openai.chat.completions.create(
213213
messages: [{content: "string", role: :developer}],
214-
model: :"o3-mini",
214+
model: :"gpt-4.1",
215215
request_options: {extra_headers: {}}
216216
)
217217
end
@@ -233,7 +233,7 @@ def test_client_redirect_303
233233
assert_raises(OpenAI::Errors::APIConnectionError) do
234234
openai.chat.completions.create(
235235
messages: [{content: "string", role: :developer}],
236-
model: :"o3-mini",
236+
model: :"gpt-4.1",
237237
request_options: {extra_headers: {}}
238238
)
239239
end
@@ -252,7 +252,7 @@ def test_client_redirect_auth_keep_same_origin
252252
assert_raises(OpenAI::Errors::APIConnectionError) do
253253
openai.chat.completions.create(
254254
messages: [{content: "string", role: :developer}],
255-
model: :"o3-mini",
255+
model: :"gpt-4.1",
256256
request_options: {extra_headers: {"authorization" => "Bearer xyz"}}
257257
)
258258
end
@@ -271,7 +271,7 @@ def test_client_redirect_auth_strip_cross_origin
271271
assert_raises(OpenAI::Errors::APIConnectionError) do
272272
openai.chat.completions.create(
273273
messages: [{content: "string", role: :developer}],
274-
model: :"o3-mini",
274+
model: :"gpt-4.1",
275275
request_options: {extra_headers: {"authorization" => "Bearer xyz"}}
276276
)
277277
end
@@ -283,7 +283,7 @@ def test_default_headers
283283
openai = OpenAI::Client.new(base_url: "http://localhost:4010", api_key: "My API Key")
284284
requester = MockRequester.new(200, {}, {})
285285
openai.requester = requester
286-
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"o3-mini")
286+
openai.chat.completions.create(messages: [{content: "string", role: :developer}], model: :"gpt-4.1")
287287
headers = requester.attempts.first.fetch(:headers)
288288

289289
refute_empty(headers["accept"])

test/openai/resources/beta/assistants_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
class OpenAI::Test::Resources::Beta::AssistantsTest < OpenAI::Test::ResourceTest
66
def test_create_required_params
7-
response = @openai.beta.assistants.create(model: :"o3-mini")
7+
response = @openai.beta.assistants.create(model: :"gpt-4.1")
88

99
assert_pattern do
1010
response => OpenAI::Models::Beta::Assistant

0 commit comments

Comments
 (0)