Skip to content

Commit 2912dac

Browse files
feat(api): adding gpt-4.1 family of model IDs
1 parent aa1b090 commit 2912dac

20 files changed

+120
-48
lines changed

.stats.yml

+2-2
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

README.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ OpenAIClient client = OpenAIOkHttpClient.fromEnv();
7878

7979
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
8080
.addUserMessage("Say this is a test")
81-
.model(ChatModel.O3_MINI)
81+
.model(ChatModel.GPT_4_1)
8282
.build();
8383
ChatCompletion chatCompletion = client.chat().completions().create(params);
8484
```
@@ -163,7 +163,7 @@ OpenAIClient client = OpenAIOkHttpClient.fromEnv();
163163

164164
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
165165
.addUserMessage("Say this is a test")
166-
.model(ChatModel.O3_MINI)
166+
.model(ChatModel.GPT_4_1)
167167
.build();
168168
CompletableFuture<ChatCompletion> chatCompletion = client.async().chat().completions().create(params);
169169
```
@@ -183,7 +183,7 @@ OpenAIClientAsync client = OpenAIOkHttpClientAsync.fromEnv();
183183

184184
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
185185
.addUserMessage("Say this is a test")
186-
.model(ChatModel.O3_MINI)
186+
.model(ChatModel.GPT_4_1)
187187
.build();
188188
CompletableFuture<ChatCompletion> chatCompletion = client.chat().completions().create(params);
189189
```
@@ -468,7 +468,7 @@ import com.openai.models.chat.completions.ChatCompletionCreateParams;
468468

469469
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
470470
.addUserMessage("Say this is a test")
471-
.model(ChatModel.O3_MINI)
471+
.model(ChatModel.GPT_4_1)
472472
.build();
473473
HttpResponseFor<ChatCompletion> chatCompletion = client.chat().completions().withRawResponse().create(params);
474474

@@ -785,7 +785,7 @@ import com.openai.models.ChatModel;
785785
import com.openai.models.chat.completions.ChatCompletionCreateParams;
786786

787787
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
788-
.model(ChatModel.O3_MINI)
788+
.model(ChatModel.GPT_4_1)
789789
.messages(JsonMissing.of())
790790
.build();
791791
```

openai-java-core/src/main/kotlin/com/openai/models/ChatModel.kt

+36
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,18 @@ class ChatModel @JsonCreator private constructor(private val value: JsonField<St
2020

2121
companion object {
2222

23+
@JvmField val GPT_4_1 = of("gpt-4.1")
24+
25+
@JvmField val GPT_4_1_MINI = of("gpt-4.1-mini")
26+
27+
@JvmField val GPT_4_1_NANO = of("gpt-4.1-nano")
28+
29+
@JvmField val GPT_4_1_2025_04_14 = of("gpt-4.1-2025-04-14")
30+
31+
@JvmField val GPT_4_1_MINI_2025_04_14 = of("gpt-4.1-mini-2025-04-14")
32+
33+
@JvmField val GPT_4_1_NANO_2025_04_14 = of("gpt-4.1-nano-2025-04-14")
34+
2335
@JvmField val O3_MINI = of("o3-mini")
2436

2537
@JvmField val O3_MINI_2025_01_31 = of("o3-mini-2025-01-31")
@@ -113,6 +125,12 @@ class ChatModel @JsonCreator private constructor(private val value: JsonField<St
113125

114126
/** An enum containing [ChatModel]'s known values. */
115127
enum class Known {
128+
GPT_4_1,
129+
GPT_4_1_MINI,
130+
GPT_4_1_NANO,
131+
GPT_4_1_2025_04_14,
132+
GPT_4_1_MINI_2025_04_14,
133+
GPT_4_1_NANO_2025_04_14,
116134
O3_MINI,
117135
O3_MINI_2025_01_31,
118136
O1,
@@ -168,6 +186,12 @@ class ChatModel @JsonCreator private constructor(private val value: JsonField<St
168186
* - It was constructed with an arbitrary value using the [of] method.
169187
*/
170188
enum class Value {
189+
GPT_4_1,
190+
GPT_4_1_MINI,
191+
GPT_4_1_NANO,
192+
GPT_4_1_2025_04_14,
193+
GPT_4_1_MINI_2025_04_14,
194+
GPT_4_1_NANO_2025_04_14,
171195
O3_MINI,
172196
O3_MINI_2025_01_31,
173197
O1,
@@ -224,6 +248,12 @@ class ChatModel @JsonCreator private constructor(private val value: JsonField<St
224248
*/
225249
fun value(): Value =
226250
when (this) {
251+
GPT_4_1 -> Value.GPT_4_1
252+
GPT_4_1_MINI -> Value.GPT_4_1_MINI
253+
GPT_4_1_NANO -> Value.GPT_4_1_NANO
254+
GPT_4_1_2025_04_14 -> Value.GPT_4_1_2025_04_14
255+
GPT_4_1_MINI_2025_04_14 -> Value.GPT_4_1_MINI_2025_04_14
256+
GPT_4_1_NANO_2025_04_14 -> Value.GPT_4_1_NANO_2025_04_14
227257
O3_MINI -> Value.O3_MINI
228258
O3_MINI_2025_01_31 -> Value.O3_MINI_2025_01_31
229259
O1 -> Value.O1
@@ -280,6 +310,12 @@ class ChatModel @JsonCreator private constructor(private val value: JsonField<St
280310
*/
281311
fun known(): Known =
282312
when (this) {
313+
GPT_4_1 -> Known.GPT_4_1
314+
GPT_4_1_MINI -> Known.GPT_4_1_MINI
315+
GPT_4_1_NANO -> Known.GPT_4_1_NANO
316+
GPT_4_1_2025_04_14 -> Known.GPT_4_1_2025_04_14
317+
GPT_4_1_MINI_2025_04_14 -> Known.GPT_4_1_MINI_2025_04_14
318+
GPT_4_1_NANO_2025_04_14 -> Known.GPT_4_1_NANO_2025_04_14
283319
O3_MINI -> Known.O3_MINI
284320
O3_MINI_2025_01_31 -> Known.O3_MINI_2025_01_31
285321
O1 -> Known.O1

openai-java-core/src/main/kotlin/com/openai/models/beta/assistants/AssistantUpdateParams.kt

+36
Original file line numberDiff line numberDiff line change
@@ -1655,6 +1655,18 @@ private constructor(
16551655

16561656
companion object {
16571657

1658+
@JvmField val GPT_4_1 = of("gpt-4.1")
1659+
1660+
@JvmField val GPT_4_1_MINI = of("gpt-4.1-mini")
1661+
1662+
@JvmField val GPT_4_1_NANO = of("gpt-4.1-nano")
1663+
1664+
@JvmField val GPT_4_1_2025_04_14 = of("gpt-4.1-2025-04-14")
1665+
1666+
@JvmField val GPT_4_1_MINI_2025_04_14 = of("gpt-4.1-mini-2025-04-14")
1667+
1668+
@JvmField val GPT_4_1_NANO_2025_04_14 = of("gpt-4.1-nano-2025-04-14")
1669+
16581670
@JvmField val O3_MINI = of("o3-mini")
16591671

16601672
@JvmField val O3_MINI_2025_01_31 = of("o3-mini-2025-01-31")
@@ -1720,6 +1732,12 @@ private constructor(
17201732

17211733
/** An enum containing [Model]'s known values. */
17221734
enum class Known {
1735+
GPT_4_1,
1736+
GPT_4_1_MINI,
1737+
GPT_4_1_NANO,
1738+
GPT_4_1_2025_04_14,
1739+
GPT_4_1_MINI_2025_04_14,
1740+
GPT_4_1_NANO_2025_04_14,
17231741
O3_MINI,
17241742
O3_MINI_2025_01_31,
17251743
O1,
@@ -1762,6 +1780,12 @@ private constructor(
17621780
* - It was constructed with an arbitrary value using the [of] method.
17631781
*/
17641782
enum class Value {
1783+
GPT_4_1,
1784+
GPT_4_1_MINI,
1785+
GPT_4_1_NANO,
1786+
GPT_4_1_2025_04_14,
1787+
GPT_4_1_MINI_2025_04_14,
1788+
GPT_4_1_NANO_2025_04_14,
17651789
O3_MINI,
17661790
O3_MINI_2025_01_31,
17671791
O1,
@@ -1805,6 +1829,12 @@ private constructor(
18051829
*/
18061830
fun value(): Value =
18071831
when (this) {
1832+
GPT_4_1 -> Value.GPT_4_1
1833+
GPT_4_1_MINI -> Value.GPT_4_1_MINI
1834+
GPT_4_1_NANO -> Value.GPT_4_1_NANO
1835+
GPT_4_1_2025_04_14 -> Value.GPT_4_1_2025_04_14
1836+
GPT_4_1_MINI_2025_04_14 -> Value.GPT_4_1_MINI_2025_04_14
1837+
GPT_4_1_NANO_2025_04_14 -> Value.GPT_4_1_NANO_2025_04_14
18081838
O3_MINI -> Value.O3_MINI
18091839
O3_MINI_2025_01_31 -> Value.O3_MINI_2025_01_31
18101840
O1 -> Value.O1
@@ -1849,6 +1879,12 @@ private constructor(
18491879
*/
18501880
fun known(): Known =
18511881
when (this) {
1882+
GPT_4_1 -> Known.GPT_4_1
1883+
GPT_4_1_MINI -> Known.GPT_4_1_MINI
1884+
GPT_4_1_NANO -> Known.GPT_4_1_NANO
1885+
GPT_4_1_2025_04_14 -> Known.GPT_4_1_2025_04_14
1886+
GPT_4_1_MINI_2025_04_14 -> Known.GPT_4_1_MINI_2025_04_14
1887+
GPT_4_1_NANO_2025_04_14 -> Known.GPT_4_1_NANO_2025_04_14
18521888
O3_MINI -> Known.O3_MINI
18531889
O3_MINI_2025_01_31 -> Known.O3_MINI_2025_01_31
18541890
O1 -> Known.O1

openai-java-core/src/test/kotlin/com/openai/models/AllModelsTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ internal class AllModelsTest {
4141

4242
@Test
4343
fun ofChatModel() {
44-
val chatModel = ChatModel.O3_MINI
44+
val chatModel = ChatModel.GPT_4_1
4545

4646
val allModels = AllModels.ofChatModel(chatModel)
4747

@@ -53,7 +53,7 @@ internal class AllModelsTest {
5353
@Test
5454
fun ofChatModelRoundtrip() {
5555
val jsonMapper = jsonMapper()
56-
val allModels = AllModels.ofChatModel(ChatModel.O3_MINI)
56+
val allModels = AllModels.ofChatModel(ChatModel.GPT_4_1)
5757

5858
val roundtrippedAllModels =
5959
jsonMapper.readValue(

openai-java-core/src/test/kotlin/com/openai/models/ResponsesModelTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ internal class ResponsesModelTest {
4141

4242
@Test
4343
fun ofChat() {
44-
val chat = ChatModel.O3_MINI
44+
val chat = ChatModel.GPT_4_1
4545

4646
val responsesModel = ResponsesModel.ofChat(chat)
4747

@@ -53,7 +53,7 @@ internal class ResponsesModelTest {
5353
@Test
5454
fun ofChatRoundtrip() {
5555
val jsonMapper = jsonMapper()
56-
val responsesModel = ResponsesModel.ofChat(ChatModel.O3_MINI)
56+
val responsesModel = ResponsesModel.ofChat(ChatModel.GPT_4_1)
5757

5858
val roundtrippedResponsesModel =
5959
jsonMapper.readValue(

openai-java-core/src/test/kotlin/com/openai/models/beta/assistants/AssistantCreateParamsTest.kt

+5-5
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ internal class AssistantCreateParamsTest {
1515
@Test
1616
fun create() {
1717
AssistantCreateParams.builder()
18-
.model(ChatModel.O3_MINI)
18+
.model(ChatModel.GPT_4_1)
1919
.description("description")
2020
.instructions("instructions")
2121
.metadata(
@@ -63,7 +63,7 @@ internal class AssistantCreateParamsTest {
6363
fun body() {
6464
val params =
6565
AssistantCreateParams.builder()
66-
.model(ChatModel.O3_MINI)
66+
.model(ChatModel.GPT_4_1)
6767
.description("description")
6868
.instructions("instructions")
6969
.metadata(
@@ -113,7 +113,7 @@ internal class AssistantCreateParamsTest {
113113

114114
val body = params._body()
115115

116-
assertThat(body.model()).isEqualTo(ChatModel.O3_MINI)
116+
assertThat(body.model()).isEqualTo(ChatModel.GPT_4_1)
117117
assertThat(body.description()).contains("description")
118118
assertThat(body.instructions()).contains("instructions")
119119
assertThat(body.metadata())
@@ -161,10 +161,10 @@ internal class AssistantCreateParamsTest {
161161

162162
@Test
163163
fun bodyWithoutOptionalFields() {
164-
val params = AssistantCreateParams.builder().model(ChatModel.O3_MINI).build()
164+
val params = AssistantCreateParams.builder().model(ChatModel.GPT_4_1).build()
165165

166166
val body = params._body()
167167

168-
assertThat(body.model()).isEqualTo(ChatModel.O3_MINI)
168+
assertThat(body.model()).isEqualTo(ChatModel.GPT_4_1)
169169
}
170170
}

openai-java-core/src/test/kotlin/com/openai/models/beta/assistants/AssistantUpdateParamsTest.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ internal class AssistantUpdateParamsTest {
2222
.putAdditionalProperty("foo", JsonValue.from("string"))
2323
.build()
2424
)
25-
.model(AssistantUpdateParams.Model.O3_MINI)
25+
.model(AssistantUpdateParams.Model.GPT_4_1)
2626
.name("name")
2727
.reasoningEffort(ReasoningEffort.LOW)
2828
.responseFormatAuto()
@@ -67,7 +67,7 @@ internal class AssistantUpdateParamsTest {
6767
.putAdditionalProperty("foo", JsonValue.from("string"))
6868
.build()
6969
)
70-
.model(AssistantUpdateParams.Model.O3_MINI)
70+
.model(AssistantUpdateParams.Model.GPT_4_1)
7171
.name("name")
7272
.reasoningEffort(ReasoningEffort.LOW)
7373
.responseFormatAuto()
@@ -100,7 +100,7 @@ internal class AssistantUpdateParamsTest {
100100
.putAdditionalProperty("foo", JsonValue.from("string"))
101101
.build()
102102
)
103-
assertThat(body.model()).contains(AssistantUpdateParams.Model.O3_MINI)
103+
assertThat(body.model()).contains(AssistantUpdateParams.Model.GPT_4_1)
104104
assertThat(body.name()).contains("name")
105105
assertThat(body.reasoningEffort()).contains(ReasoningEffort.LOW)
106106
assertThat(body.responseFormat()).contains(AssistantResponseFormatOption.ofAuto())

openai-java-core/src/test/kotlin/com/openai/models/beta/threads/ThreadCreateAndRunParamsTest.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ internal class ThreadCreateAndRunParamsTest {
2323
.putAdditionalProperty("foo", JsonValue.from("string"))
2424
.build()
2525
)
26-
.model(ChatModel.O3_MINI)
26+
.model(ChatModel.GPT_4_1)
2727
.parallelToolCalls(true)
2828
.responseFormatAuto()
2929
.temperature(1.0)
@@ -127,7 +127,7 @@ internal class ThreadCreateAndRunParamsTest {
127127
.putAdditionalProperty("foo", JsonValue.from("string"))
128128
.build()
129129
)
130-
.model(ChatModel.O3_MINI)
130+
.model(ChatModel.GPT_4_1)
131131
.parallelToolCalls(true)
132132
.responseFormatAuto()
133133
.temperature(1.0)
@@ -230,7 +230,7 @@ internal class ThreadCreateAndRunParamsTest {
230230
.putAdditionalProperty("foo", JsonValue.from("string"))
231231
.build()
232232
)
233-
assertThat(body.model()).contains(ChatModel.O3_MINI)
233+
assertThat(body.model()).contains(ChatModel.GPT_4_1)
234234
assertThat(body.parallelToolCalls()).contains(true)
235235
assertThat(body.responseFormat()).contains(AssistantResponseFormatOption.ofAuto())
236236
assertThat(body.temperature()).contains(1.0)

openai-java-core/src/test/kotlin/com/openai/models/beta/threads/runs/RunCreateParamsTest.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ internal class RunCreateParamsTest {
4949
.putAdditionalProperty("foo", JsonValue.from("string"))
5050
.build()
5151
)
52-
.model(ChatModel.O3_MINI)
52+
.model(ChatModel.GPT_4_1)
5353
.parallelToolCalls(true)
5454
.reasoningEffort(ReasoningEffort.LOW)
5555
.responseFormatAuto()
@@ -109,7 +109,7 @@ internal class RunCreateParamsTest {
109109
.putAdditionalProperty("foo", JsonValue.from("string"))
110110
.build()
111111
)
112-
.model(ChatModel.O3_MINI)
112+
.model(ChatModel.GPT_4_1)
113113
.parallelToolCalls(true)
114114
.reasoningEffort(ReasoningEffort.LOW)
115115
.responseFormatAuto()
@@ -178,7 +178,7 @@ internal class RunCreateParamsTest {
178178
.putAdditionalProperty("foo", JsonValue.from("string"))
179179
.build()
180180
)
181-
.model(ChatModel.O3_MINI)
181+
.model(ChatModel.GPT_4_1)
182182
.parallelToolCalls(true)
183183
.reasoningEffort(ReasoningEffort.LOW)
184184
.responseFormatAuto()
@@ -225,7 +225,7 @@ internal class RunCreateParamsTest {
225225
.putAdditionalProperty("foo", JsonValue.from("string"))
226226
.build()
227227
)
228-
assertThat(body.model()).contains(ChatModel.O3_MINI)
228+
assertThat(body.model()).contains(ChatModel.GPT_4_1)
229229
assertThat(body.parallelToolCalls()).contains(true)
230230
assertThat(body.reasoningEffort()).contains(ReasoningEffort.LOW)
231231
assertThat(body.responseFormat()).contains(AssistantResponseFormatOption.ofAuto())

0 commit comments

Comments
 (0)