From 9c05f35aa53ca4cf94e63320f7b01bce996410c1 Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Fri, 12 Dec 2025 17:38:04 +0800 Subject: [PATCH] fix: disable reasoning in translation by default - Add 'none' to ReasoningEffortOption type definition - Set reasoning_effort to 'none' in translation assistant settings - Update enableReasoning check to exclude 'none' value in parameterBuilder.ts - Update Qwen thinking middleware to properly disable thinking when reasoning_effort='none' - Ensure translation and other scenarios with reasoning_effort='none' correctly disable all reasoning features --- .../src/aiCore/middleware/AiSdkMiddlewareBuilder.ts | 4 +++- src/renderer/src/aiCore/prepareParams/parameterBuilder.ts | 6 +++--- src/renderer/src/services/AssistantService.ts | 5 +++-- src/renderer/src/types/index.ts | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/renderer/src/aiCore/middleware/AiSdkMiddlewareBuilder.ts b/src/renderer/src/aiCore/middleware/AiSdkMiddlewareBuilder.ts index 10a4d59384..bf3eed3d3e 100644 --- a/src/renderer/src/aiCore/middleware/AiSdkMiddlewareBuilder.ts +++ b/src/renderer/src/aiCore/middleware/AiSdkMiddlewareBuilder.ts @@ -244,7 +244,9 @@ function addModelSpecificMiddlewares(builder: AiSdkMiddlewareBuilder, config: Ai isSupportedThinkingTokenQwenModel(config.model) && !isSupportEnableThinkingProvider(config.provider) ) { - const enableThinking = config.assistant?.settings?.reasoning_effort !== undefined + const enableThinking = + config.assistant?.settings?.reasoning_effort !== undefined && + config.assistant?.settings?.reasoning_effort !== 'none' builder.add({ name: 'qwen-thinking-control', middleware: qwenThinkingMiddleware(enableThinking) diff --git a/src/renderer/src/aiCore/prepareParams/parameterBuilder.ts b/src/renderer/src/aiCore/prepareParams/parameterBuilder.ts index cba7fcdb10..03ed1399bf 100644 --- a/src/renderer/src/aiCore/prepareParams/parameterBuilder.ts +++ b/src/renderer/src/aiCore/prepareParams/parameterBuilder.ts @@ -103,11 +103,11 @@ export async function buildStreamTextParams( // 这三个变量透传出来,交给下面启用插件/中间件 // 也可以在外部构建好再传入buildStreamTextParams - // FIXME: qwen3即使关闭思考仍然会导致enableReasoning的结果为true const enableReasoning = ((isSupportedThinkingTokenModel(model) || isSupportedReasoningEffortModel(model)) && - assistant.settings?.reasoning_effort !== undefined) || - isFixedReasoningModel(model) + assistant.settings?.reasoning_effort !== undefined && + assistant.settings?.reasoning_effort !== 'none') || + (isFixedReasoningModel(model) && assistant.settings?.reasoning_effort !== 'none') // 判断是否使用内置搜索 // 条件:没有外部搜索提供商 && (用户开启了内置搜索 || 模型强制使用内置搜索) diff --git a/src/renderer/src/services/AssistantService.ts b/src/renderer/src/services/AssistantService.ts index 5ae3710e87..52b8a5d676 100644 --- a/src/renderer/src/services/AssistantService.ts +++ b/src/renderer/src/services/AssistantService.ts @@ -68,8 +68,9 @@ export function getDefaultTranslateAssistant(targetLanguage: TranslateLanguage, throw new Error('Unknown target language') } - const settings = { - temperature: 0.7 + const settings: Partial = { + temperature: 0.7, + reasoning_effort: 'none' } const getTranslateContent = (model: Model, text: string, targetLanguage: TranslateLanguage): string => { diff --git a/src/renderer/src/types/index.ts b/src/renderer/src/types/index.ts index 128d2be707..2fdfa3c4fa 100644 --- a/src/renderer/src/types/index.ts +++ b/src/renderer/src/types/index.ts @@ -105,7 +105,7 @@ const ThinkModelTypes = [ 'deepseek_hybrid' ] as const -export type ReasoningEffortOption = NonNullable | 'auto' +export type ReasoningEffortOption = NonNullable | 'auto' | 'none' export type ThinkingOption = ReasoningEffortOption export type ThinkingModelType = (typeof ThinkModelTypes)[number] export type ThinkingOptionConfig = Record