mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-07 08:26:51 +00:00
feat: hardcode temperature to 1 for GPT-5 models
- Set temperature to 1 for all GPT-5 model variants (gpt-5, gpt-5-mini, gpt-5-nano) - Added comprehensive tests to verify temperature hardcoding - Ensures consistent behavior for GPT-5 models as requested
This commit is contained in:
parent
ad0e33e2d9
commit
d8092e35dc
2 changed files with 137 additions and 0 deletions
|
|
@ -885,4 +885,136 @@ describe("getModelParams", () => {
|
|||
expect(result.reasoningBudget).toBe(8192) // Default thinking tokens
|
||||
})
|
||||
})
|
||||
|
||||
describe("GPT-5 temperature hardcoding", () => {
|
||||
it("should hardcode temperature to 1 for gpt-5 models", () => {
|
||||
const model: ModelInfo = {
|
||||
...baseModel,
|
||||
}
|
||||
|
||||
const result = getModelParams({
|
||||
modelId: "gpt-5-2025-08-07",
|
||||
format: "openai" as const,
|
||||
settings: { modelTemperature: 0.5 }, // User setting should be overridden
|
||||
model,
|
||||
})
|
||||
|
||||
expect(result.temperature).toBe(1)
|
||||
})
|
||||
|
||||
it("should hardcode temperature to 1 for gpt-5-mini models", () => {
|
||||
const model: ModelInfo = {
|
||||
...baseModel,
|
||||
}
|
||||
|
||||
const result = getModelParams({
|
||||
modelId: "gpt-5-mini-2025-08-07",
|
||||
format: "openai" as const,
|
||||
settings: { modelTemperature: 0.7 }, // User setting should be overridden
|
||||
model,
|
||||
})
|
||||
|
||||
expect(result.temperature).toBe(1)
|
||||
})
|
||||
|
||||
it("should hardcode temperature to 1 for gpt-5-nano models", () => {
|
||||
const model: ModelInfo = {
|
||||
...baseModel,
|
||||
}
|
||||
|
||||
const result = getModelParams({
|
||||
modelId: "gpt-5-nano-2025-08-07",
|
||||
format: "openai" as const,
|
||||
settings: { modelTemperature: 0.3 }, // User setting should be overridden
|
||||
model,
|
||||
})
|
||||
|
||||
expect(result.temperature).toBe(1)
|
||||
})
|
||||
|
||||
it("should hardcode temperature to 1 even when no temperature is specified for gpt-5", () => {
|
||||
const model: ModelInfo = {
|
||||
...baseModel,
|
||||
}
|
||||
|
||||
const result = getModelParams({
|
||||
modelId: "gpt-5-2025-08-07",
|
||||
format: "openai" as const,
|
||||
settings: {}, // No temperature specified
|
||||
model,
|
||||
defaultTemperature: 0.2, // Default should also be overridden
|
||||
})
|
||||
|
||||
expect(result.temperature).toBe(1)
|
||||
})
|
||||
|
||||
it("should not hardcode temperature for non-gpt-5 openai models", () => {
|
||||
const model: ModelInfo = {
|
||||
...baseModel,
|
||||
}
|
||||
|
||||
const result = getModelParams({
|
||||
modelId: "gpt-4-turbo",
|
||||
format: "openai" as const,
|
||||
settings: { modelTemperature: 0.5 },
|
||||
model,
|
||||
})
|
||||
|
||||
expect(result.temperature).toBe(0.5)
|
||||
})
|
||||
|
||||
it("should not hardcode temperature for gpt-5 models in non-openai format", () => {
|
||||
const model: ModelInfo = {
|
||||
...baseModel,
|
||||
}
|
||||
|
||||
const result = getModelParams({
|
||||
modelId: "gpt-5-2025-08-07",
|
||||
format: "openrouter" as const,
|
||||
settings: { modelTemperature: 0.5 },
|
||||
model,
|
||||
})
|
||||
|
||||
expect(result.temperature).toBe(0.5) // Should not be hardcoded for openrouter
|
||||
})
|
||||
|
||||
it("should hardcode temperature for gpt-5 with reasoning effort", () => {
|
||||
const model: ModelInfo = {
|
||||
...baseModel,
|
||||
supportsReasoningEffort: true,
|
||||
}
|
||||
|
||||
const result = getModelParams({
|
||||
modelId: "gpt-5-2025-08-07",
|
||||
format: "openai" as const,
|
||||
settings: {
|
||||
modelTemperature: 0.5,
|
||||
reasoningEffort: "high",
|
||||
},
|
||||
model,
|
||||
})
|
||||
|
||||
expect(result.temperature).toBe(1)
|
||||
expect(result.reasoningEffort).toBe("high")
|
||||
})
|
||||
|
||||
it("should hardcode temperature for gpt-5 with verbosity settings", () => {
|
||||
const model: ModelInfo = {
|
||||
...baseModel,
|
||||
}
|
||||
|
||||
const result = getModelParams({
|
||||
modelId: "gpt-5-2025-08-07",
|
||||
format: "openai" as const,
|
||||
settings: {
|
||||
modelTemperature: 0.5,
|
||||
verbosity: "high",
|
||||
},
|
||||
model,
|
||||
})
|
||||
|
||||
expect(result.temperature).toBe(1)
|
||||
expect(result.verbosity).toBe("high")
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -146,6 +146,11 @@ export function getModelParams({
|
|||
params.temperature = undefined
|
||||
}
|
||||
|
||||
// Hardcode temperature to 1 for GPT-5 models
|
||||
if (modelId.startsWith("gpt-5")) {
|
||||
params.temperature = 1
|
||||
}
|
||||
|
||||
return {
|
||||
format,
|
||||
...params,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue