feat(relay-gemini): conditionally set ThinkingBudget based on MaxOutputTokens

This commit is contained in:
CaIon
2025-06-21 17:51:13 +08:00
parent 50b4fc06f8
commit 6bb552128c

View File

@@ -133,11 +133,13 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest, info *relaycommon
IncludeThoughts: true, IncludeThoughts: true,
} }
} else { } else {
geminiRequest.GenerationConfig.ThinkingConfig = &GeminiThinkingConfig{
IncludeThoughts: true,
}
if geminiRequest.GenerationConfig.MaxOutputTokens > 0 {
budgetTokens := model_setting.GetGeminiSettings().ThinkingAdapterBudgetTokensPercentage * float64(geminiRequest.GenerationConfig.MaxOutputTokens) budgetTokens := model_setting.GetGeminiSettings().ThinkingAdapterBudgetTokensPercentage * float64(geminiRequest.GenerationConfig.MaxOutputTokens)
clampedBudget := clampThinkingBudget(modelName, int(budgetTokens)) clampedBudget := clampThinkingBudget(modelName, int(budgetTokens))
geminiRequest.GenerationConfig.ThinkingConfig = &GeminiThinkingConfig{ geminiRequest.GenerationConfig.ThinkingConfig.ThinkingBudget = common.GetPointer(clampedBudget)
ThinkingBudget: common.GetPointer(clampedBudget),
IncludeThoughts: true,
} }
} }
} else if strings.HasSuffix(modelName, "-nothinking") { } else if strings.HasSuffix(modelName, "-nothinking") {