From c7b67d5840e41d658b903eb5aa5d5c6f72ea5ce9 Mon Sep 17 00:00:00 2001 From: hobokenchicken Date: Thu, 5 Mar 2026 17:59:49 +0000 Subject: [PATCH] fix(deepseek): add more exhaustive sanitation for deepseek-reasoner R1 model does not support presence_penalty, frequency_penalty, logit_bias, logprobs, or top_logprobs. Added these to the list of stripped parameters. --- src/providers/deepseek.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/providers/deepseek.rs b/src/providers/deepseek.rs index e7bff573..3cfb3225 100644 --- a/src/providers/deepseek.rs +++ b/src/providers/deepseek.rs @@ -66,6 +66,11 @@ impl super::Provider for DeepSeekProvider { obj.remove("tool_choice"); obj.remove("temperature"); obj.remove("top_p"); + obj.remove("presence_penalty"); + obj.remove("frequency_penalty"); + obj.remove("logit_bias"); + obj.remove("logprobs"); + obj.remove("top_logprobs"); } } @@ -129,11 +134,16 @@ impl super::Provider for DeepSeekProvider { if request.model == "deepseek-reasoner" { if let Some(obj) = body.as_object_mut() { obj.remove("stream_options"); - // Also does not support tools/temperature/top_p + // Also does not support these parameters obj.remove("tools"); obj.remove("tool_choice"); obj.remove("temperature"); obj.remove("top_p"); + obj.remove("presence_penalty"); + obj.remove("frequency_penalty"); + obj.remove("logit_bias"); + obj.remove("logprobs"); + obj.remove("top_logprobs"); } } else { // For standard deepseek-chat, keep it clean