diff --git a/common/config/config.go b/common/config/config.go index a235a8df..591943ff 100644 --- a/common/config/config.go +++ b/common/config/config.go @@ -164,3 +164,6 @@ var UserContentRequestTimeout = env.Int("USER_CONTENT_REQUEST_TIMEOUT", 30) var EnforceIncludeUsage = env.Bool("ENFORCE_INCLUDE_USAGE", false) var TestPrompt = env.String("TEST_PROMPT", "Output only your specific model name with no additional text.") + +// OpenrouterProviderSort is used to determine the order of the providers in the openrouter +var OpenrouterProviderSort = env.String("OPENROUTER_PROVIDER_SORT", "") diff --git a/relay/adaptor/openai/adaptor.go b/relay/adaptor/openai/adaptor.go index 03bd3c91..4e44e21b 100644 --- a/relay/adaptor/openai/adaptor.go +++ b/relay/adaptor/openai/adaptor.go @@ -94,12 +94,13 @@ func (a *Adaptor) ConvertRequest(c *gin.Context, relayMode int, request *model.G case channeltype.OpenRouter: includeReasoning := true request.IncludeReasoning = &includeReasoning - if request.Provider == nil || request.Provider.Sort == "" { + if request.Provider == nil || request.Provider.Sort == "" && + config.OpenrouterProviderSort != "" { if request.Provider == nil { request.Provider = &openrouter.RequestProvider{} } - request.Provider.Sort = "throughput" + request.Provider.Sort = config.OpenrouterProviderSort } default: }