Merge pull request #352 from charmbracelet/fix_providers

Kujtim Hoxha created

chore: fix custom headers and system prefix

Change summary

internal/config/load.go            | 21 +++++++++++----------
internal/llm/provider/anthropic.go |  4 ++--
2 files changed, 13 insertions(+), 12 deletions(-)

Detailed changes

internal/config/load.go 🔗

@@ -145,16 +145,17 @@ func (c *Config) configureProviders(env env.Env, resolver VariableResolver, know
 			maps.Copy(headers, config.ExtraHeaders)
 		}
 		prepared := ProviderConfig{
-			ID:           string(p.ID),
-			Name:         p.Name,
-			BaseURL:      p.APIEndpoint,
-			APIKey:       p.APIKey,
-			Type:         p.Type,
-			Disable:      config.Disable,
-			ExtraHeaders: headers,
-			ExtraBody:    config.ExtraBody,
-			ExtraParams:  make(map[string]string),
-			Models:       p.Models,
+			ID:                 string(p.ID),
+			Name:               p.Name,
+			BaseURL:            p.APIEndpoint,
+			APIKey:             p.APIKey,
+			Type:               p.Type,
+			Disable:            config.Disable,
+			SystemPromptPrefix: config.SystemPromptPrefix,
+			ExtraHeaders:       headers,
+			ExtraBody:          config.ExtraBody,
+			ExtraParams:        make(map[string]string),
+			Models:             p.Models,
 		}
 
 		switch p.ID {

internal/llm/provider/anthropic.go 🔗

@@ -70,8 +70,8 @@ func createAnthropicClient(opts providerClientOptions, useBedrock bool) anthropi
 	if useBedrock {
 		anthropicClientOptions = append(anthropicClientOptions, bedrock.WithLoadDefaultConfig(context.Background()))
 	}
-	for _, header := range opts.extraHeaders {
-		anthropicClientOptions = append(anthropicClientOptions, option.WithHeaderAdd(header, opts.extraHeaders[header]))
+	for key, header := range opts.extraHeaders {
+		anthropicClientOptions = append(anthropicClientOptions, option.WithHeaderAdd(key, header))
 	}
 	for key, value := range opts.extraBody {
 		anthropicClientOptions = append(anthropicClientOptions, option.WithJSONSet(key, value))