diff --git a/README.md b/README.md index 7d3f7145c..d0a6b409d 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ English / [简体中文](./README_CN.md) [![MacOS][MacOS-image]][download-url] [![Linux][Linux-image]][download-url] -[NextChatAI](https://nextchat.club?utm_source=readme) / [Web App Demo](https://app.nextchat.dev) / [Desktop App](https://github.com/Yidadaa/ChatGPT-Next-Web/releases) / [Discord](https://discord.gg/YCkeafCafC) / [Enterprise Edition](#enterprise-edition) / [Twitter](https://twitter.com/NextChatDev) +[NextChatAI](https://nextchat.club?utm_source=readme) / [iOS APP](https://apps.apple.com/us/app/nextchat-ai/id6743085599) / [Web App Demo](https://app.nextchat.dev) / [Desktop App](https://github.com/Yidadaa/ChatGPT-Next-Web/releases) / [Enterprise Edition](#enterprise-edition) [saas-url]: https://nextchat.club?utm_source=readme @@ -40,13 +40,14 @@ English / [简体中文](./README_CN.md) -## 🥳 Cheer for DeepSeek, China's AI star! - > Purpose-Built UI for DeepSeek Reasoner Model +## 🥳 Cheer for NextChat iOS Version Online! +> [👉 Click Here to Install Now](https://apps.apple.com/us/app/nextchat-ai/id6743085599) + +> [❤️ Source Code Coming Soon](https://github.com/ChatGPTNextWeb/NextChat-iOS) + +![Github iOS Image](https://github.com/user-attachments/assets/e0aa334f-4c13-4dc9-8310-e3b09fa4b9f3) + - - - - ## 🫣 NextChat Support MCP ! > Before build, please set env ENABLE_MCP=true 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 374662abb..db8940cd3 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -429,6 +429,14 @@ export const KnowledgeCutOffDate: Record = { "gpt-4-turbo": "2023-12", "gpt-4-turbo-2024-04-09": "2023-12", "gpt-4-turbo-preview": "2023-12", + "gpt-4.1": "2024-06", + "gpt-4.1-2025-04-14": "2024-06", + "gpt-4.1-mini": "2024-06", + "gpt-4.1-mini-2025-04-14": "2024-06", + "gpt-4.1-nano": "2024-06", + "gpt-4.1-nano-2025-04-14": "2024-06", + "gpt-4.5-preview": "2023-10", + "gpt-4.5-preview-2025-02-27": "2023-10", "gpt-4o": "2023-10", "gpt-4o-2024-05-13": "2023-10", "gpt-4o-2024-08-06": "2023-10", @@ -470,6 +478,7 @@ export const DEFAULT_TTS_VOICES = [ export const VISION_MODEL_REGEXES = [ /vision/, /gpt-4o/, + /gpt-4\.1/, /claude-3/, /gemini-1\.5/, /gemini-exp/, @@ -483,6 +492,8 @@ export const VISION_MODEL_REGEXES = [ /nova-lite/, /nova-pro/, /vl/i, + /o3/, + /o4-mini/, ]; export const EXCLUDE_VISION_MODEL_REGEXES = [/claude-3-5-haiku-20241022/]; @@ -499,6 +510,14 @@ const openaiModels = [ "gpt-4-32k-0613", "gpt-4-turbo", "gpt-4-turbo-preview", + "gpt-4.1", + "gpt-4.1-2025-04-14", + "gpt-4.1-mini", + "gpt-4.1-mini-2025-04-14", + "gpt-4.1-nano", + "gpt-4.1-nano-2025-04-14", + "gpt-4.5-preview", + "gpt-4.5-preview-2025-02-27", "gpt-4o", "gpt-4o-2024-05-13", "gpt-4o-2024-08-06", @@ -513,6 +532,8 @@ const openaiModels = [ "o1-mini", "o1-preview", "o3-mini", + "o3", + "o4-mini", ]; const bedrockModels = [