From 3fabca6b5c610edfb7bcd0cab5334a06444df0b0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 16:42:15 +0000 Subject: [PATCH] feat(api): add o3 and o4-mini model IDs --- aliases.go | 37 +++++++++++-- chatcompletion.go | 104 ++++++++++++++++++++++++++++++++----- completion.go | 2 + responses/aliases.go | 37 +++++++++++-- responses/response.go | 95 ++++++++++++++++++++++++++++++++- responses/response_test.go | 4 +- shared/shared.go | 49 +++++++++++++---- 7 files changed, 294 insertions(+), 34 deletions(-) diff --git a/aliases.go b/aliases.go index 94e62f5..3ab0221 100644 --- a/aliases.go +++ b/aliases.go @@ -37,6 +37,18 @@ const ChatModelGPT4_1Mini2025_04_14 = shared.ChatModelGPT4_1Mini2025_04_14 // Equals "gpt-4.1-nano-2025-04-14" const ChatModelGPT4_1Nano2025_04_14 = shared.ChatModelGPT4_1Nano2025_04_14 +// Equals "o4-mini" +const ChatModelO4Mini = shared.ChatModelO4Mini + +// Equals "o4-mini-2025-04-16" +const ChatModelO4Mini2025_04_16 = shared.ChatModelO4Mini2025_04_16 + +// Equals "o3" +const ChatModelO3 = shared.ChatModelO3 + +// Equals "o3-2025-04-16" +const ChatModelO3_2025_04_16 = shared.ChatModelO3_2025_04_16 + // Equals "o3-mini" const ChatModelO3Mini = shared.ChatModelO3Mini @@ -279,21 +291,40 @@ type Metadata = shared.Metadata // This is an alias to an internal type. type Reasoning = shared.Reasoning -// **computer_use_preview only** +// **Deprecated:** use `summary` instead. // // A summary of the reasoning performed by the model. This can be useful for -// debugging and understanding the model's reasoning process. One of `concise` or -// `detailed`. +// debugging and understanding the model's reasoning process. One of `auto`, +// `concise`, or `detailed`. // // This is an alias to an internal type. type ReasoningGenerateSummary = shared.ReasoningGenerateSummary +// Equals "auto" +const ReasoningGenerateSummaryAuto = shared.ReasoningGenerateSummaryAuto + // Equals "concise" const ReasoningGenerateSummaryConcise = shared.ReasoningGenerateSummaryConcise // Equals "detailed" const ReasoningGenerateSummaryDetailed = shared.ReasoningGenerateSummaryDetailed +// A summary of the reasoning performed by the model. This can be useful for +// debugging and understanding the model's reasoning process. One of `auto`, +// `concise`, or `detailed`. +// +// This is an alias to an internal type. +type ReasoningSummary = shared.ReasoningSummary + +// Equals "auto" +const ReasoningSummaryAuto = shared.ReasoningSummaryAuto + +// Equals "concise" +const ReasoningSummaryConcise = shared.ReasoningSummaryConcise + +// Equals "detailed" +const ReasoningSummaryDetailed = shared.ReasoningSummaryDetailed + // **o-series models only** // // Configuration options for diff --git a/chatcompletion.go b/chatcompletion.go index ab04587..bb490e7 100644 --- a/chatcompletion.go +++ b/chatcompletion.go @@ -174,9 +174,25 @@ type ChatCompletion struct { Model string `json:"model,required"` // The object type, which is always `chat.completion`. Object constant.ChatCompletion `json:"object,required"` - // The service tier used for processing the request. + // Specifies the latency tier to use for processing the request. This parameter is + // relevant for customers subscribed to the scale tier service: // - // Any of "scale", "default". + // - If set to 'auto', and the Project is Scale tier enabled, the system will + // utilize scale tier credits until they are exhausted. + // - If set to 'auto', and the Project is not Scale tier enabled, the request will + // be processed using the default service tier with a lower uptime SLA and no + // latency guarentee. + // - If set to 'default', the request will be processed using the default service + // tier with a lower uptime SLA and no latency guarentee. + // - If set to 'flex', the request will be processed with the Flex Processing + // service tier. + // [Learn more](https://platform.openai.com/docs/guides/flex-processing). + // - When not set, the default behavior is 'auto'. + // + // When this parameter is set, the response body will include the `service_tier` + // utilized. + // + // Any of "auto", "default", "flex". ServiceTier ChatCompletionServiceTier `json:"service_tier,nullable"` // This fingerprint represents the backend configuration that the model runs with. // @@ -260,12 +276,29 @@ func (r *ChatCompletionChoiceLogprobs) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, r) } -// The service tier used for processing the request. +// Specifies the latency tier to use for processing the request. This parameter is +// relevant for customers subscribed to the scale tier service: +// +// - If set to 'auto', and the Project is Scale tier enabled, the system will +// utilize scale tier credits until they are exhausted. +// - If set to 'auto', and the Project is not Scale tier enabled, the request will +// be processed using the default service tier with a lower uptime SLA and no +// latency guarentee. +// - If set to 'default', the request will be processed using the default service +// tier with a lower uptime SLA and no latency guarentee. +// - If set to 'flex', the request will be processed with the Flex Processing +// service tier. +// [Learn more](https://platform.openai.com/docs/guides/flex-processing). +// - When not set, the default behavior is 'auto'. +// +// When this parameter is set, the response body will include the `service_tier` +// utilized. type ChatCompletionServiceTier string const ( - ChatCompletionServiceTierScale ChatCompletionServiceTier = "scale" + ChatCompletionServiceTierAuto ChatCompletionServiceTier = "auto" ChatCompletionServiceTierDefault ChatCompletionServiceTier = "default" + ChatCompletionServiceTierFlex ChatCompletionServiceTier = "flex" ) // Messages sent by the model in response to user messages. @@ -472,10 +505,10 @@ type ChatCompletionAudioParam struct { // Specifies the output audio format. Must be one of `wav`, `mp3`, `flac`, `opus`, // or `pcm16`. // - // Any of "wav", "mp3", "flac", "opus", "pcm16". + // Any of "wav", "aac", "mp3", "flac", "opus", "pcm16". Format ChatCompletionAudioParamFormat `json:"format,omitzero,required"` // The voice the model uses to respond. Supported voices are `alloy`, `ash`, - // `ballad`, `coral`, `echo`, `sage`, and `shimmer`. + // `ballad`, `coral`, `echo`, `fable`, `nova`, `onyx`, `sage`, and `shimmer`. Voice ChatCompletionAudioParamVoice `json:"voice,omitzero,required"` paramObj } @@ -494,6 +527,7 @@ type ChatCompletionAudioParamFormat string const ( ChatCompletionAudioParamFormatWAV ChatCompletionAudioParamFormat = "wav" + ChatCompletionAudioParamFormatAAC ChatCompletionAudioParamFormat = "aac" ChatCompletionAudioParamFormatMP3 ChatCompletionAudioParamFormat = "mp3" ChatCompletionAudioParamFormatFLAC ChatCompletionAudioParamFormat = "flac" ChatCompletionAudioParamFormatOpus ChatCompletionAudioParamFormat = "opus" @@ -501,7 +535,7 @@ const ( ) // The voice the model uses to respond. Supported voices are `alloy`, `ash`, -// `ballad`, `coral`, `echo`, `sage`, and `shimmer`. +// `ballad`, `coral`, `echo`, `fable`, `nova`, `onyx`, `sage`, and `shimmer`. type ChatCompletionAudioParamVoice string const ( @@ -535,9 +569,25 @@ type ChatCompletionChunk struct { Model string `json:"model,required"` // The object type, which is always `chat.completion.chunk`. Object constant.ChatCompletionChunk `json:"object,required"` - // The service tier used for processing the request. + // Specifies the latency tier to use for processing the request. This parameter is + // relevant for customers subscribed to the scale tier service: // - // Any of "scale", "default". + // - If set to 'auto', and the Project is Scale tier enabled, the system will + // utilize scale tier credits until they are exhausted. + // - If set to 'auto', and the Project is not Scale tier enabled, the request will + // be processed using the default service tier with a lower uptime SLA and no + // latency guarentee. + // - If set to 'default', the request will be processed using the default service + // tier with a lower uptime SLA and no latency guarentee. + // - If set to 'flex', the request will be processed with the Flex Processing + // service tier. + // [Learn more](https://platform.openai.com/docs/guides/flex-processing). + // - When not set, the default behavior is 'auto'. + // + // When this parameter is set, the response body will include the `service_tier` + // utilized. + // + // Any of "auto", "default", "flex". ServiceTier ChatCompletionChunkServiceTier `json:"service_tier,nullable"` // This fingerprint represents the backend configuration that the model runs with. // Can be used in conjunction with the `seed` request parameter to understand when @@ -736,12 +786,29 @@ func (r *ChatCompletionChunkChoiceLogprobs) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, r) } -// The service tier used for processing the request. +// Specifies the latency tier to use for processing the request. This parameter is +// relevant for customers subscribed to the scale tier service: +// +// - If set to 'auto', and the Project is Scale tier enabled, the system will +// utilize scale tier credits until they are exhausted. +// - If set to 'auto', and the Project is not Scale tier enabled, the request will +// be processed using the default service tier with a lower uptime SLA and no +// latency guarentee. +// - If set to 'default', the request will be processed using the default service +// tier with a lower uptime SLA and no latency guarentee. +// - If set to 'flex', the request will be processed with the Flex Processing +// service tier. +// [Learn more](https://platform.openai.com/docs/guides/flex-processing). +// - When not set, the default behavior is 'auto'. +// +// When this parameter is set, the response body will include the `service_tier` +// utilized. type ChatCompletionChunkServiceTier string const ( - ChatCompletionChunkServiceTierScale ChatCompletionChunkServiceTier = "scale" + ChatCompletionChunkServiceTierAuto ChatCompletionChunkServiceTier = "auto" ChatCompletionChunkServiceTierDefault ChatCompletionChunkServiceTier = "default" + ChatCompletionChunkServiceTierFlex ChatCompletionChunkServiceTier = "flex" ) func TextContentPart(text string) ChatCompletionContentPartUnionParam { @@ -2026,7 +2093,7 @@ type ChatCompletionNewParams struct { // [images](https://platform.openai.com/docs/guides/vision), and // [audio](https://platform.openai.com/docs/guides/audio). Messages []ChatCompletionMessageParamUnion `json:"messages,omitzero,required"` - // Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a + // Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a // wide range of models with different capabilities, performance characteristics, // and price points. Refer to the // [model guide](https://platform.openai.com/docs/models) to browse and compare @@ -2050,7 +2117,7 @@ type ChatCompletionNewParams struct { // // This value is now deprecated in favor of `max_completion_tokens`, and is not // compatible with - // [o1 series models](https://platform.openai.com/docs/guides/reasoning). + // [o-series models](https://platform.openai.com/docs/guides/reasoning). MaxTokens param.Opt[int64] `json:"max_tokens,omitzero"` // How many chat completion choices to generate for each input message. Note that // you will be charged based on the number of generated tokens across all of the @@ -2145,13 +2212,18 @@ type ChatCompletionNewParams struct { // latency guarentee. // - If set to 'default', the request will be processed using the default service // tier with a lower uptime SLA and no latency guarentee. + // - If set to 'flex', the request will be processed with the Flex Processing + // service tier. + // [Learn more](https://platform.openai.com/docs/guides/flex-processing). // - When not set, the default behavior is 'auto'. // // When this parameter is set, the response body will include the `service_tier` // utilized. // - // Any of "auto", "default". + // Any of "auto", "default", "flex". ServiceTier ChatCompletionNewParamsServiceTier `json:"service_tier,omitzero"` + // Not supported with latest reasoning models `o3` and `o4-mini`. + // // Up to 4 sequences where the API will stop generating further tokens. The // returned text will not contain the stop sequence. Stop ChatCompletionNewParamsStopUnion `json:"stop,omitzero"` @@ -2342,6 +2414,9 @@ func (u ChatCompletionNewParamsResponseFormatUnion) GetType() *string { // latency guarentee. // - If set to 'default', the request will be processed using the default service // tier with a lower uptime SLA and no latency guarentee. +// - If set to 'flex', the request will be processed with the Flex Processing +// service tier. +// [Learn more](https://platform.openai.com/docs/guides/flex-processing). // - When not set, the default behavior is 'auto'. // // When this parameter is set, the response body will include the `service_tier` @@ -2351,6 +2426,7 @@ type ChatCompletionNewParamsServiceTier string const ( ChatCompletionNewParamsServiceTierAuto ChatCompletionNewParamsServiceTier = "auto" ChatCompletionNewParamsServiceTierDefault ChatCompletionNewParamsServiceTier = "default" + ChatCompletionNewParamsServiceTierFlex ChatCompletionNewParamsServiceTier = "flex" ) // Only one field can be non-zero. diff --git a/completion.go b/completion.go index 621b65b..67fa357 100644 --- a/completion.go +++ b/completion.go @@ -338,6 +338,8 @@ type CompletionNewParams struct { // As an example, you can pass `{"50256": -100}` to prevent the <|endoftext|> token // from being generated. LogitBias map[string]int64 `json:"logit_bias,omitzero"` + // Not supported with latest reasoning models `o3` and `o4-mini`. + // // Up to 4 sequences where the API will stop generating further tokens. The // returned text will not contain the stop sequence. Stop CompletionNewParamsStopUnion `json:"stop,omitzero"` diff --git a/responses/aliases.go b/responses/aliases.go index 0c0e08b..33660bd 100644 --- a/responses/aliases.go +++ b/responses/aliases.go @@ -37,6 +37,18 @@ const ChatModelGPT4_1Mini2025_04_14 = shared.ChatModelGPT4_1Mini2025_04_14 // Equals "gpt-4.1-nano-2025-04-14" const ChatModelGPT4_1Nano2025_04_14 = shared.ChatModelGPT4_1Nano2025_04_14 +// Equals "o4-mini" +const ChatModelO4Mini = shared.ChatModelO4Mini + +// Equals "o4-mini-2025-04-16" +const ChatModelO4Mini2025_04_16 = shared.ChatModelO4Mini2025_04_16 + +// Equals "o3" +const ChatModelO3 = shared.ChatModelO3 + +// Equals "o3-2025-04-16" +const ChatModelO3_2025_04_16 = shared.ChatModelO3_2025_04_16 + // Equals "o3-mini" const ChatModelO3Mini = shared.ChatModelO3Mini @@ -279,21 +291,40 @@ type Metadata = shared.Metadata // This is an alias to an internal type. type Reasoning = shared.Reasoning -// **computer_use_preview only** +// **Deprecated:** use `summary` instead. // // A summary of the reasoning performed by the model. This can be useful for -// debugging and understanding the model's reasoning process. One of `concise` or -// `detailed`. +// debugging and understanding the model's reasoning process. One of `auto`, +// `concise`, or `detailed`. // // This is an alias to an internal type. type ReasoningGenerateSummary = shared.ReasoningGenerateSummary +// Equals "auto" +const ReasoningGenerateSummaryAuto = shared.ReasoningGenerateSummaryAuto + // Equals "concise" const ReasoningGenerateSummaryConcise = shared.ReasoningGenerateSummaryConcise // Equals "detailed" const ReasoningGenerateSummaryDetailed = shared.ReasoningGenerateSummaryDetailed +// A summary of the reasoning performed by the model. This can be useful for +// debugging and understanding the model's reasoning process. One of `auto`, +// `concise`, or `detailed`. +// +// This is an alias to an internal type. +type ReasoningSummary = shared.ReasoningSummary + +// Equals "auto" +const ReasoningSummaryAuto = shared.ReasoningSummaryAuto + +// Equals "concise" +const ReasoningSummaryConcise = shared.ReasoningSummaryConcise + +// Equals "detailed" +const ReasoningSummaryDetailed = shared.ReasoningSummaryDetailed + // **o-series models only** // // Configuration options for diff --git a/responses/response.go b/responses/response.go index 310ac6d..a906b6c 100644 --- a/responses/response.go +++ b/responses/response.go @@ -578,7 +578,7 @@ type Response struct { // Keys are strings with a maximum length of 64 characters. Values are strings with // a maximum length of 512 characters. Metadata shared.Metadata `json:"metadata,required"` - // Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a + // Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a // wide range of models with different capabilities, performance characteristics, // and price points. Refer to the // [model guide](https://platform.openai.com/docs/models) to browse and compare @@ -639,6 +639,26 @@ type Response struct { // Configuration options for // [reasoning models](https://platform.openai.com/docs/guides/reasoning). Reasoning shared.Reasoning `json:"reasoning,nullable"` + // Specifies the latency tier to use for processing the request. This parameter is + // relevant for customers subscribed to the scale tier service: + // + // - If set to 'auto', and the Project is Scale tier enabled, the system will + // utilize scale tier credits until they are exhausted. + // - If set to 'auto', and the Project is not Scale tier enabled, the request will + // be processed using the default service tier with a lower uptime SLA and no + // latency guarentee. + // - If set to 'default', the request will be processed using the default service + // tier with a lower uptime SLA and no latency guarentee. + // - If set to 'flex', the request will be processed with the Flex Processing + // service tier. + // [Learn more](https://platform.openai.com/docs/guides/flex-processing). + // - When not set, the default behavior is 'auto'. + // + // When this parameter is set, the response body will include the `service_tier` + // utilized. + // + // Any of "auto", "default", "flex". + ServiceTier ResponseServiceTier `json:"service_tier,nullable"` // The status of the response generation. One of `completed`, `failed`, // `in_progress`, or `incomplete`. // @@ -686,6 +706,7 @@ type Response struct { MaxOutputTokens respjson.Field PreviousResponseID respjson.Field Reasoning respjson.Field + ServiceTier respjson.Field Status respjson.Field Text respjson.Field Truncation respjson.Field @@ -778,6 +799,31 @@ func (r *ResponseToolChoiceUnion) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, r) } +// Specifies the latency tier to use for processing the request. This parameter is +// relevant for customers subscribed to the scale tier service: +// +// - If set to 'auto', and the Project is Scale tier enabled, the system will +// utilize scale tier credits until they are exhausted. +// - If set to 'auto', and the Project is not Scale tier enabled, the request will +// be processed using the default service tier with a lower uptime SLA and no +// latency guarentee. +// - If set to 'default', the request will be processed using the default service +// tier with a lower uptime SLA and no latency guarentee. +// - If set to 'flex', the request will be processed with the Flex Processing +// service tier. +// [Learn more](https://platform.openai.com/docs/guides/flex-processing). +// - When not set, the default behavior is 'auto'. +// +// When this parameter is set, the response body will include the `service_tier` +// utilized. +type ResponseServiceTier string + +const ( + ResponseServiceTierAuto ResponseServiceTier = "auto" + ResponseServiceTierDefault ResponseServiceTier = "default" + ResponseServiceTierFlex ResponseServiceTier = "flex" +) + // The truncation strategy to use for the model response. // // - `auto`: If the context of this response and previous ones exceeds the model's @@ -7509,7 +7555,7 @@ type ResponseNewParams struct { // - [Conversation state](https://platform.openai.com/docs/guides/conversation-state) // - [Function calling](https://platform.openai.com/docs/guides/function-calling) Input ResponseNewParamsInputUnion `json:"input,omitzero,required"` - // Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a + // Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a // wide range of models with different capabilities, performance characteristics, // and price points. Refer to the // [model guide](https://platform.openai.com/docs/models) to browse and compare @@ -7570,6 +7616,26 @@ type ResponseNewParams struct { // Keys are strings with a maximum length of 64 characters. Values are strings with // a maximum length of 512 characters. Metadata shared.Metadata `json:"metadata,omitzero"` + // Specifies the latency tier to use for processing the request. This parameter is + // relevant for customers subscribed to the scale tier service: + // + // - If set to 'auto', and the Project is Scale tier enabled, the system will + // utilize scale tier credits until they are exhausted. + // - If set to 'auto', and the Project is not Scale tier enabled, the request will + // be processed using the default service tier with a lower uptime SLA and no + // latency guarentee. + // - If set to 'default', the request will be processed using the default service + // tier with a lower uptime SLA and no latency guarentee. + // - If set to 'flex', the request will be processed with the Flex Processing + // service tier. + // [Learn more](https://platform.openai.com/docs/guides/flex-processing). + // - When not set, the default behavior is 'auto'. + // + // When this parameter is set, the response body will include the `service_tier` + // utilized. + // + // Any of "auto", "default", "flex". + ServiceTier ResponseNewParamsServiceTier `json:"service_tier,omitzero"` // The truncation strategy to use for the model response. // // - `auto`: If the context of this response and previous ones exceeds the model's @@ -7646,6 +7712,31 @@ func (u *ResponseNewParamsInputUnion) asAny() any { return nil } +// Specifies the latency tier to use for processing the request. This parameter is +// relevant for customers subscribed to the scale tier service: +// +// - If set to 'auto', and the Project is Scale tier enabled, the system will +// utilize scale tier credits until they are exhausted. +// - If set to 'auto', and the Project is not Scale tier enabled, the request will +// be processed using the default service tier with a lower uptime SLA and no +// latency guarentee. +// - If set to 'default', the request will be processed using the default service +// tier with a lower uptime SLA and no latency guarentee. +// - If set to 'flex', the request will be processed with the Flex Processing +// service tier. +// [Learn more](https://platform.openai.com/docs/guides/flex-processing). +// - When not set, the default behavior is 'auto'. +// +// When this parameter is set, the response body will include the `service_tier` +// utilized. +type ResponseNewParamsServiceTier string + +const ( + ResponseNewParamsServiceTierAuto ResponseNewParamsServiceTier = "auto" + ResponseNewParamsServiceTierDefault ResponseNewParamsServiceTier = "default" + ResponseNewParamsServiceTierFlex ResponseNewParamsServiceTier = "flex" +) + // Only one field can be non-zero. // // Use [param.IsOmitted] to confirm if a field is set. diff --git a/responses/response_test.go b/responses/response_test.go index cdb3834..5c9bb2c 100644 --- a/responses/response_test.go +++ b/responses/response_test.go @@ -42,8 +42,10 @@ func TestResponseNewWithOptionalParams(t *testing.T) { PreviousResponseID: openai.String("previous_response_id"), Reasoning: shared.ReasoningParam{ Effort: shared.ReasoningEffortLow, - GenerateSummary: shared.ReasoningGenerateSummaryConcise, + GenerateSummary: shared.ReasoningGenerateSummaryAuto, + Summary: shared.ReasoningSummaryAuto, }, + ServiceTier: responses.ResponseNewParamsServiceTierAuto, Store: openai.Bool(true), Temperature: openai.Float(1), Text: responses.ResponseTextConfigParam{ diff --git a/shared/shared.go b/shared/shared.go index 85dbdff..82bd24c 100644 --- a/shared/shared.go +++ b/shared/shared.go @@ -27,6 +27,10 @@ const ( ChatModelGPT4_1_2025_04_14 ChatModel = "gpt-4.1-2025-04-14" ChatModelGPT4_1Mini2025_04_14 ChatModel = "gpt-4.1-mini-2025-04-14" ChatModelGPT4_1Nano2025_04_14 ChatModel = "gpt-4.1-nano-2025-04-14" + ChatModelO4Mini ChatModel = "o4-mini" + ChatModelO4Mini2025_04_16 ChatModel = "o4-mini-2025-04-16" + ChatModelO3 ChatModel = "o3" + ChatModelO3_2025_04_16 ChatModel = "o3-2025-04-16" ChatModelO3Mini ChatModel = "o3-mini" ChatModelO3Mini2025_01_31 ChatModel = "o3-mini-2025-01-31" ChatModelO1 ChatModel = "o1" @@ -422,13 +426,15 @@ type Reasoning struct { // // Any of "low", "medium", "high". Effort ReasoningEffort `json:"effort,nullable"` - // **computer_use_preview only** + // **Deprecated:** use `summary` instead. // // A summary of the reasoning performed by the model. This can be useful for - // debugging and understanding the model's reasoning process. One of `concise` or - // `detailed`. + // debugging and understanding the model's reasoning process. One of `auto`, + // `concise`, or `detailed`. // - // Any of "concise", "detailed". + // Any of "auto", "concise", "detailed". + // + // Deprecated: deprecated GenerateSummary ReasoningGenerateSummary `json:"generate_summary,nullable"` // A summary of the reasoning performed by the model. This can be useful for // debugging and understanding the model's reasoning process. One of `auto`, @@ -440,6 +446,7 @@ type Reasoning struct { JSON struct { Effort respjson.Field GenerateSummary respjson.Field + Summary respjson.Field ExtraFields map[string]respjson.Field raw string } `json:"-"` @@ -460,18 +467,30 @@ func (r Reasoning) ToParam() ReasoningParam { return param.Override[ReasoningParam](r.RawJSON()) } -// **computer_use_preview only** +// **Deprecated:** use `summary` instead. // // A summary of the reasoning performed by the model. This can be useful for -// debugging and understanding the model's reasoning process. One of `concise` or -// `detailed`. +// debugging and understanding the model's reasoning process. One of `auto`, +// `concise`, or `detailed`. type ReasoningGenerateSummary string const ( + ReasoningGenerateSummaryAuto ReasoningGenerateSummary = "auto" ReasoningGenerateSummaryConcise ReasoningGenerateSummary = "concise" ReasoningGenerateSummaryDetailed ReasoningGenerateSummary = "detailed" ) +// A summary of the reasoning performed by the model. This can be useful for +// debugging and understanding the model's reasoning process. One of `auto`, +// `concise`, or `detailed`. +type ReasoningSummary string + +const ( + ReasoningSummaryAuto ReasoningSummary = "auto" + ReasoningSummaryConcise ReasoningSummary = "concise" + ReasoningSummaryDetailed ReasoningSummary = "detailed" +) + // **o-series models only** // // Configuration options for @@ -486,14 +505,22 @@ type ReasoningParam struct { // // Any of "low", "medium", "high". Effort ReasoningEffort `json:"effort,omitzero"` - // **computer_use_preview only** + // **Deprecated:** use `summary` instead. // // A summary of the reasoning performed by the model. This can be useful for - // debugging and understanding the model's reasoning process. One of `concise` or - // `detailed`. + // debugging and understanding the model's reasoning process. One of `auto`, + // `concise`, or `detailed`. // - // Any of "concise", "detailed". + // Any of "auto", "concise", "detailed". + // + // Deprecated: deprecated GenerateSummary ReasoningGenerateSummary `json:"generate_summary,omitzero"` + // A summary of the reasoning performed by the model. This can be useful for + // debugging and understanding the model's reasoning process. One of `auto`, + // `concise`, or `detailed`. + // + // Any of "auto", "concise", "detailed". + Summary ReasoningSummary `json:"summary,omitzero"` paramObj }