diff --git a/plugins/wasm-go/extensions/ai-proxy/config/config.go b/plugins/wasm-go/extensions/ai-proxy/config/config.go index 48f08dd9e4..f0b820345a 100644 --- a/plugins/wasm-go/extensions/ai-proxy/config/config.go +++ b/plugins/wasm-go/extensions/ai-proxy/config/config.go @@ -80,13 +80,16 @@ func (c *PluginConfig) Complete(log wrapper.Log) error { c.activeProvider = nil return nil } + var err error + c.activeProvider, err = provider.CreateProvider(*c.activeProviderConfig) + if err != nil { + return err + } providerConfig := c.GetProviderConfig() - err = providerConfig.SetApiTokensFailover(log, c.activeProvider) - - return err + return providerConfig.SetApiTokensFailover(log, c.activeProvider) } func (c *PluginConfig) GetProvider() provider.Provider { diff --git a/plugins/wasm-go/extensions/ai-proxy/main.go b/plugins/wasm-go/extensions/ai-proxy/main.go index dc6bc123ce..fb3592fa07 100644 --- a/plugins/wasm-go/extensions/ai-proxy/main.go +++ b/plugins/wasm-go/extensions/ai-proxy/main.go @@ -40,9 +40,11 @@ func parseGlobalConfig(json gjson.Result, pluginConfig *config.PluginConfig, log pluginConfig.FromJson(json) if err := pluginConfig.Validate(); err != nil { + log.Errorf("global rule config is invalid: %v", err) return err } if err := pluginConfig.Complete(log); err != nil { + log.Errorf("failed to apply global rule config: %v", err) return err } @@ -56,9 +58,11 @@ func parseOverrideRuleConfig(json gjson.Result, global config.PluginConfig, plug pluginConfig.FromJson(json) if err := pluginConfig.Validate(); err != nil { + log.Errorf("overriden rule config is invalid: %v", err) return err } if err := pluginConfig.Complete(log); err != nil { + log.Errorf("failed to apply overriden rule config: %v", err) return err } diff --git a/plugins/wasm-go/extensions/ai-proxy/provider/openai.go b/plugins/wasm-go/extensions/ai-proxy/provider/openai.go index 0a170347f5..2def57aa62 100644 --- a/plugins/wasm-go/extensions/ai-proxy/provider/openai.go +++ b/plugins/wasm-go/extensions/ai-proxy/provider/openai.go @@ -2,7 +2,6 @@ package provider import ( "encoding/json" - "fmt" "net/http" "path" "strings" @@ -58,10 +57,10 @@ func (m *openaiProviderInitializer) CreateProvider(config ProviderConfig) (Provi } customUrl := strings.TrimPrefix(strings.TrimPrefix(config.openaiCustomUrl, "http://"), "https://") pairs := strings.SplitN(customUrl, "/", 2) - if len(pairs) != 2 { - return nil, fmt.Errorf("invalid openaiCustomUrl:%s", config.openaiCustomUrl) + customPath := "/" + if len(pairs) == 2 { + customPath += pairs[1] } - customPath := "/" + pairs[1] isDirectCustomPath := isDirectPath(customPath) capabilities := m.DefaultCapabilities() if !isDirectCustomPath {