From 08bed8c20dcc59b117ba935449157002ba8582b5 Mon Sep 17 00:00:00 2001 From: Joshua Mo <102877324+joshua-mo-143@users.noreply.github.com> Date: Wed, 12 Feb 2025 18:25:36 +0000 Subject: [PATCH] fix: o3-mini doesn't support temperature (#266) * fix: o3-mini doesn't support temperature * fix: only add temperature if it exists --- rig-core/src/providers/openai.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/rig-core/src/providers/openai.rs b/rig-core/src/providers/openai.rs index 01c9114c..49795894 100644 --- a/rig-core/src/providers/openai.rs +++ b/rig-core/src/providers/openai.rs @@ -901,18 +901,30 @@ impl completion::CompletionModel for CompletionModel { json!({ "model": self.model, "messages": full_history, - "temperature": completion_request.temperature, + }) } else { json!({ "model": self.model, "messages": full_history, - "temperature": completion_request.temperature, "tools": completion_request.tools.into_iter().map(ToolDefinition::from).collect::>(), "tool_choice": "auto", }) }; + // only include temperature if it exists + // because some models don't support temperature + let request = if let Some(temperature) = completion_request.temperature { + json_utils::merge( + request, + json!({ + "temperature": temperature, + }), + ) + } else { + request + }; + let response = self .client .post("/chat/completions")