diff --git a/internal/server/server.go b/internal/server/server.go index facce6ce..0cf16d2f 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -89,6 +89,7 @@ func (s *Server) setupRoutes() { v1 := s.router.Group("/v1") { v1.POST("/chat/completions", s.handleChatCompletions) + v1.GET("/models", s.handleListModels) } // Dashboard API Group @@ -140,6 +141,34 @@ func (s *Server) setupRoutes() { }) } +func (s *Server) handleListModels(c *gin.Context) { + type OpenAIModel struct { + ID string `json:"id"` + Object string `json:"object"` + Created int64 `json:"created"` + OwnedBy string `json:"owned_by"` + } + + var data []OpenAIModel + if s.registry != nil { + for pID, pInfo := range s.registry.Providers { + for mID := range pInfo.Models { + data = append(data, OpenAIModel{ + ID: mID, + Object: "model", + Created: 1700000000, // Static placeholder + OwnedBy: pID, + }) + } + } + } + + c.JSON(http.StatusOK, gin.H{ + "object": "list", + "data": data, + }) +} + func (s *Server) handleChatCompletions(c *gin.Context) { startTime := time.Now() var req models.ChatCompletionRequest