From d0bc8d17d135aded9555d0768bfe876d02c6ae8d Mon Sep 17 00:00:00 2001 From: "1808837298@qq.com" <1808837298@qq.com> Date: Thu, 27 Feb 2025 22:10:29 +0800 Subject: [PATCH] feat: Enhance Claude MaxTokens configuration handling - Update Claude relay to set default MaxTokens dynamically - Modify web interface to clarify default MaxTokens input purpose - Improve token configuration logic for thinking adapter models --- relay/channel/claude/relay-claude.go | 10 ++++------ web/src/pages/Setting/Model/SettingClaudeModel.js | 3 ++- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/relay/channel/claude/relay-claude.go b/relay/channel/claude/relay-claude.go index a6d39f5f0..3b62a742a 100644 --- a/relay/channel/claude/relay-claude.go +++ b/relay/channel/claude/relay-claude.go @@ -94,11 +94,12 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*ClaudeR Tools: claudeTools, } + if claudeRequest.MaxTokens == 0 { + claudeRequest.MaxTokens = uint(model_setting.GetClaudeSettings().ThinkingAdapterMaxTokens) + } + if model_setting.GetClaudeSettings().ThinkingAdapterEnabled && strings.HasSuffix(textRequest.Model, "-thinking") { - if claudeRequest.MaxTokens == 0 { - claudeRequest.MaxTokens = uint(model_setting.GetClaudeSettings().ThinkingAdapterMaxTokens) - } // 因为BudgetTokens 必须大于1024 if claudeRequest.MaxTokens < 1280 { @@ -117,9 +118,6 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*ClaudeR claudeRequest.Model = strings.TrimSuffix(textRequest.Model, "-thinking") } - if claudeRequest.MaxTokens == 0 { - claudeRequest.MaxTokens = 4096 - } if textRequest.Stop != nil { // stop maybe string/array string, convert to array string switch textRequest.Stop.(type) { diff --git a/web/src/pages/Setting/Model/SettingClaudeModel.js b/web/src/pages/Setting/Model/SettingClaudeModel.js index 93c66b43d..2198ce23c 100644 --- a/web/src/pages/Setting/Model/SettingClaudeModel.js +++ b/web/src/pages/Setting/Model/SettingClaudeModel.js @@ -122,9 +122,10 @@ export default function SettingClaudeModel(props) { setInputs({ ...inputs, 'claude.thinking_adapter_max_tokens': value })} />