From 2d7229d2b8acaf90f0366bf56527357af31c7e47 Mon Sep 17 00:00:00 2001 From: Jasper Hu Date: Fri, 18 Apr 2025 20:36:07 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=20OpenAI=20=E6=96=B0?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=20o3=20=E4=B8=8E=20o4-mini=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E9=80=82=E9=85=8D=E6=96=B0=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/client/platforms/openai.ts | 5 +++-- app/constant.ts | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/client/platforms/openai.ts b/app/client/platforms/openai.ts index c6f3fc425..4cad6bf94 100644 --- a/app/client/platforms/openai.ts +++ b/app/client/platforms/openai.ts @@ -198,7 +198,8 @@ export class ChatGPTApi implements LLMApi { const isDalle3 = _isDalle3(options.config.model); const isO1OrO3 = options.config.model.startsWith("o1") || - options.config.model.startsWith("o3"); + options.config.model.startsWith("o3") || + options.config.model.startsWith("o4-mini"); if (isDalle3) { const prompt = getMessageTextContent( options.messages.slice(-1)?.pop() as any, @@ -243,7 +244,7 @@ export class ChatGPTApi implements LLMApi { } // add max_tokens to vision model - if (visionModel) { + if (visionModel && !isO1OrO3) { requestPayload["max_tokens"] = Math.max(modelConfig.max_tokens, 4000); } } diff --git a/app/constant.ts b/app/constant.ts index 422c42629..9fcea1187 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -478,6 +478,8 @@ export const VISION_MODEL_REGEXES = [ /^dall-e-3$/, // Matches exactly "dall-e-3" /glm-4v/, /vl/i, + /o3/, + /o4-mini/, ]; export const EXCLUDE_VISION_MODEL_REGEXES = [/claude-3-5-haiku-20241022/]; @@ -516,6 +518,8 @@ const openaiModels = [ "o1-mini", "o1-preview", "o3-mini", + "o3", + "o4-mini", ]; const googleModels = [