From e7bf3bea7c252c5e1e6c93b09c6708e42fad4925 Mon Sep 17 00:00:00 2001 From: shlomo hershkop Date: Thu, 30 Apr 2026 21:35:35 -0400 Subject: [PATCH] Fix GPT-5 chat failures by stripping unsupported sampling params for reasoning models MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reasoning models (o1, o3, o4, gpt-5) reject frequency_penalty, presence_penalty, top_p, stop, and n. Clear these in the isReasoningModel branch so they aren't sent to the API. Also fix gpt-5-mini cost typo (0.25 - 6 → 0.25e-6). Fixes #531 --- packages/core/src/model/nodes/ChatNodeBase.ts | 6 ++++++ packages/core/src/utils/openai.ts | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/core/src/model/nodes/ChatNodeBase.ts b/packages/core/src/model/nodes/ChatNodeBase.ts index 06df5157c..873abee7a 100644 --- a/packages/core/src/model/nodes/ChatNodeBase.ts +++ b/packages/core/src/model/nodes/ChatNodeBase.ts @@ -1119,6 +1119,12 @@ export const ChatNodeBase = { if (isReasoningModel) { options.max_completion_tokens = maxTokens; + // Reasoning models (o1, o3, o4, gpt-5) don't support sampling parameters + options.top_p = undefined; + options.frequency_penalty = undefined; + options.presence_penalty = undefined; + options.stop = undefined; + options.n = undefined; } else { options.temperature = useTopP ? undefined : temperature; // Not supported in o1-preview options.max_tokens = maxTokens; diff --git a/packages/core/src/utils/openai.ts b/packages/core/src/utils/openai.ts index add544a0e..915234b15 100644 --- a/packages/core/src/utils/openai.ts +++ b/packages/core/src/utils/openai.ts @@ -39,7 +39,7 @@ export const openaiModels = { 'gpt-5-mini': { maxTokens: 400000, cost: { - prompt: 0.25 - 6, + prompt: 0.25e-6, completion: 2e-6, }, displayName: 'GPT-5 mini',