diff --git a/src/renderer/src/aiCore/prepareParams/modelParameters.ts b/src/renderer/src/aiCore/prepareParams/modelParameters.ts index 6f78ac2cc4..ed3f4fa210 100644 --- a/src/renderer/src/aiCore/prepareParams/modelParameters.ts +++ b/src/renderer/src/aiCore/prepareParams/modelParameters.ts @@ -4,6 +4,7 @@ */ import { + isClaude45ReasoningModel, isClaudeReasoningModel, isNotSupportTemperatureAndTopP, isSupportedFlexServiceTier @@ -19,7 +20,10 @@ export function getTemperature(assistant: Assistant, model: Model): number | und if (assistant.settings?.reasoning_effort && isClaudeReasoningModel(model)) { return undefined } - if (isNotSupportTemperatureAndTopP(model)) { + if ( + isNotSupportTemperatureAndTopP(model) || + (isClaude45ReasoningModel(model) && assistant.settings?.enableTopP && !assistant.settings?.enableTemperature) + ) { return undefined } const assistantSettings = getAssistantSettings(assistant) @@ -33,7 +37,10 @@ export function getTopP(assistant: Assistant, model: Model): number | undefined if (assistant.settings?.reasoning_effort && isClaudeReasoningModel(model)) { return undefined } - if (isNotSupportTemperatureAndTopP(model)) { + if ( + isNotSupportTemperatureAndTopP(model) || + (isClaude45ReasoningModel(model) && assistant.settings?.enableTemperature) + ) { return undefined } const assistantSettings = getAssistantSettings(assistant) diff --git a/src/renderer/src/config/models/reasoning.ts b/src/renderer/src/config/models/reasoning.ts index f9dc2ca5c9..890700c745 100644 --- a/src/renderer/src/config/models/reasoning.ts +++ b/src/renderer/src/config/models/reasoning.ts @@ -342,6 +342,12 @@ export function isSupportedThinkingTokenDoubaoModel(model?: Model): boolean { return DOUBAO_THINKING_MODEL_REGEX.test(modelId) || DOUBAO_THINKING_MODEL_REGEX.test(model.name) } +export function isClaude45ReasoningModel(model: Model): boolean { + const modelId = getLowerBaseModelName(model.id, '/') + const regex = /claude-(sonnet|opus|haiku)-4(-|.)5(?:-[\w-]+)?$/i + return regex.test(modelId) +} + export function isClaudeReasoningModel(model?: Model): boolean { if (!model) { return false