Clamp Claude maxOutputTokens to 64000

This commit is contained in:
song
2026-01-23 10:44:21 +08:00
parent 207e09500a
commit 3002c7a17f

View File

@@ -490,9 +490,23 @@ func parseToolResultContent(content json.RawMessage, isError bool) string {
} }
// buildGenerationConfig 构建 generationConfig // buildGenerationConfig 构建 generationConfig
const (
defaultMaxOutputTokens = 64000
maxOutputTokensUpperBound = 65000
maxOutputTokensClaude = 64000
)
func maxOutputTokensLimit(model string) int {
if strings.HasPrefix(model, "claude-") {
return maxOutputTokensClaude
}
return maxOutputTokensUpperBound
}
func buildGenerationConfig(req *ClaudeRequest) *GeminiGenerationConfig { func buildGenerationConfig(req *ClaudeRequest) *GeminiGenerationConfig {
maxLimit := maxOutputTokensLimit(req.Model)
config := &GeminiGenerationConfig{ config := &GeminiGenerationConfig{
MaxOutputTokens: 64000, // 默认最大输出 MaxOutputTokens: defaultMaxOutputTokens, // 默认最大输出
StopSequences: DefaultStopSequences, StopSequences: DefaultStopSequences,
} }
@@ -516,6 +530,10 @@ func buildGenerationConfig(req *ClaudeRequest) *GeminiGenerationConfig {
} }
} }
if config.MaxOutputTokens > maxLimit {
config.MaxOutputTokens = maxLimit
}
// 其他参数 // 其他参数
if req.Temperature != nil { if req.Temperature != nil {
config.Temperature = req.Temperature config.Temperature = req.Temperature