From da23ddb061a029bd51e321058183ada19f98cda9 Mon Sep 17 00:00:00 2001 From: hkfires <10558748+hkfires@users.noreply.github.com> Date: Tue, 9 Dec 2025 17:34:15 +0800 Subject: [PATCH] fix(gemini): normalize model listing output --- sdk/api/handlers/gemini/gemini_handlers.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/sdk/api/handlers/gemini/gemini_handlers.go b/sdk/api/handlers/gemini/gemini_handlers.go index 7ba72a93..6cd9ee62 100644 --- a/sdk/api/handlers/gemini/gemini_handlers.go +++ b/sdk/api/handlers/gemini/gemini_handlers.go @@ -48,8 +48,24 @@ func (h *GeminiAPIHandler) Models() []map[string]any { // GeminiModels handles the Gemini models listing endpoint. // It returns a JSON response containing available Gemini models and their specifications. func (h *GeminiAPIHandler) GeminiModels(c *gin.Context) { + rawModels := h.Models() + normalizedModels := make([]map[string]any, 0, len(rawModels)) + defaultMethods := []string{"generateContent"} + for _, model := range rawModels { + normalizedModel := make(map[string]any, len(model)) + for k, v := range model { + normalizedModel[k] = v + } + if name, ok := normalizedModel["name"].(string); ok && name != "" && !strings.HasPrefix(name, "models/") { + normalizedModel["name"] = "models/" + name + } + if _, ok := normalizedModel["supportedGenerationMethods"]; !ok { + normalizedModel["supportedGenerationMethods"] = defaultMethods + } + normalizedModels = append(normalizedModels, normalizedModel) + } c.JSON(http.StatusOK, gin.H{ - "models": h.Models(), + "models": normalizedModels, }) }