@@ -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