diff --git a/src/api/providers/__tests__/openai.spec.ts b/src/api/providers/__tests__/openai.spec.ts index 73b542dbc73..e4bd4c7de1c 100644 --- a/src/api/providers/__tests__/openai.spec.ts +++ b/src/api/providers/__tests__/openai.spec.ts @@ -632,7 +632,7 @@ describe("OpenAiHandler", () => { ], stream: true, stream_options: { include_usage: true }, - temperature: 0, + temperature: undefined, tools: undefined, tool_choice: undefined, parallel_tool_calls: true, diff --git a/src/api/providers/openai.ts b/src/api/providers/openai.ts index 33b29abcafe..2aec02c7f6d 100644 --- a/src/api/providers/openai.ts +++ b/src/api/providers/openai.ts @@ -154,7 +154,8 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl const requestOptions: OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming = { model: modelId, - temperature: this.options.modelTemperature ?? (deepseekReasoner ? DEEP_SEEK_DEFAULT_TEMPERATURE : 0), + temperature: + this.options.modelTemperature ?? (deepseekReasoner ? DEEP_SEEK_DEFAULT_TEMPERATURE : undefined), messages: convertedMessages, stream: true as const, ...(isGrokXAI ? {} : { stream_options: { include_usage: true } }), @@ -287,7 +288,7 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl modelId: id, model: info, settings: this.options, - defaultTemperature: 0, + defaultTemperature: undefined, }) return { id, info, ...params } } diff --git a/src/api/transform/__tests__/model-params.spec.ts b/src/api/transform/__tests__/model-params.spec.ts index a50f1291bef..48bca1b609f 100644 --- a/src/api/transform/__tests__/model-params.spec.ts +++ b/src/api/transform/__tests__/model-params.spec.ts @@ -123,6 +123,17 @@ describe("getModelParams", () => { expect(result.temperature).toBe(0.3) }) + it("should return undefined temperature when defaultTemperature is undefined and no user/model temperature", () => { + const result = getModelParams({ + ...openaiParams, + settings: {}, + model: baseModel, + defaultTemperature: undefined, + }) + + expect(result.temperature).toBeUndefined() + }) + it("should use model maxTokens when available", () => { const model: ModelInfo = { ...baseModel, diff --git a/src/api/transform/model-params.ts b/src/api/transform/model-params.ts index ac04bce37de..8f7885580a5 100644 --- a/src/api/transform/model-params.ts +++ b/src/api/transform/model-params.ts @@ -33,7 +33,7 @@ type GetModelParamsOptions = { modelId: string model: ModelInfo settings: ProviderSettings - defaultTemperature: number + defaultTemperature: number | undefined } type BaseModelParams = {