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
This commit is contained in:
SuYao 2025-05-04 01:04:38 +08:00 committed by GitHub
parent 1111696aab
commit 7456c55974
2 changed files with 5 additions and 4 deletions

View File

@ -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))
}
}
}

View File

@ -42,7 +42,7 @@ export type EffortRatio = Record<ReasoningEffortOptions, number>
export const EFFORT_RATIO: EffortRatio = {
low: 0.2,
medium: 0.5,
high: 1,
high: 0.8,
auto: 2
}