Fix: Remove temperature parameter for Azure OpenAI reasoning models (#5116)

* Fix temperature parameter error for Azure OpenAI reasoning models

* Fix tests: Update O3 family model tests to expect temperature: undefined

- Updated failing tests in openai.spec.ts to expect temperature: undefined for O3 models
- This aligns with the PR changes that remove temperature parameter for Azure OpenAI o1, o3, and o4 models
- All 4 previously failing tests now pass

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
This commit is contained in:
ExactDoug 2025-06-25 18:23:45 -06:00 committed by GitHub
parent e559beee67
commit 889e92518b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 7 deletions

View file

@ -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
}),
{},
)

View file

@ -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