mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-06 08:18:39 +00:00
Allow models to contain default temperature (#9734)
This commit is contained in:
parent
b2b4f6411f
commit
d2b274a9af
5 changed files with 100 additions and 1 deletions
|
|
@ -38,6 +38,7 @@ export const RooModelSchema = z.object({
|
|||
tags: z.array(z.string()).optional(),
|
||||
pricing: RooPricingSchema,
|
||||
deprecated: z.boolean().optional(),
|
||||
default_temperature: z.number().optional(),
|
||||
})
|
||||
|
||||
export const RooModelsResponseSchema = z.object({
|
||||
|
|
|
|||
|
|
@ -478,4 +478,69 @@ describe("getRooModels", () => {
|
|||
"Failed to fetch Roo Code Cloud models: No response from server",
|
||||
)
|
||||
})
|
||||
|
||||
it("should parse default_temperature from API response", async () => {
|
||||
const mockResponse = {
|
||||
object: "list",
|
||||
data: [
|
||||
{
|
||||
id: "test/model-with-temp",
|
||||
object: "model",
|
||||
created: 1234567890,
|
||||
owned_by: "test",
|
||||
name: "Model with Default Temperature",
|
||||
description: "Model with custom default temperature",
|
||||
context_window: 128000,
|
||||
max_tokens: 8192,
|
||||
type: "language",
|
||||
pricing: {
|
||||
input: "0.0001",
|
||||
output: "0.0002",
|
||||
},
|
||||
default_temperature: 0.6,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
mockFetch.mockResolvedValueOnce({
|
||||
ok: true,
|
||||
json: async () => mockResponse,
|
||||
})
|
||||
|
||||
const models = await getRooModels(baseUrl, apiKey)
|
||||
|
||||
expect(models["test/model-with-temp"].defaultTemperature).toBe(0.6)
|
||||
})
|
||||
|
||||
it("should handle models without default_temperature", async () => {
|
||||
const mockResponse = {
|
||||
object: "list",
|
||||
data: [
|
||||
{
|
||||
id: "test/model-no-temp",
|
||||
object: "model",
|
||||
created: 1234567890,
|
||||
owned_by: "test",
|
||||
name: "Model without Default Temperature",
|
||||
description: "Model without custom default temperature",
|
||||
context_window: 128000,
|
||||
max_tokens: 8192,
|
||||
type: "language",
|
||||
pricing: {
|
||||
input: "0.0001",
|
||||
output: "0.0002",
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
mockFetch.mockResolvedValueOnce({
|
||||
ok: true,
|
||||
json: async () => mockResponse,
|
||||
})
|
||||
|
||||
const models = await getRooModels(baseUrl, apiKey)
|
||||
|
||||
expect(models["test/model-no-temp"].defaultTemperature).toBeUndefined()
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -132,6 +132,7 @@ export async function getRooModels(baseUrl: string, apiKey?: string): Promise<Mo
|
|||
description: model.description || model.name,
|
||||
deprecated: model.deprecated || false,
|
||||
isFree: tags.includes("free"),
|
||||
defaultTemperature: model.default_temperature,
|
||||
}
|
||||
|
||||
// Apply model-specific defaults (e.g., defaultToolProtocol)
|
||||
|
|
|
|||
|
|
@ -87,6 +87,38 @@ describe("getModelParams", () => {
|
|||
expect(result.temperature).toBe(0.5)
|
||||
})
|
||||
|
||||
it("should use model defaultTemperature over provider defaultTemperature", () => {
|
||||
const modelWithDefaultTemp: ModelInfo = {
|
||||
...baseModel,
|
||||
defaultTemperature: 0.8,
|
||||
}
|
||||
|
||||
const result = getModelParams({
|
||||
...anthropicParams,
|
||||
settings: {},
|
||||
model: modelWithDefaultTemp,
|
||||
defaultTemperature: 0.5,
|
||||
})
|
||||
|
||||
expect(result.temperature).toBe(0.8)
|
||||
})
|
||||
|
||||
it("should prefer settings temperature over model defaultTemperature", () => {
|
||||
const modelWithDefaultTemp: ModelInfo = {
|
||||
...baseModel,
|
||||
defaultTemperature: 0.8,
|
||||
}
|
||||
|
||||
const result = getModelParams({
|
||||
...anthropicParams,
|
||||
settings: { modelTemperature: 0.3 },
|
||||
model: modelWithDefaultTemp,
|
||||
defaultTemperature: 0.5,
|
||||
})
|
||||
|
||||
expect(result.temperature).toBe(0.3)
|
||||
})
|
||||
|
||||
it("should use model maxTokens when available", () => {
|
||||
const model: ModelInfo = {
|
||||
...baseModel,
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ export function getModelParams({
|
|||
format,
|
||||
})
|
||||
|
||||
let temperature = customTemperature ?? defaultTemperature
|
||||
let temperature = customTemperature ?? model.defaultTemperature ?? defaultTemperature
|
||||
let reasoningBudget: ModelParams["reasoningBudget"] = undefined
|
||||
let reasoningEffort: ModelParams["reasoningEffort"] = undefined
|
||||
let verbosity: VerbosityLevel | undefined = customVerbosity
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue