From 09c339953dd08b4fec070b5a6434266631eaa5ba Mon Sep 17 00:00:00 2001 From: hkfires <10558748+hkfires@users.noreply.github.com> Date: Sun, 14 Dec 2025 20:30:26 +0800 Subject: [PATCH] fix(openai): forward reasoning.effort value Drop the hardcoded effort mapping in request conversion so unknown values are preserved instead of being coerced to `auto --- .../openai_openai-responses_request.go | 21 ++++--------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/internal/translator/openai/openai/responses/openai_openai-responses_request.go b/internal/translator/openai/openai/responses/openai_openai-responses_request.go index 8bac0485..f8bcb7b1 100644 --- a/internal/translator/openai/openai/responses/openai_openai-responses_request.go +++ b/internal/translator/openai/openai/responses/openai_openai-responses_request.go @@ -2,6 +2,7 @@ package responses import ( "bytes" + "strings" "github.com/tidwall/gjson" "github.com/tidwall/sjson" @@ -189,23 +190,9 @@ func ConvertOpenAIResponsesRequestToOpenAIChatCompletions(modelName string, inpu } if reasoningEffort := root.Get("reasoning.effort"); reasoningEffort.Exists() { - switch reasoningEffort.String() { - case "none": - out, _ = sjson.Set(out, "reasoning_effort", "none") - case "auto": - out, _ = sjson.Set(out, "reasoning_effort", "auto") - case "minimal": - out, _ = sjson.Set(out, "reasoning_effort", "minimal") - case "low": - out, _ = sjson.Set(out, "reasoning_effort", "low") - case "medium": - out, _ = sjson.Set(out, "reasoning_effort", "medium") - case "high": - out, _ = sjson.Set(out, "reasoning_effort", "high") - case "xhigh": - out, _ = sjson.Set(out, "reasoning_effort", "xhigh") - default: - out, _ = sjson.Set(out, "reasoning_effort", "auto") + effort := strings.ToLower(strings.TrimSpace(reasoningEffort.String())) + if effort != "" { + out, _ = sjson.Set(out, "reasoning_effort", effort) } }