diff --git a/aisdk/ai/provider/openai/constants.go b/aisdk/ai/provider/openai/constants.go index 213d0c51..485dde9e 100644 --- a/aisdk/ai/provider/openai/constants.go +++ b/aisdk/ai/provider/openai/constants.go @@ -1,13 +1,14 @@ package openai -import "go.jetify.com/ai/provider/openai/internal/codec" +import ( + "github.com/openai/openai-go/v2/shared" + "go.jetify.com/ai/provider/openai/internal/codec" +) var ProviderName = codec.ProviderName // Models const ( - ChatModelComputerUsePreview = "computer_use_preview" - ChatModelComputerUsePreview2025_03_11 = "computer_use_preview-2025-03-11" ChatModelGPT5 = "gpt-5" ChatModelGPT5Mini = "gpt-5-mini" ChatModelGPT5Nano = "gpt-5-nano" @@ -70,4 +71,7 @@ const ( ChatModelGPT3_5Turbo1106 = "gpt-3.5-turbo-1106" ChatModelGPT3_5Turbo0125 = "gpt-3.5-turbo-0125" ChatModelGPT3_5Turbo16k0613 = "gpt-3.5-turbo-16k-0613" + + ResponsesModelComputerUsePreview = shared.ResponsesModelComputerUsePreview + ResponsesModelComputerUsePreview2025_03_11 = shared.ResponsesModelComputerUsePreview2025_03_11 ) diff --git a/aisdk/ai/provider/openai/internal/codec/encode.go b/aisdk/ai/provider/openai/internal/codec/encode.go index 74c3e377..8dbd8f9e 100644 --- a/aisdk/ai/provider/openai/internal/codec/encode.go +++ b/aisdk/ai/provider/openai/internal/codec/encode.go @@ -77,6 +77,12 @@ func getModelConfig(modelID string) modelConfig { SystemMessageMode: "developer", RequiredAutoTruncation: false, } + } else if len(modelID) > 0 && strings.HasPrefix(modelID, shared.ResponsesModelComputerUsePreview) { + return modelConfig{ + IsReasoningModel: true, + SystemMessageMode: "developer", + RequiredAutoTruncation: true, + } } // gpt models (non o-series)