diff --git a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts index 43d7a42103..d951f6144d 100644 --- a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts +++ b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts @@ -1,3 +1,4 @@ +import { DEFAULT_MAX_TOKENS } from '@renderer/config/constant' import { findTokenLimit, getOpenAIWebSearchParams, @@ -283,14 +284,13 @@ export default class OpenAIProvider extends BaseProvider { const budgetTokens = Math.floor((findTokenLimit(model.id)?.max || 0) * effortRatio) // OpenRouter models if (model.provider === 'openrouter') { - if (isSupportedReasoningEffortModel(model)) { + if (isSupportedReasoningEffortModel(model) || isSupportedThinkingTokenClaudeModel(model)) { return { reasoning: { effort: assistant?.settings?.reasoning_effort } } } - if (isSupportedThinkingTokenModel(model)) { return { reasoning: { @@ -323,11 +323,12 @@ export default class OpenAIProvider extends BaseProvider { } // Claude models + const { maxTokens } = getAssistantSettings(assistant) if (isSupportedThinkingTokenClaudeModel(model)) { return { thinking: { type: 'enabled', - budget_tokens: budgetTokens + budget_tokens: Math.floor(Math.max(Math.min(budgetTokens, maxTokens || DEFAULT_MAX_TOKENS), 1024)) } } } diff --git a/src/renderer/src/types/index.ts b/src/renderer/src/types/index.ts index 77e3dc37cf..8e1b7ecab9 100644 --- a/src/renderer/src/types/index.ts +++ b/src/renderer/src/types/index.ts @@ -42,7 +42,7 @@ export type EffortRatio = Record export const EFFORT_RATIO: EffortRatio = { low: 0.2, medium: 0.5, - high: 1, + high: 0.8, auto: 2 }