Explorar el Código

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

CaIon hace 6 meses
padre
commit
6bb552128c
Se han modificado 1 ficheros con 5 adiciones y 3 borrados
  1. 5 3
      relay/channel/gemini/relay-gemini.go

+ 5 - 3
relay/channel/gemini/relay-gemini.go

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