diff --git a/internal/config/config.go b/internal/config/config.go index 1115c1578a0d01d5b62ec57ea05fbea0527f46f2..898f51b51da31e3bf504ef15b7d57ec8b6e71036 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -909,12 +909,12 @@ func (c *Config) Resolver() VariableResolver { return c.resolver } -func (c *ProviderConfig) TestConnection(resolver VariableResolver) error { +func (pc *ProviderConfig) TestConnection(resolver VariableResolver) error { var ( - providerID = catwalk.InferenceProvider(c.ID) + providerID = catwalk.InferenceProvider(pc.ID) testURL = "" headers = make(map[string]string) - apiKey, _ = resolver.ResolveValue(c.APIKey) + apiKey, _ = resolver.ResolveValue(pc.APIKey) ) switch providerID { @@ -922,14 +922,14 @@ func (c *ProviderConfig) TestConnection(resolver VariableResolver) error { // NOTE: MiniMax has no good endpoint we can use to validate the API key. // Let's at least check the pattern. if !strings.HasPrefix(apiKey, "sk-") { - return fmt.Errorf("invalid API key format for provider %s", c.ID) + return fmt.Errorf("invalid API key format for provider %s", pc.ID) } return nil } - switch c.Type { + switch pc.Type { case catwalk.TypeOpenAI, catwalk.TypeOpenAICompat, catwalk.TypeOpenRouter: - baseURL, _ := resolver.ResolveValue(c.BaseURL) + baseURL, _ := resolver.ResolveValue(pc.BaseURL) baseURL = cmp.Or(baseURL, "https://api.openai.com/v1") switch providerID { @@ -941,7 +941,7 @@ func (c *ProviderConfig) TestConnection(resolver VariableResolver) error { headers["Authorization"] = "Bearer " + apiKey case catwalk.TypeAnthropic: - baseURL, _ := resolver.ResolveValue(c.BaseURL) + baseURL, _ := resolver.ResolveValue(pc.BaseURL) baseURL = cmp.Or(baseURL, "https://api.anthropic.com/v1") switch providerID { @@ -954,7 +954,7 @@ func (c *ProviderConfig) TestConnection(resolver VariableResolver) error { headers["x-api-key"] = apiKey headers["anthropic-version"] = "2023-06-01" case catwalk.TypeGoogle: - baseURL, _ := resolver.ResolveValue(c.BaseURL) + baseURL, _ := resolver.ResolveValue(pc.BaseURL) baseURL = cmp.Or(baseURL, "https://generativelanguage.googleapis.com") testURL = baseURL + "/v1beta/models?key=" + url.QueryEscape(apiKey) } @@ -965,29 +965,29 @@ func (c *ProviderConfig) TestConnection(resolver VariableResolver) error { client := &http.Client{} req, err := http.NewRequestWithContext(ctx, "GET", testURL, nil) if err != nil { - return fmt.Errorf("failed to create request for provider %s: %w", c.ID, err) + return fmt.Errorf("failed to create request for provider %s: %w", pc.ID, err) } for k, v := range headers { req.Header.Set(k, v) } - for k, v := range c.ExtraHeaders { + for k, v := range pc.ExtraHeaders { req.Header.Set(k, v) } resp, err := client.Do(req) if err != nil { - return fmt.Errorf("failed to create request for provider %s: %w", c.ID, err) + return fmt.Errorf("failed to create request for provider %s: %w", pc.ID, err) } defer resp.Body.Close() switch providerID { case catwalk.InferenceProviderZAI: if resp.StatusCode == http.StatusUnauthorized { - return fmt.Errorf("failed to connect to provider %s: %s", c.ID, resp.Status) + return fmt.Errorf("failed to connect to provider %s: %s", pc.ID, resp.Status) } default: if resp.StatusCode != http.StatusOK { - return fmt.Errorf("failed to connect to provider %s: %s", c.ID, resp.Status) + return fmt.Errorf("failed to connect to provider %s: %s", pc.ID, resp.Status) } } return nil