From 2929f51556a26767fa9045ad90dd4764951ccf29 Mon Sep 17 00:00:00 2001 From: hobokenchicken Date: Thu, 9 Apr 2026 12:13:53 +0000 Subject: [PATCH] fixed model visibility --- internal/server/server.go | 50 ++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/internal/server/server.go b/internal/server/server.go index 9d429c22..03eab674 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -246,14 +246,17 @@ func (s *Server) handleListModels(c *gin.Context) { OwnedBy string `json:"owned_by"` } - var data []OpenAIModel + modelMap := make(map[string]OpenAIModel) allowedProviders := map[string]bool{ - "openai": true, - "google": true, // Models from models.dev use 'google' ID for Gemini - "deepseek": true, - "moonshot": true, - "xai": true, // Models from models.dev use 'xai' ID for Grok - "ollama": true, + "openai": true, + "google": true, // Models from models.dev use 'google' ID for Gemini + "deepseek": true, + "moonshot": true, + "moonshotai": true, // Official moonshotai ID in models.dev + "moonshotai-cn": true, // Official moonshotai-cn ID in models.dev + "xai": true, // Models from models.dev use 'xai' ID for Grok + "llmgateway": true, // Catch-all for newer models + "ollama": true, } if s.registry != nil { @@ -262,12 +265,14 @@ func (s *Server) handleListModels(c *gin.Context) { continue } for mID := range pInfo.Models { - data = append(data, OpenAIModel{ - ID: mID, - Object: "model", - Created: 1700000000, - OwnedBy: pID, - }) + if _, exists := modelMap[mID]; !exists { + modelMap[mID] = OpenAIModel{ + ID: mID, + Object: "model", + Created: 1700000000, + OwnedBy: pID, + } + } } } } @@ -275,25 +280,22 @@ func (s *Server) handleListModels(c *gin.Context) { // Add configured Ollama models if s.cfg.Providers.Ollama.Enabled { for _, mID := range s.cfg.Providers.Ollama.Models { - // Check if already added - exists := false - for _, d := range data { - if d.ID == mID { - exists = true - break - } - } - if !exists { - data = append(data, OpenAIModel{ + if _, exists := modelMap[mID]; !exists { + modelMap[mID] = OpenAIModel{ ID: mID, Object: "model", Created: 1700000000, OwnedBy: "ollama", - }) + } } } } + var data []OpenAIModel + for _, m := range modelMap { + data = append(data, m) + } + c.JSON(http.StatusOK, gin.H{ "object": "list", "data": data,