36 lines
747 B
Go
36 lines
747 B
Go
package proxy
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
"time"
|
|
|
|
"llm-gateway/internal/provider"
|
|
)
|
|
|
|
type ModelsHandler struct {
|
|
registry *provider.Registry
|
|
}
|
|
|
|
func NewModelsHandler(registry *provider.Registry) *ModelsHandler {
|
|
return &ModelsHandler{registry: registry}
|
|
}
|
|
|
|
func (h *ModelsHandler) ListModels(w http.ResponseWriter, r *http.Request) {
|
|
names := h.registry.ModelNames()
|
|
models := make([]map[string]any, len(names))
|
|
for i, name := range names {
|
|
models[i] = map[string]any{
|
|
"id": name,
|
|
"object": "model",
|
|
"created": time.Now().Unix(),
|
|
"owned_by": "llm-gateway",
|
|
}
|
|
}
|
|
|
|
w.Header().Set("Content-Type", "application/json")
|
|
json.NewEncoder(w).Encode(map[string]any{
|
|
"object": "list",
|
|
"data": models,
|
|
})
|
|
}
|