Handle 'n' parameter for candidate count in requests

Added handling for the 'n' parameter to set candidate count in generationConfig.
This commit is contained in:
extremk
2026-01-10 18:48:33 +08:00
committed by GitHub
parent 6448d0ee7c
commit 14c74e5e84

View File

@@ -99,6 +99,13 @@ func ConvertOpenAIRequestToGemini(modelName string, inputRawJSON []byte, _ bool)
out, _ = sjson.SetBytes(out, "generationConfig.topK", tkr.Num) out, _ = sjson.SetBytes(out, "generationConfig.topK", tkr.Num)
} }
// Candidate count (OpenAI 'n' parameter)
if n := gjson.GetBytes(rawJSON, "n"); n.Exists() && n.Type == gjson.Number {
if val := n.Int(); val > 1 {
out, _ = sjson.SetBytes(out, "generationConfig.candidateCount", val)
}
}
// Map OpenAI modalities -> Gemini generationConfig.responseModalities // Map OpenAI modalities -> Gemini generationConfig.responseModalities
// e.g. "modalities": ["image", "text"] -> ["IMAGE", "TEXT"] // e.g. "modalities": ["image", "text"] -> ["IMAGE", "TEXT"]
if mods := gjson.GetBytes(rawJSON, "modalities"); mods.Exists() && mods.IsArray() { if mods := gjson.GetBytes(rawJSON, "modalities"); mods.Exists() && mods.IsArray() {