From 175d18963472c20e4b2a7c49054466683119be25 Mon Sep 17 00:00:00 2001 From: SuYao Date: Sun, 27 Apr 2025 15:10:01 +0800 Subject: [PATCH] fix(OpenAIProvider): refine system message handling for specific model IDs (#5397) * fix(OpenAIProvider): refine system message handling for specific model IDs * refactor(OpenAIProvider): introduce OPENAI_NO_SUPPORT_DEV_ROLE_MODELS for model ID checks --- src/renderer/src/config/models.ts | 4 +++- src/renderer/src/providers/AiProvider/OpenAIProvider.ts | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/renderer/src/config/models.ts b/src/renderer/src/config/models.ts index 8049298197..78ce1c01d2 100644 --- a/src/renderer/src/config/models.ts +++ b/src/renderer/src/config/models.ts @@ -2168,6 +2168,8 @@ export const GEMINI_SEARCH_MODELS = [ 'gemini-2.5-flash-preview-04-17' ] +export const OPENAI_NO_SUPPORT_DEV_ROLE_MODELS = ['o1-preview', 'o1-mini'] + export const PERPLEXITY_SEARCH_MODELS = ['sonar-pro', 'sonar', 'sonar-reasoning', 'sonar-reasoning-pro'] export function isTextToImageModel(model: Model): boolean { @@ -2202,7 +2204,7 @@ export function isVisionModel(model: Model): boolean { if (!model) { return false } - // 新添字段 copilot-vision-request 后可使用 vision + // 新添字段 copilot-vision-request 后可使用 vision // if (model.provider === 'copilot') { // return false // } diff --git a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts index eff887e8ae..131b168a54 100644 --- a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts +++ b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts @@ -8,7 +8,8 @@ import { isReasoningModel, isSupportedModel, isVisionModel, - isZhipuModel + isZhipuModel, + OPENAI_NO_SUPPORT_DEV_ROLE_MODELS } from '@renderer/config/models' import { getStoreSetting } from '@renderer/hooks/useSettings' import i18n from '@renderer/i18n' @@ -317,7 +318,7 @@ export default class OpenAIProvider extends BaseProvider { const { contextCount, maxTokens, streamOutput } = getAssistantSettings(assistant) messages = addImageFileToContents(messages) let systemMessage = { role: 'system', content: assistant.prompt || '' } - if (isOpenAIoSeries(model)) { + if (isOpenAIoSeries(model) && !OPENAI_NO_SUPPORT_DEV_ROLE_MODELS.includes(model.id)) { systemMessage = { role: 'developer', content: `Formatting re-enabled${systemMessage ? '\n' + systemMessage.content : ''}`