Skip to content

Commit a13f80f

Browse files
authored
Merge pull request #1168 from RedwindA/fix/2.5-pro-128
Fix: 更新2.5 pro的思考预算范围
2 parents b0a5d01 + f812257 commit a13f80f

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

relay/channel/gemini/relay-gemini.go

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,17 +78,42 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest, info *relaycommon
7878
}
7979
} else {
8080
budgetTokens := model_setting.GetGeminiSettings().ThinkingAdapterBudgetTokensPercentage * float64(geminiRequest.GenerationConfig.MaxOutputTokens)
81-
if budgetTokens == 0 || budgetTokens > 24576 {
82-
budgetTokens = 24576
81+
82+
// 检查是否为新的2.5pro模型(支持ThinkingBudget但有特殊范围)
83+
isNew25Pro := strings.HasPrefix(info.OriginModelName, "gemini-2.5-pro") &&
84+
!strings.HasPrefix(info.OriginModelName, "gemini-2.5-pro-preview-05-06") &&
85+
!strings.HasPrefix(info.OriginModelName, "gemini-2.5-pro-preview-03-25")
86+
87+
if isNew25Pro {
88+
// 新的2.5pro模型:ThinkingBudget范围为128-32768
89+
if budgetTokens == 0 || budgetTokens < 128 {
90+
budgetTokens = 128
91+
} else if budgetTokens > 32768 {
92+
budgetTokens = 32768
93+
}
94+
} else {
95+
// 其他模型:ThinkingBudget范围为0-24576
96+
if budgetTokens == 0 || budgetTokens > 24576 {
97+
budgetTokens = 24576
98+
}
8399
}
100+
84101
geminiRequest.GenerationConfig.ThinkingConfig = &GeminiThinkingConfig{
85102
ThinkingBudget: common.GetPointer(int(budgetTokens)),
86103
IncludeThoughts: true,
87104
}
88105
}
89106
} else if strings.HasSuffix(info.OriginModelName, "-nothinking") {
90-
geminiRequest.GenerationConfig.ThinkingConfig = &GeminiThinkingConfig{
91-
ThinkingBudget: common.GetPointer(0),
107+
// 检查是否为新的2.5pro模型(不支持-nothinking,因为最低值只能为128)
108+
isNew25Pro := strings.HasPrefix(info.OriginModelName, "gemini-2.5-pro") &&
109+
!strings.HasPrefix(info.OriginModelName, "gemini-2.5-pro-preview-05-06") &&
110+
!strings.HasPrefix(info.OriginModelName, "gemini-2.5-pro-preview-03-25")
111+
112+
if !isNew25Pro {
113+
// 只有非新2.5pro模型才支持-nothinking
114+
geminiRequest.GenerationConfig.ThinkingConfig = &GeminiThinkingConfig{
115+
ThinkingBudget: common.GetPointer(0),
116+
}
92117
}
93118
}
94119
}

0 commit comments

Comments
 (0)