feat: Refactor model handling to use UpstreamModelName for request processing

This commit is contained in:
CaIon
2025-08-11 17:32:58 +08:00
parent dddf772f19
commit 53fa7255ec

View File

@@ -256,34 +256,34 @@ func (a *Adaptor) ConvertOpenAIRequest(c *gin.Context, info *relaycommon.RelayIn
} }
} }
} }
if strings.HasPrefix(request.Model, "o") || strings.HasPrefix(request.Model, "gpt-5") { if strings.HasPrefix(info.UpstreamModelName, "o") || strings.HasPrefix(info.UpstreamModelName, "gpt-5") {
if request.MaxCompletionTokens == 0 && request.MaxTokens != 0 { if request.MaxCompletionTokens == 0 && request.MaxTokens != 0 {
request.MaxCompletionTokens = request.MaxTokens request.MaxCompletionTokens = request.MaxTokens
request.MaxTokens = 0 request.MaxTokens = 0
} }
if strings.HasPrefix(request.Model, "o") { if strings.HasPrefix(info.UpstreamModelName, "o") {
request.Temperature = nil request.Temperature = nil
} }
if strings.HasPrefix(request.Model, "gpt-5") { if strings.HasPrefix(info.UpstreamModelName, "gpt-5") {
if request.Model != "gpt-5-chat-latest" { if info.UpstreamModelName != "gpt-5-chat-latest" {
request.Temperature = nil request.Temperature = nil
} }
} }
// 转换模型推理力度后缀 // 转换模型推理力度后缀
effort, originModel := parseReasoningEffortFromModelSuffix(request.Model) effort, originModel := parseReasoningEffortFromModelSuffix(info.UpstreamModelName)
if effort != "" { if effort != "" {
request.ReasoningEffort = effort request.ReasoningEffort = effort
info.UpstreamModelName = originModel
request.Model = originModel request.Model = originModel
} }
info.ReasoningEffort = request.ReasoningEffort info.ReasoningEffort = request.ReasoningEffort
info.UpstreamModelName = request.Model
// o系列模型developer适配o1-mini除外 // o系列模型developer适配o1-mini除外
if !strings.HasPrefix(request.Model, "o1-mini") && !strings.HasPrefix(request.Model, "o1-preview") { if !strings.HasPrefix(info.UpstreamModelName, "o1-mini") && !strings.HasPrefix(info.UpstreamModelName, "o1-preview") {
//修改第一个Message的内容将system改为developer //修改第一个Message的内容将system改为developer
if len(request.Messages) > 0 && request.Messages[0].Role == "system" { if len(request.Messages) > 0 && request.Messages[0].Role == "system" {
request.Messages[0].Role = "developer" request.Messages[0].Role = "developer"