diff --git a/controller/channel.go b/controller/channel.go index afc6600e7..b0dd22861 100644 --- a/controller/channel.go +++ b/controller/channel.go @@ -13,6 +13,7 @@ import ( "github.com/QuantumNous/new-api/constant" "github.com/QuantumNous/new-api/dto" "github.com/QuantumNous/new-api/model" + relaychannel "github.com/QuantumNous/new-api/relay/channel" "github.com/QuantumNous/new-api/relay/channel/gemini" "github.com/QuantumNous/new-api/relay/channel/ollama" "github.com/QuantumNous/new-api/service" @@ -183,6 +184,9 @@ func buildFetchModelsHeaders(channel *model.Channel, key string) (http.Header, e headerOverride := channel.GetHeaderOverride() for k, v := range headerOverride { + if relaychannel.IsHeaderPassthroughRuleKey(k) { + continue + } str, ok := v.(string) if !ok { return nil, fmt.Errorf("invalid header override for key %s", k) diff --git a/relay/channel/api_request.go b/relay/channel/api_request.go index c00dc1a69..8dfb61d40 100644 --- a/relay/channel/api_request.go +++ b/relay/channel/api_request.go @@ -100,6 +100,9 @@ func getHeaderPassthroughRegex(pattern string) (*regexp.Regexp, error) { return compiled, nil } +func IsHeaderPassthroughRuleKey(key string) bool { + return isHeaderPassthroughRuleKey(key) +} func isHeaderPassthroughRuleKey(key string) bool { key = strings.TrimSpace(key) if key == "" {