diff --git a/go.mod b/go.mod index c934b81a95ece100891347edb266326e49769f14..1b5c7e3285d086c4c32b32718e1b48f863601b15 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/google/uuid v1.6.0 github.com/joho/godotenv v1.5.1 github.com/kaptinlin/jsonschema v0.7.5 - github.com/openai/openai-go/v2 v2.7.1 + github.com/openai/openai-go/v3 v3.26.0 github.com/stretchr/testify v1.11.1 golang.org/x/oauth2 v0.36.0 google.golang.org/genai v1.49.0 diff --git a/go.sum b/go.sum index 676ace142da1e15807e0c32aa138af86c82f56f8..ab81a6ee184f0526b45e55737e1c25db911d3054 100644 --- a/go.sum +++ b/go.sum @@ -201,8 +201,8 @@ github.com/onsi/ginkgo/v2 v2.23.4 h1:ktYTpKJAVZnDT4VjxSbiBenUjmlL/5QkBEocaWXiQus github.com/onsi/ginkgo/v2 v2.23.4/go.mod h1:Bt66ApGPBFzHyR+JO10Zbt0Gsp4uWxu5mIOTusL46e8= github.com/onsi/gomega v1.37.0 h1:CdEG8g0S133B4OswTDC/5XPSzE1OeP29QOioj2PID2Y= github.com/onsi/gomega v1.37.0/go.mod h1:8D9+Txp43QWKhM24yyOBEdpkzN8FvJyAwecBgsU4KU0= -github.com/openai/openai-go/v2 v2.7.1 h1:/tfvTJhfv7hTSL8mWwc5VL4WLLSDL5yn9VqVykdu9r8= -github.com/openai/openai-go/v2 v2.7.1/go.mod h1:jrJs23apqJKKbT+pqtFgNKpRju/KP9zpUTZhz3GElQE= +github.com/openai/openai-go/v3 v3.26.0 h1:bRt6H/ozMNt/dDkN4gobnLqaEGrRGBzmbVs0xxJEnQE= +github.com/openai/openai-go/v3 v3.26.0/go.mod h1:cdufnVK14cWcT9qA1rRtrXx4FTRsgbDPW7Ia7SS5cZo= github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= diff --git a/providers/azure/azure.go b/providers/azure/azure.go index a68df7251d1d8dbb62d802e5e44c6915e06b54bb..7435198dc919695b2f81513fc47b4501db89ae9b 100644 --- a/providers/azure/azure.go +++ b/providers/azure/azure.go @@ -8,8 +8,8 @@ import ( "charm.land/fantasy" "charm.land/fantasy/providers/openai" - "github.com/openai/openai-go/v2/azure" - "github.com/openai/openai-go/v2/option" + "github.com/openai/openai-go/v3/azure" + "github.com/openai/openai-go/v3/option" ) type options struct { diff --git a/providers/openai/call_useragent.go b/providers/openai/call_useragent.go index bc5b8b9c26a3f6a36d2356c1a6a3731f0525e545..34252e1ce8da6db11cb4e72ce973466dde78e833 100644 --- a/providers/openai/call_useragent.go +++ b/providers/openai/call_useragent.go @@ -3,7 +3,7 @@ package openai import ( "charm.land/fantasy" "charm.land/fantasy/providers/internal/httpheaders" - "github.com/openai/openai-go/v2/option" + "github.com/openai/openai-go/v3/option" ) // callUARequestOptions returns per-request options that override the diff --git a/providers/openai/error.go b/providers/openai/error.go index 63e5c4dc561114a49d4f7e20f2926b99ecfae3e6..4d487d2ef057d0682f7640b716188712f6f60652 100644 --- a/providers/openai/error.go +++ b/providers/openai/error.go @@ -10,7 +10,7 @@ import ( "strings" "charm.land/fantasy" - "github.com/openai/openai-go/v2" + "github.com/openai/openai-go/v3" ) var openaiContextPattern = regexp.MustCompile(`maximum context length is (\d+) tokens.*?(?:resulted in|requested) (\d+) tokens`) diff --git a/providers/openai/language_model.go b/providers/openai/language_model.go index 78d23f02f426648889d29d4b97af13f0326eeacb..27eb6186255aba2118165d8213d31491e71ceda8 100644 --- a/providers/openai/language_model.go +++ b/providers/openai/language_model.go @@ -14,9 +14,9 @@ import ( "charm.land/fantasy/schema" xjson "github.com/charmbracelet/x/json" "github.com/google/uuid" - "github.com/openai/openai-go/v2" - "github.com/openai/openai-go/v2/packages/param" - "github.com/openai/openai-go/v2/shared" + "github.com/openai/openai-go/v3" + "github.com/openai/openai-go/v3/packages/param" + "github.com/openai/openai-go/v3/shared" ) type languageModel struct { diff --git a/providers/openai/language_model_hooks.go b/providers/openai/language_model_hooks.go index d58c1794f540b19e7599792c22a370831987f5e7..a5d3af77a9b0780eaf1c517d17ff987863c9396e 100644 --- a/providers/openai/language_model_hooks.go +++ b/providers/openai/language_model_hooks.go @@ -6,9 +6,9 @@ import ( "strings" "charm.land/fantasy" - "github.com/openai/openai-go/v2" - "github.com/openai/openai-go/v2/packages/param" - "github.com/openai/openai-go/v2/shared" + "github.com/openai/openai-go/v3" + "github.com/openai/openai-go/v3/packages/param" + "github.com/openai/openai-go/v3/shared" ) // LanguageModelPrepareCallFunc is a function that prepares the call for the language model. diff --git a/providers/openai/openai.go b/providers/openai/openai.go index 6bfff744ebad638e145b17f7936733e17839acdb..88d0968b65405b8097b5cab2c83ab17839ad4311 100644 --- a/providers/openai/openai.go +++ b/providers/openai/openai.go @@ -8,8 +8,8 @@ import ( "charm.land/fantasy" "charm.land/fantasy/providers/internal/httpheaders" - "github.com/openai/openai-go/v2" - "github.com/openai/openai-go/v2/option" + "github.com/openai/openai-go/v3" + "github.com/openai/openai-go/v3/option" ) const ( diff --git a/providers/openai/openai_test.go b/providers/openai/openai_test.go index 5551ac33ca5df6a5733b4c11baa51138d78e41d4..c08d5dbcb4f59c494b0ef87bda2caf9b6fa85dca 100644 --- a/providers/openai/openai_test.go +++ b/providers/openai/openai_test.go @@ -11,7 +11,7 @@ import ( "testing" "charm.land/fantasy" - "github.com/openai/openai-go/v2/packages/param" + "github.com/openai/openai-go/v3/packages/param" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/providers/openai/provider_options.go b/providers/openai/provider_options.go index adb02fbd135af77239092ba1b25e254329e0efcf..504d61d4c3e27755cb55a9463c7b73d26894deeb 100644 --- a/providers/openai/provider_options.go +++ b/providers/openai/provider_options.go @@ -5,7 +5,7 @@ import ( "encoding/json" "charm.land/fantasy" - "github.com/openai/openai-go/v2" + "github.com/openai/openai-go/v3" ) // ReasoningEffort represents the reasoning effort level for OpenAI models. diff --git a/providers/openai/responses_language_model.go b/providers/openai/responses_language_model.go index 702832b35808728435ffd8be4a5eccd1b32ead8e..4fade0d3e3d8138447bc4e6fe3d2f7ca9da5e03a 100644 --- a/providers/openai/responses_language_model.go +++ b/providers/openai/responses_language_model.go @@ -12,10 +12,10 @@ import ( "charm.land/fantasy/object" "charm.land/fantasy/schema" "github.com/google/uuid" - "github.com/openai/openai-go/v2" - "github.com/openai/openai-go/v2/packages/param" - "github.com/openai/openai-go/v2/responses" - "github.com/openai/openai-go/v2/shared" + "github.com/openai/openai-go/v3" + "github.com/openai/openai-go/v3/packages/param" + "github.com/openai/openai-go/v3/responses" + "github.com/openai/openai-go/v3/shared" ) const topLogprobsMax = 20 @@ -730,7 +730,7 @@ func (o responsesLanguageModel) Generate(ctx context.Context, call fantasy.Call) ProviderExecuted: false, ToolCallID: outputItem.CallID, ToolName: outputItem.Name, - Input: outputItem.Arguments, + Input: outputItem.Arguments.OfString, }) case "reasoning": @@ -899,7 +899,7 @@ func (o responsesLanguageModel) Stream(ctx context.Context, call fantasy.Call) ( Type: fantasy.StreamPartTypeToolCall, ID: done.Item.CallID, ToolCallName: done.Item.Name, - ToolCallInput: done.Item.Arguments, + ToolCallInput: done.Item.Arguments.OfString, }) { return } diff --git a/providers/openaicompat/language_model_hooks.go b/providers/openaicompat/language_model_hooks.go index 0aa721d5aa75a9996f7b11c7008d37f1c051199d..d11da4a1b1b09903df192fc74ce20339e5eb0c60 100644 --- a/providers/openaicompat/language_model_hooks.go +++ b/providers/openaicompat/language_model_hooks.go @@ -8,9 +8,9 @@ import ( "charm.land/fantasy" "charm.land/fantasy/providers/openai" - openaisdk "github.com/openai/openai-go/v2" - "github.com/openai/openai-go/v2/packages/param" - "github.com/openai/openai-go/v2/shared" + openaisdk "github.com/openai/openai-go/v3" + "github.com/openai/openai-go/v3/packages/param" + "github.com/openai/openai-go/v3/shared" ) const reasoningStartedCtx = "reasoning_started" diff --git a/providers/openaicompat/openaicompat.go b/providers/openaicompat/openaicompat.go index 1029676346e0b701fb7ac0660364a71a2119cd76..e7a2908158e19a2e77526e73fe88a183e4027e24 100644 --- a/providers/openaicompat/openaicompat.go +++ b/providers/openaicompat/openaicompat.go @@ -4,7 +4,7 @@ package openaicompat import ( "charm.land/fantasy" "charm.land/fantasy/providers/openai" - "github.com/openai/openai-go/v2/option" + "github.com/openai/openai-go/v3/option" ) type options struct { diff --git a/providers/openrouter/language_model_hooks.go b/providers/openrouter/language_model_hooks.go index 3390a075e3701413932409d587370bcf324ceb2f..072224693497028a1dd084287bab1b1428fda063 100644 --- a/providers/openrouter/language_model_hooks.go +++ b/providers/openrouter/language_model_hooks.go @@ -11,8 +11,8 @@ import ( "charm.land/fantasy/providers/anthropic" "charm.land/fantasy/providers/google" "charm.land/fantasy/providers/openai" - openaisdk "github.com/openai/openai-go/v2" - "github.com/openai/openai-go/v2/packages/param" + openaisdk "github.com/openai/openai-go/v3" + "github.com/openai/openai-go/v3/packages/param" ) const reasoningStartedCtx = "reasoning_started" diff --git a/providers/openrouter/openrouter.go b/providers/openrouter/openrouter.go index ed72e469d927411998a75de4df3297ba0e7139d4..d21290a598feae94a92137cf9553d97dc251a17d 100644 --- a/providers/openrouter/openrouter.go +++ b/providers/openrouter/openrouter.go @@ -6,7 +6,7 @@ import ( "charm.land/fantasy" "charm.land/fantasy/providers/openai" - "github.com/openai/openai-go/v2/option" + "github.com/openai/openai-go/v3/option" ) type options struct { diff --git a/providers/vercel/language_model_hooks.go b/providers/vercel/language_model_hooks.go index ef3d5cf63bbbfef17123a31d496b5d3156499a83..b39d01ea1f99902ab4e3e4cf9fea6ac48b06bf55 100644 --- a/providers/vercel/language_model_hooks.go +++ b/providers/vercel/language_model_hooks.go @@ -11,8 +11,8 @@ import ( "charm.land/fantasy/providers/anthropic" "charm.land/fantasy/providers/google" openaipkg "charm.land/fantasy/providers/openai" - openaisdk "github.com/openai/openai-go/v2" - "github.com/openai/openai-go/v2/packages/param" + openaisdk "github.com/openai/openai-go/v3" + "github.com/openai/openai-go/v3/packages/param" ) const reasoningStartedCtx = "reasoning_started" diff --git a/providers/vercel/vercel.go b/providers/vercel/vercel.go index 43712c1ac2209e91e1f029a584a285e432ea3d6d..79f31f1dfdbcbf830a61ad5bfc36f873bafad9a0 100644 --- a/providers/vercel/vercel.go +++ b/providers/vercel/vercel.go @@ -4,7 +4,7 @@ package vercel import ( "charm.land/fantasy" "charm.land/fantasy/providers/openai" - "github.com/openai/openai-go/v2/option" + "github.com/openai/openai-go/v3/option" ) type options struct {