From a6cba25bc1ac4720304790db4b08572d2fae9299 Mon Sep 17 00:00:00 2001 From: N1GHT Date: Tue, 20 Jan 2026 17:34:26 +0100 Subject: [PATCH 1/3] Small fix to filter out Top_P when Temperature is set on Claude to make requests go through --- internal/translator/claude/gemini/claude_gemini_request.go | 4 +--- .../claude/openai/chat-completions/claude_openai_request.go | 5 +---- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/internal/translator/claude/gemini/claude_gemini_request.go b/internal/translator/claude/gemini/claude_gemini_request.go index 32f2d847..4ca3f4a7 100644 --- a/internal/translator/claude/gemini/claude_gemini_request.go +++ b/internal/translator/claude/gemini/claude_gemini_request.go @@ -98,9 +98,7 @@ func ConvertGeminiRequestToClaude(modelName string, inputRawJSON []byte, stream // Temperature setting for controlling response randomness if temp := genConfig.Get("temperature"); temp.Exists() { out, _ = sjson.Set(out, "temperature", temp.Float()) - } - // Top P setting for nucleus sampling - if topP := genConfig.Get("topP"); topP.Exists() { + } else if topP := genConfig.Get("topP"); topP.Exists() { out, _ = sjson.Set(out, "top_p", topP.Float()) } // Stop sequences configuration for custom termination conditions diff --git a/internal/translator/claude/openai/chat-completions/claude_openai_request.go b/internal/translator/claude/openai/chat-completions/claude_openai_request.go index 79dc9c90..526593c6 100644 --- a/internal/translator/claude/openai/chat-completions/claude_openai_request.go +++ b/internal/translator/claude/openai/chat-completions/claude_openai_request.go @@ -110,10 +110,7 @@ func ConvertOpenAIRequestToClaude(modelName string, inputRawJSON []byte, stream // Temperature setting for controlling response randomness if temp := root.Get("temperature"); temp.Exists() { out, _ = sjson.Set(out, "temperature", temp.Float()) - } - - // Top P setting for nucleus sampling - if topP := root.Get("top_p"); topP.Exists() { + } else if topP := root.Get("top_p"); topP.Exists() { out, _ = sjson.Set(out, "top_p", topP.Float()) } From d81abd401c9f7b56d6b90062c39c3cc9f5716e69 Mon Sep 17 00:00:00 2001 From: N1GHT Date: Tue, 20 Jan 2026 17:36:27 +0100 Subject: [PATCH 2/3] Returned the Code Comment I trashed --- internal/translator/claude/gemini/claude_gemini_request.go | 4 +++- .../claude/openai/chat-completions/claude_openai_request.go | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/internal/translator/claude/gemini/claude_gemini_request.go b/internal/translator/claude/gemini/claude_gemini_request.go index 4ca3f4a7..1f25117a 100644 --- a/internal/translator/claude/gemini/claude_gemini_request.go +++ b/internal/translator/claude/gemini/claude_gemini_request.go @@ -98,7 +98,9 @@ func ConvertGeminiRequestToClaude(modelName string, inputRawJSON []byte, stream // Temperature setting for controlling response randomness if temp := genConfig.Get("temperature"); temp.Exists() { out, _ = sjson.Set(out, "temperature", temp.Float()) - } else if topP := genConfig.Get("topP"); topP.Exists() { + } + // Top P setting for nucleus sampling (filtered out if temperature is set) + if topP := genConfig.Get("topP"); topP.Exists() && !genConfig.Get("temperature").Exists() { out, _ = sjson.Set(out, "top_p", topP.Float()) } // Stop sequences configuration for custom termination conditions diff --git a/internal/translator/claude/openai/chat-completions/claude_openai_request.go b/internal/translator/claude/openai/chat-completions/claude_openai_request.go index 526593c6..5b71ce70 100644 --- a/internal/translator/claude/openai/chat-completions/claude_openai_request.go +++ b/internal/translator/claude/openai/chat-completions/claude_openai_request.go @@ -110,7 +110,10 @@ func ConvertOpenAIRequestToClaude(modelName string, inputRawJSON []byte, stream // Temperature setting for controlling response randomness if temp := root.Get("temperature"); temp.Exists() { out, _ = sjson.Set(out, "temperature", temp.Float()) - } else if topP := root.Get("top_p"); topP.Exists() { + } + + // Top P setting for nucleus sampling (filtered out if temperature is set) + if topP := root.Get("top_p"); topP.Exists() && !root.Get("temperature").Exists() { out, _ = sjson.Set(out, "top_p", topP.Float()) } From 09970dc7af60d429f7f52cbf3bf52ea7ee801d4e Mon Sep 17 00:00:00 2001 From: N1GHT Date: Tue, 20 Jan 2026 17:51:36 +0100 Subject: [PATCH 3/3] Accept Geminis Review Suggestion --- internal/translator/claude/gemini/claude_gemini_request.go | 5 ++--- .../claude/openai/chat-completions/claude_openai_request.go | 6 ++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/internal/translator/claude/gemini/claude_gemini_request.go b/internal/translator/claude/gemini/claude_gemini_request.go index 1f25117a..a26ac51a 100644 --- a/internal/translator/claude/gemini/claude_gemini_request.go +++ b/internal/translator/claude/gemini/claude_gemini_request.go @@ -98,9 +98,8 @@ func ConvertGeminiRequestToClaude(modelName string, inputRawJSON []byte, stream // Temperature setting for controlling response randomness if temp := genConfig.Get("temperature"); temp.Exists() { out, _ = sjson.Set(out, "temperature", temp.Float()) - } - // Top P setting for nucleus sampling (filtered out if temperature is set) - if topP := genConfig.Get("topP"); topP.Exists() && !genConfig.Get("temperature").Exists() { + } else if topP := genConfig.Get("topP"); topP.Exists() { + // Top P setting for nucleus sampling (filtered out if temperature is set) out, _ = sjson.Set(out, "top_p", topP.Float()) } // Stop sequences configuration for custom termination conditions diff --git a/internal/translator/claude/openai/chat-completions/claude_openai_request.go b/internal/translator/claude/openai/chat-completions/claude_openai_request.go index 5b71ce70..41274628 100644 --- a/internal/translator/claude/openai/chat-completions/claude_openai_request.go +++ b/internal/translator/claude/openai/chat-completions/claude_openai_request.go @@ -110,10 +110,8 @@ func ConvertOpenAIRequestToClaude(modelName string, inputRawJSON []byte, stream // Temperature setting for controlling response randomness if temp := root.Get("temperature"); temp.Exists() { out, _ = sjson.Set(out, "temperature", temp.Float()) - } - - // Top P setting for nucleus sampling (filtered out if temperature is set) - if topP := root.Get("top_p"); topP.Exists() && !root.Get("temperature").Exists() { + } else if topP := root.Get("top_p"); topP.Exists() { + // Top P setting for nucleus sampling (filtered out if temperature is set) out, _ = sjson.Set(out, "top_p", topP.Float()) }