From 61e3309cd2da72c78001f6ca717d3e7250035635 Mon Sep 17 00:00:00 2001 From: suyao Date: Mon, 21 Jul 2025 14:20:33 +0800 Subject: [PATCH] fix: conditionally enable reasoning middleware for OpenAI and Azure providers - Added a check to enable the 'thinking-tag-extraction' middleware only if reasoning is enabled in the configuration for OpenAI and Azure providers. - Commented out the provider type check in `getAiSdkProviderId` to prevent issues with retrieving provider options. --- .../middleware/aisdk/AiSdkMiddlewareBuilder.ts | 12 +++++++----- src/renderer/src/aiCore/provider/factory.ts | 7 ++++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/renderer/src/aiCore/middleware/aisdk/AiSdkMiddlewareBuilder.ts b/src/renderer/src/aiCore/middleware/aisdk/AiSdkMiddlewareBuilder.ts index 0f18d4e195..6397d51e7b 100644 --- a/src/renderer/src/aiCore/middleware/aisdk/AiSdkMiddlewareBuilder.ts +++ b/src/renderer/src/aiCore/middleware/aisdk/AiSdkMiddlewareBuilder.ts @@ -146,11 +146,13 @@ function addProviderSpecificMiddlewares(builder: AiSdkMiddlewareBuilder, config: break case 'openai': case 'azure-openai': { - const tagName = config.model?.id.includes('gemini') ? tagNameArray[1] : tagNameArray[0] - builder.add({ - name: 'thinking-tag-extraction', - middleware: extractReasoningMiddleware({ tagName }) - }) + if (config.enableReasoning) { + const tagName = config.model?.id.includes('gemini') ? tagNameArray[1] : tagNameArray[0] + builder.add({ + name: 'thinking-tag-extraction', + middleware: extractReasoningMiddleware({ tagName }) + }) + } break } case 'gemini': diff --git a/src/renderer/src/aiCore/provider/factory.ts b/src/renderer/src/aiCore/provider/factory.ts index 2711df003f..9fe9804a2a 100644 --- a/src/renderer/src/aiCore/provider/factory.ts +++ b/src/renderer/src/aiCore/provider/factory.ts @@ -26,9 +26,10 @@ export function getAiSdkProviderId(provider: Provider): ProviderId | 'openai-com if (AiCore.isSupported(provider.id)) { return provider.id as ProviderId } - if (AiCore.isSupported(provider.type)) { - return provider.type as ProviderId - } + // 先注释掉,会影响获取providerOptions + // if (AiCore.isSupported(provider.type)) { + // return provider.type as ProviderId + // } return provider.id as ProviderId }