Skip to content

Commit 5b53a1d

Browse files
fix(api): add missing reasoning effort + model enums (#215)
1 parent b2a763d commit 5b53a1d

File tree

6 files changed

+145
-9
lines changed

6 files changed

+145
-9
lines changed

.stats.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
configured_endpoints: 68
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai-fc5dbc19505b0035f9e7f88868619f4fb519b048bde011f6154f3132d4be71fb.yml
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai-7c699d4503077d06a4a44f52c0c1f902d19a87c766b8be75b97c8dfd484ad4aa.yml

betaassistant.go

Lines changed: 105 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2082,6 +2082,13 @@ type BetaAssistantNewParams struct {
20822082
Metadata param.Field[shared.MetadataParam] `json:"metadata"`
20832083
// The name of the assistant. The maximum length is 256 characters.
20842084
Name param.Field[string] `json:"name"`
2085+
// **o1 and o3-mini models only**
2086+
//
2087+
// Constrains effort on reasoning for
2088+
// [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
2089+
// supported values are `low`, `medium`, and `high`. Reducing reasoning effort can
2090+
// result in faster responses and fewer tokens used on reasoning in a response.
2091+
ReasoningEffort param.Field[BetaAssistantNewParamsReasoningEffort] `json:"reasoning_effort"`
20852092
// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will
20862093
// make the output more random, while lower values like 0.2 will make it more
20872094
// focused and deterministic.
@@ -2107,6 +2114,28 @@ func (r BetaAssistantNewParams) MarshalJSON() (data []byte, err error) {
21072114
return apijson.MarshalRoot(r)
21082115
}
21092116

2117+
// **o1 and o3-mini models only**
2118+
//
2119+
// Constrains effort on reasoning for
2120+
// [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
2121+
// supported values are `low`, `medium`, and `high`. Reducing reasoning effort can
2122+
// result in faster responses and fewer tokens used on reasoning in a response.
2123+
type BetaAssistantNewParamsReasoningEffort string
2124+
2125+
const (
2126+
BetaAssistantNewParamsReasoningEffortLow BetaAssistantNewParamsReasoningEffort = "low"
2127+
BetaAssistantNewParamsReasoningEffortMedium BetaAssistantNewParamsReasoningEffort = "medium"
2128+
BetaAssistantNewParamsReasoningEffortHigh BetaAssistantNewParamsReasoningEffort = "high"
2129+
)
2130+
2131+
func (r BetaAssistantNewParamsReasoningEffort) IsKnown() bool {
2132+
switch r {
2133+
case BetaAssistantNewParamsReasoningEffortLow, BetaAssistantNewParamsReasoningEffortMedium, BetaAssistantNewParamsReasoningEffortHigh:
2134+
return true
2135+
}
2136+
return false
2137+
}
2138+
21102139
// A set of resources that are used by the assistant's tools. The resources are
21112140
// specific to the type of tool. For example, the `code_interpreter` tool requires
21122141
// a list of file IDs, while the `file_search` tool requires a list of vector store
@@ -2187,9 +2216,16 @@ type BetaAssistantUpdateParams struct {
21872216
// see all of your available models, or see our
21882217
// [Model overview](https://platform.openai.com/docs/models) for descriptions of
21892218
// them.
2190-
Model param.Field[string] `json:"model"`
2219+
Model param.Field[BetaAssistantUpdateParamsModel] `json:"model"`
21912220
// The name of the assistant. The maximum length is 256 characters.
21922221
Name param.Field[string] `json:"name"`
2222+
// **o1 and o3-mini models only**
2223+
//
2224+
// Constrains effort on reasoning for
2225+
// [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
2226+
// supported values are `low`, `medium`, and `high`. Reducing reasoning effort can
2227+
// result in faster responses and fewer tokens used on reasoning in a response.
2228+
ReasoningEffort param.Field[BetaAssistantUpdateParamsReasoningEffort] `json:"reasoning_effort"`
21932229
// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will
21942230
// make the output more random, while lower values like 0.2 will make it more
21952231
// focused and deterministic.
@@ -2215,6 +2251,74 @@ func (r BetaAssistantUpdateParams) MarshalJSON() (data []byte, err error) {
22152251
return apijson.MarshalRoot(r)
22162252
}
22172253

2254+
// ID of the model to use. You can use the
2255+
// [List models](https://platform.openai.com/docs/api-reference/models/list) API to
2256+
// see all of your available models, or see our
2257+
// [Model overview](https://platform.openai.com/docs/models) for descriptions of
2258+
// them.
2259+
type BetaAssistantUpdateParamsModel string
2260+
2261+
const (
2262+
BetaAssistantUpdateParamsModelO3Mini BetaAssistantUpdateParamsModel = "o3-mini"
2263+
BetaAssistantUpdateParamsModelO3Mini2025_01_31 BetaAssistantUpdateParamsModel = "o3-mini-2025-01-31"
2264+
BetaAssistantUpdateParamsModelO1 BetaAssistantUpdateParamsModel = "o1"
2265+
BetaAssistantUpdateParamsModelO1_2024_12_17 BetaAssistantUpdateParamsModel = "o1-2024-12-17"
2266+
BetaAssistantUpdateParamsModelGPT4o BetaAssistantUpdateParamsModel = "gpt-4o"
2267+
BetaAssistantUpdateParamsModelGPT4o2024_11_20 BetaAssistantUpdateParamsModel = "gpt-4o-2024-11-20"
2268+
BetaAssistantUpdateParamsModelGPT4o2024_08_06 BetaAssistantUpdateParamsModel = "gpt-4o-2024-08-06"
2269+
BetaAssistantUpdateParamsModelGPT4o2024_05_13 BetaAssistantUpdateParamsModel = "gpt-4o-2024-05-13"
2270+
BetaAssistantUpdateParamsModelGPT4oMini BetaAssistantUpdateParamsModel = "gpt-4o-mini"
2271+
BetaAssistantUpdateParamsModelGPT4oMini2024_07_18 BetaAssistantUpdateParamsModel = "gpt-4o-mini-2024-07-18"
2272+
BetaAssistantUpdateParamsModelGPT4Turbo BetaAssistantUpdateParamsModel = "gpt-4-turbo"
2273+
BetaAssistantUpdateParamsModelGPT4Turbo2024_04_09 BetaAssistantUpdateParamsModel = "gpt-4-turbo-2024-04-09"
2274+
BetaAssistantUpdateParamsModelGPT4_0125Preview BetaAssistantUpdateParamsModel = "gpt-4-0125-preview"
2275+
BetaAssistantUpdateParamsModelGPT4TurboPreview BetaAssistantUpdateParamsModel = "gpt-4-turbo-preview"
2276+
BetaAssistantUpdateParamsModelGPT4_1106Preview BetaAssistantUpdateParamsModel = "gpt-4-1106-preview"
2277+
BetaAssistantUpdateParamsModelGPT4VisionPreview BetaAssistantUpdateParamsModel = "gpt-4-vision-preview"
2278+
BetaAssistantUpdateParamsModelGPT4 BetaAssistantUpdateParamsModel = "gpt-4"
2279+
BetaAssistantUpdateParamsModelGPT4_0314 BetaAssistantUpdateParamsModel = "gpt-4-0314"
2280+
BetaAssistantUpdateParamsModelGPT4_0613 BetaAssistantUpdateParamsModel = "gpt-4-0613"
2281+
BetaAssistantUpdateParamsModelGPT4_32k BetaAssistantUpdateParamsModel = "gpt-4-32k"
2282+
BetaAssistantUpdateParamsModelGPT4_32k0314 BetaAssistantUpdateParamsModel = "gpt-4-32k-0314"
2283+
BetaAssistantUpdateParamsModelGPT4_32k0613 BetaAssistantUpdateParamsModel = "gpt-4-32k-0613"
2284+
BetaAssistantUpdateParamsModelGPT3_5Turbo BetaAssistantUpdateParamsModel = "gpt-3.5-turbo"
2285+
BetaAssistantUpdateParamsModelGPT3_5Turbo16k BetaAssistantUpdateParamsModel = "gpt-3.5-turbo-16k"
2286+
BetaAssistantUpdateParamsModelGPT3_5Turbo0613 BetaAssistantUpdateParamsModel = "gpt-3.5-turbo-0613"
2287+
BetaAssistantUpdateParamsModelGPT3_5Turbo1106 BetaAssistantUpdateParamsModel = "gpt-3.5-turbo-1106"
2288+
BetaAssistantUpdateParamsModelGPT3_5Turbo0125 BetaAssistantUpdateParamsModel = "gpt-3.5-turbo-0125"
2289+
BetaAssistantUpdateParamsModelGPT3_5Turbo16k0613 BetaAssistantUpdateParamsModel = "gpt-3.5-turbo-16k-0613"
2290+
)
2291+
2292+
func (r BetaAssistantUpdateParamsModel) IsKnown() bool {
2293+
switch r {
2294+
case BetaAssistantUpdateParamsModelO3Mini, BetaAssistantUpdateParamsModelO3Mini2025_01_31, BetaAssistantUpdateParamsModelO1, BetaAssistantUpdateParamsModelO1_2024_12_17, BetaAssistantUpdateParamsModelGPT4o, BetaAssistantUpdateParamsModelGPT4o2024_11_20, BetaAssistantUpdateParamsModelGPT4o2024_08_06, BetaAssistantUpdateParamsModelGPT4o2024_05_13, BetaAssistantUpdateParamsModelGPT4oMini, BetaAssistantUpdateParamsModelGPT4oMini2024_07_18, BetaAssistantUpdateParamsModelGPT4Turbo, BetaAssistantUpdateParamsModelGPT4Turbo2024_04_09, BetaAssistantUpdateParamsModelGPT4_0125Preview, BetaAssistantUpdateParamsModelGPT4TurboPreview, BetaAssistantUpdateParamsModelGPT4_1106Preview, BetaAssistantUpdateParamsModelGPT4VisionPreview, BetaAssistantUpdateParamsModelGPT4, BetaAssistantUpdateParamsModelGPT4_0314, BetaAssistantUpdateParamsModelGPT4_0613, BetaAssistantUpdateParamsModelGPT4_32k, BetaAssistantUpdateParamsModelGPT4_32k0314, BetaAssistantUpdateParamsModelGPT4_32k0613, BetaAssistantUpdateParamsModelGPT3_5Turbo, BetaAssistantUpdateParamsModelGPT3_5Turbo16k, BetaAssistantUpdateParamsModelGPT3_5Turbo0613, BetaAssistantUpdateParamsModelGPT3_5Turbo1106, BetaAssistantUpdateParamsModelGPT3_5Turbo0125, BetaAssistantUpdateParamsModelGPT3_5Turbo16k0613:
2295+
return true
2296+
}
2297+
return false
2298+
}
2299+
2300+
// **o1 and o3-mini models only**
2301+
//
2302+
// Constrains effort on reasoning for
2303+
// [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
2304+
// supported values are `low`, `medium`, and `high`. Reducing reasoning effort can
2305+
// result in faster responses and fewer tokens used on reasoning in a response.
2306+
type BetaAssistantUpdateParamsReasoningEffort string
2307+
2308+
const (
2309+
BetaAssistantUpdateParamsReasoningEffortLow BetaAssistantUpdateParamsReasoningEffort = "low"
2310+
BetaAssistantUpdateParamsReasoningEffortMedium BetaAssistantUpdateParamsReasoningEffort = "medium"
2311+
BetaAssistantUpdateParamsReasoningEffortHigh BetaAssistantUpdateParamsReasoningEffort = "high"
2312+
)
2313+
2314+
func (r BetaAssistantUpdateParamsReasoningEffort) IsKnown() bool {
2315+
switch r {
2316+
case BetaAssistantUpdateParamsReasoningEffortLow, BetaAssistantUpdateParamsReasoningEffortMedium, BetaAssistantUpdateParamsReasoningEffortHigh:
2317+
return true
2318+
}
2319+
return false
2320+
}
2321+
22182322
// A set of resources that are used by the assistant's tools. The resources are
22192323
// specific to the type of tool. For example, the `code_interpreter` tool requires
22202324
// a list of file IDs, while the `file_search` tool requires a list of vector store

betaassistant_test.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ func TestBetaAssistantNewWithOptionalParams(t *testing.T) {
3333
Metadata: openai.F(shared.MetadataParam{
3434
"foo": "string",
3535
}),
36-
Name: openai.F("name"),
37-
Temperature: openai.F(1.000000),
36+
Name: openai.F("name"),
37+
ReasoningEffort: openai.F(openai.BetaAssistantNewParamsReasoningEffortLow),
38+
Temperature: openai.F(1.000000),
3839
ToolResources: openai.F(openai.BetaAssistantNewParamsToolResources{
3940
CodeInterpreter: openai.F(openai.BetaAssistantNewParamsToolResourcesCodeInterpreter{
4041
FileIDs: openai.F([]string{"string"}),
@@ -109,9 +110,10 @@ func TestBetaAssistantUpdateWithOptionalParams(t *testing.T) {
109110
Metadata: openai.F(shared.MetadataParam{
110111
"foo": "string",
111112
}),
112-
Model: openai.F("model"),
113-
Name: openai.F("name"),
114-
Temperature: openai.F(1.000000),
113+
Model: openai.F(openai.BetaAssistantUpdateParamsModelO3Mini),
114+
Name: openai.F("name"),
115+
ReasoningEffort: openai.F(openai.BetaAssistantUpdateParamsReasoningEffortLow),
116+
Temperature: openai.F(1.000000),
115117
ToolResources: openai.F(openai.BetaAssistantUpdateParamsToolResources{
116118
CodeInterpreter: openai.F(openai.BetaAssistantUpdateParamsToolResourcesCodeInterpreter{
117119
FileIDs: openai.F([]string{"string"}),

betathreadrun.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -736,6 +736,13 @@ type BetaThreadRunNewParams struct {
736736
// [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling)
737737
// during tool use.
738738
ParallelToolCalls param.Field[bool] `json:"parallel_tool_calls"`
739+
// **o1 and o3-mini models only**
740+
//
741+
// Constrains effort on reasoning for
742+
// [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
743+
// supported values are `low`, `medium`, and `high`. Reducing reasoning effort can
744+
// result in faster responses and fewer tokens used on reasoning in a response.
745+
ReasoningEffort param.Field[BetaThreadRunNewParamsReasoningEffort] `json:"reasoning_effort"`
739746
// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will
740747
// make the output more random, while lower values like 0.2 will make it more
741748
// focused and deterministic.
@@ -896,6 +903,28 @@ func (r BetaThreadRunNewParamsAdditionalMessagesAttachmentsToolsType) IsKnown()
896903
return false
897904
}
898905

906+
// **o1 and o3-mini models only**
907+
//
908+
// Constrains effort on reasoning for
909+
// [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
910+
// supported values are `low`, `medium`, and `high`. Reducing reasoning effort can
911+
// result in faster responses and fewer tokens used on reasoning in a response.
912+
type BetaThreadRunNewParamsReasoningEffort string
913+
914+
const (
915+
BetaThreadRunNewParamsReasoningEffortLow BetaThreadRunNewParamsReasoningEffort = "low"
916+
BetaThreadRunNewParamsReasoningEffortMedium BetaThreadRunNewParamsReasoningEffort = "medium"
917+
BetaThreadRunNewParamsReasoningEffortHigh BetaThreadRunNewParamsReasoningEffort = "high"
918+
)
919+
920+
func (r BetaThreadRunNewParamsReasoningEffort) IsKnown() bool {
921+
switch r {
922+
case BetaThreadRunNewParamsReasoningEffortLow, BetaThreadRunNewParamsReasoningEffortMedium, BetaThreadRunNewParamsReasoningEffortHigh:
923+
return true
924+
}
925+
return false
926+
}
927+
899928
// Controls for how a thread will be truncated prior to the run. Use this to
900929
// control the intial context window of the run.
901930
type BetaThreadRunNewParamsTruncationStrategy struct {

betathreadrun_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ func TestBetaThreadRunNewWithOptionalParams(t *testing.T) {
5454
}),
5555
Model: openai.F(openai.ChatModelO3Mini),
5656
ParallelToolCalls: openai.F(true),
57+
ReasoningEffort: openai.F(openai.BetaThreadRunNewParamsReasoningEffortLow),
5758
Temperature: openai.F(1.000000),
5859
ToolChoice: openai.F[openai.AssistantToolChoiceOptionUnionParam](openai.AssistantToolChoiceOptionAuto(openai.AssistantToolChoiceOptionAutoNone)),
5960
Tools: openai.F([]openai.AssistantToolUnionParam{openai.CodeInterpreterToolParam{

chatcompletion.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1509,7 +1509,7 @@ func (r ChatCompletionPredictionContentType) IsKnown() bool {
15091509
return false
15101510
}
15111511

1512-
// **o1 models only**
1512+
// **o1 and o3-mini models only**
15131513
//
15141514
// Constrains effort on reasoning for
15151515
// [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
@@ -1871,7 +1871,7 @@ type ChatCompletionNewParams struct {
18711871
// whether they appear in the text so far, increasing the model's likelihood to
18721872
// talk about new topics.
18731873
PresencePenalty param.Field[float64] `json:"presence_penalty"`
1874-
// **o1 models only**
1874+
// **o1 and o3-mini models only**
18751875
//
18761876
// Constrains effort on reasoning for
18771877
// [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently

0 commit comments

Comments
 (0)