From d1933075c30ef1ee980d829b5636351e1a54915b Mon Sep 17 00:00:00 2001 From: hkfires <10558748+hkfires@users.noreply.github.com> Date: Thu, 9 Oct 2025 16:35:08 +0800 Subject: [PATCH] Revert "feat(translator): Pass through imageConfig" --- .../openai/chat-completions/cli_openai_request.go | 10 ++-------- .../openai/chat-completions/gemini_openai_request.go | 8 +------- .../responses/gemini_openai-responses_request.go | 8 +------- 3 files changed, 4 insertions(+), 22 deletions(-) diff --git a/internal/translator/gemini-cli/openai/chat-completions/cli_openai_request.go b/internal/translator/gemini-cli/openai/chat-completions/cli_openai_request.go index 62231662..3d1152f5 100644 --- a/internal/translator/gemini-cli/openai/chat-completions/cli_openai_request.go +++ b/internal/translator/gemini-cli/openai/chat-completions/cli_openai_request.go @@ -79,20 +79,14 @@ func ConvertOpenAIRequestToGeminiCLI(modelName string, inputRawJSON []byte, _ bo out, _ = sjson.SetBytes(out, "request.generationConfig.topK", tkr.Num) } - // Image config passthrough (e.g., aspectRatio) - // If the input carries generationConfig.imageConfig, preserve it in the Gemini CLI request. - if imgCfg := gjson.GetBytes(rawJSON, "generationConfig.imageConfig"); imgCfg.Exists() && imgCfg.IsObject() { - out, _ = sjson.SetRawBytes(out, "request.generationConfig.imageConfig", []byte(imgCfg.Raw)) - } - - // OpenRouter-style image_config (snake_case) support + // OpenRouter-style image_config support // If the input uses top-level image_config.aspect_ratio, map it into request.generationConfig.imageConfig.aspectRatio. - if imgCfg := gjson.GetBytes(rawJSON, "image_config"); imgCfg.Exists() && imgCfg.IsObject() { if ar := imgCfg.Get("aspect_ratio"); ar.Exists() && ar.Type == gjson.String { out, _ = sjson.SetBytes(out, "request.generationConfig.imageConfig.aspectRatio", ar.Str) } } + // messages -> systemInstruction + contents messages := gjson.GetBytes(rawJSON, "messages") if messages.IsArray() { diff --git a/internal/translator/gemini/openai/chat-completions/gemini_openai_request.go b/internal/translator/gemini/openai/chat-completions/gemini_openai_request.go index 77ef7dfa..075d2b55 100644 --- a/internal/translator/gemini/openai/chat-completions/gemini_openai_request.go +++ b/internal/translator/gemini/openai/chat-completions/gemini_openai_request.go @@ -79,13 +79,7 @@ func ConvertOpenAIRequestToGemini(modelName string, inputRawJSON []byte, _ bool) out, _ = sjson.SetBytes(out, "generationConfig.topK", tkr.Num) } - // Image config passthrough (e.g., aspectRatio) - // If the input carries generationConfig.imageConfig, preserve it in the Gemini request. - if imgCfg := gjson.GetBytes(rawJSON, "generationConfig.imageConfig"); imgCfg.Exists() && imgCfg.IsObject() { - out, _ = sjson.SetRawBytes(out, "generationConfig.imageConfig", []byte(imgCfg.Raw)) - } - - // OpenRouter-style image_config (snake_case) support + // OpenRouter-style image_config support // If the input uses top-level image_config.aspect_ratio, map it into generationConfig.imageConfig.aspectRatio. if imgCfg := gjson.GetBytes(rawJSON, "image_config"); imgCfg.Exists() && imgCfg.IsObject() { if ar := imgCfg.Get("aspect_ratio"); ar.Exists() && ar.Type == gjson.String { diff --git a/internal/translator/gemini/openai/responses/gemini_openai-responses_request.go b/internal/translator/gemini/openai/responses/gemini_openai-responses_request.go index 3bc2ec98..842758ad 100644 --- a/internal/translator/gemini/openai/responses/gemini_openai-responses_request.go +++ b/internal/translator/gemini/openai/responses/gemini_openai-responses_request.go @@ -262,13 +262,7 @@ func ConvertOpenAIResponsesRequestToGemini(modelName string, inputRawJSON []byte } } - // Image config passthrough (e.g., aspectRatio) - // If the input carries generationConfig.imageConfig, preserve it in the Gemini request. - if imgCfg := root.Get("generationConfig.imageConfig"); imgCfg.Exists() && imgCfg.IsObject() { - out, _ = sjson.SetRaw(out, "generationConfig.imageConfig", imgCfg.Raw) - } - - // OpenRouter-style image_config (snake_case) support at top-level + // OpenRouter-style image_config support at top-level if imgCfg := root.Get("image_config"); imgCfg.Exists() && imgCfg.IsObject() { if ar := imgCfg.Get("aspect_ratio"); ar.Exists() && ar.Type == gjson.String { out, _ = sjson.Set(out, "generationConfig.imageConfig.aspectRatio", ar.String())