diff --git a/src/api/providers/__tests__/openai.spec.ts b/src/api/providers/__tests__/openai.spec.ts index fc809819e8..86d57ab3f5 100644 --- a/src/api/providers/__tests__/openai.spec.ts +++ b/src/api/providers/__tests__/openai.spec.ts @@ -599,7 +599,7 @@ describe("OpenAiHandler", () => { stream: true, stream_options: { include_usage: true }, reasoning_effort: "medium", - temperature: 0.5, + temperature: undefined, // O3 models do not support deprecated max_tokens but do support max_completion_tokens max_completion_tokens: 32000, }), @@ -640,7 +640,7 @@ describe("OpenAiHandler", () => { stream: true, stream_options: { include_usage: true }, reasoning_effort: "medium", - temperature: 0.7, + temperature: undefined, }), {}, ) @@ -682,7 +682,7 @@ describe("OpenAiHandler", () => { { role: "user", content: "Hello!" }, ], reasoning_effort: "medium", - temperature: 0.3, + temperature: undefined, // O3 models do not support deprecated max_tokens but do support max_completion_tokens max_completion_tokens: 65536, // Using default maxTokens from o3Options }), @@ -712,7 +712,7 @@ describe("OpenAiHandler", () => { expect(mockCreate).toHaveBeenCalledWith( expect.objectContaining({ - temperature: 0, // Default temperature + temperature: undefined, // Temperature is not supported for O3 models }), {}, ) diff --git a/src/api/providers/openai.ts b/src/api/providers/openai.ts index b4f256f43a..f5e4e4c985 100644 --- a/src/api/providers/openai.ts +++ b/src/api/providers/openai.ts @@ -86,7 +86,7 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl const deepseekReasoner = modelId.includes("deepseek-reasoner") || enabledR1Format const ark = modelUrl.includes(".volces.com") - if (modelId.startsWith("o3-mini")) { + if (modelId.includes("o1") || modelId.includes("o3") || modelId.includes("o4")) { yield* this.handleO3FamilyMessage(modelId, systemPrompt, messages) return } @@ -306,7 +306,7 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl stream: true, ...(isGrokXAI ? {} : { stream_options: { include_usage: true } }), reasoning_effort: modelInfo.reasoningEffort, - temperature: this.options.modelTemperature ?? 0, + temperature: undefined, } // O3 family models do not support the deprecated max_tokens parameter @@ -331,7 +331,7 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl ...convertToOpenAiMessages(messages), ], reasoning_effort: modelInfo.reasoningEffort, - temperature: this.options.modelTemperature ?? 0, + temperature: undefined, } // O3 family models do not support the deprecated max_tokens parameter