From 7456c559741bdc769fed60947e15adaff2f521f9 Mon Sep 17 00:00:00 2001 From: SuYao Date: Sun, 4 May 2025 01:04:38 +0800 Subject: [PATCH] fix(OpenAIProvider): enhance token budget calculation in OpenRouter (#5625) * fix(OpenAIProvider): enhance token budget calculation in OpenRouter * fix(OpenAIProvider): update budget token calculation and adjust effort ratio for improved reasoning support --- src/renderer/src/providers/AiProvider/OpenAIProvider.ts | 7 ++++--- src/renderer/src/types/index.ts | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) 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 }