Merge pull request #1167 from RedwindA/feat/2.5-pro-thinkingBudget

Feat: 2.5-pro thinkingBudget
This commit is contained in:
Calcium-Ion
2025-06-06 01:25:13 +08:00
committed by GitHub

View File

@@ -57,22 +57,35 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest, info *relaycommon
} }
if model_setting.GetGeminiSettings().ThinkingAdapterEnabled { if model_setting.GetGeminiSettings().ThinkingAdapterEnabled {
if strings.HasSuffix(info.OriginModelName, "-thinking") { if strings.HasSuffix(info.OriginModelName, "-thinking") {
// 如果模型名以 gemini-2.5-pro 开头,不设置 ThinkingBudget // 硬编码不支持 ThinkingBudget 的旧模型
if strings.HasPrefix(info.OriginModelName, "gemini-2.5-pro") { unsupportedModels := []string{
geminiRequest.GenerationConfig.ThinkingConfig = &GeminiThinkingConfig{ "gemini-2.5-pro-preview-05-06",
IncludeThoughts: true, "gemini-2.5-pro-preview-03-25",
} }
} else {
budgetTokens := model_setting.GetGeminiSettings().ThinkingAdapterBudgetTokensPercentage * float64(geminiRequest.GenerationConfig.MaxOutputTokens) isUnsupported := false
if budgetTokens == 0 || budgetTokens > 24576 { for _, unsupportedModel := range unsupportedModels {
budgetTokens = 24576 if strings.HasPrefix(info.OriginModelName, unsupportedModel) {
} isUnsupported = true
geminiRequest.GenerationConfig.ThinkingConfig = &GeminiThinkingConfig{ break
ThinkingBudget: common.GetPointer(int(budgetTokens)), }
IncludeThoughts: true, }
}
} if isUnsupported {
geminiRequest.GenerationConfig.ThinkingConfig = &GeminiThinkingConfig{
IncludeThoughts: true,
}
} else {
budgetTokens := model_setting.GetGeminiSettings().ThinkingAdapterBudgetTokensPercentage * float64(geminiRequest.GenerationConfig.MaxOutputTokens)
if budgetTokens == 0 || budgetTokens > 24576 {
budgetTokens = 24576
}
geminiRequest.GenerationConfig.ThinkingConfig = &GeminiThinkingConfig{
ThinkingBudget: common.GetPointer(int(budgetTokens)),
IncludeThoughts: true,
}
}
} else if strings.HasSuffix(info.OriginModelName, "-nothinking") { } else if strings.HasSuffix(info.OriginModelName, "-nothinking") {
geminiRequest.GenerationConfig.ThinkingConfig = &GeminiThinkingConfig{ geminiRequest.GenerationConfig.ThinkingConfig = &GeminiThinkingConfig{
ThinkingBudget: common.GetPointer(0), ThinkingBudget: common.GetPointer(0),