From 783bdc40a6ddd8f7b2272affa51799a3d6265e04 Mon Sep 17 00:00:00 2001 From: SuYao Date: Mon, 19 May 2025 17:34:35 +0800 Subject: [PATCH] Hotfix/gemini-para-bug (#6173) * fix(OpenAIProvider): enhance model support and formatting logic * fix(OpenAIProvider): Gemini OpenAI Compatible --- .../providers/AiProvider/OpenAIProvider.ts | 23 +++++++------------ .../AiProvider/OpenAIResponseProvider.ts | 3 ++- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts index 51690fe791..7740065c43 100644 --- a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts +++ b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts @@ -266,10 +266,7 @@ export default class OpenAIProvider extends BaseOpenAIProvider { return { reasoning: { maxTokens: 0, exclude: true } } } return { - thinkingConfig: { - includeThoughts: false, - thinkingBudget: 0 - } + reasoning_effort: 'none' } } @@ -315,7 +312,7 @@ export default class OpenAIProvider extends BaseOpenAIProvider { } // OpenAI models - if (isSupportedReasoningEffortOpenAIModel(model)) { + if (isSupportedReasoningEffortOpenAIModel(model) || isSupportedThinkingTokenGeminiModel(model)) { return { reasoning_effort: assistant?.settings?.reasoning_effort } @@ -332,16 +329,6 @@ export default class OpenAIProvider extends BaseOpenAIProvider { } } - // Gemini models - if (isSupportedThinkingTokenGeminiModel(model)) { - return { - thinkingConfig: { - thinkingBudget: budgetTokens, - includeThoughts: true - } - } - } - // Default case: no special thinking settings return {} } @@ -395,6 +382,12 @@ export default class OpenAIProvider extends BaseOpenAIProvider { content: `Formatting re-enabled${systemMessage ? '\n' + systemMessage.content : ''}` } } + if (model.id.includes('o1-preview') || model.id.includes('o1-mini')) { + systemMessage = { + role: 'assistant', + content: `Formatting re-enabled${systemMessage ? '\n' + systemMessage.content : ''}` + } + } const { tools } = this.setupToolsConfig({ mcpTools, model, diff --git a/src/renderer/src/providers/AiProvider/OpenAIResponseProvider.ts b/src/renderer/src/providers/AiProvider/OpenAIResponseProvider.ts index 2c70fbc557..e261784452 100644 --- a/src/renderer/src/providers/AiProvider/OpenAIResponseProvider.ts +++ b/src/renderer/src/providers/AiProvider/OpenAIResponseProvider.ts @@ -290,6 +290,7 @@ export abstract class BaseOpenAIProvider extends BaseProvider { } const defaultModel = getDefaultModel() const model = assistant.model || defaultModel + const { contextCount, maxTokens, streamOutput } = getAssistantSettings(assistant) const isEnabledBuiltinWebSearch = assistant.enableWebSearch @@ -1138,7 +1139,7 @@ export default class OpenAIResponseProvider extends BaseOpenAIProvider { } private getProvider(model: Model): BaseOpenAIProvider { - if (isOpenAIWebSearch(model)) { + if (isOpenAIWebSearch(model) || model.id.includes('o1-preview') || model.id.includes('o1-mini')) { return this.providers.get('openai-compatible')! } else { return this