package adminapi import ( "context" "encoding/json" "fmt" "html/template" "net/http" "net/url" "strconv" "strings" "time" "aigw/internal/controlplane" ) type publicModelExample struct { Name string Endpoint string Code string } type publicModelPageData struct { Model controlplane.PublicModel Title string Description string CanonicalURL string CatalogURL string SignInURL string RegistrationURL string RegistrationEnabled bool CSSURL string HealthLabel string HealthClass string InputPrice string OutputPrice string CacheReadPrice string ContextWindow string MaxOutputTokens string ReleasedAt string Tags []string Examples []publicModelExample } var publicModelTemplate = template.Must(template.New("public-model").Parse(` {{.Title}}
AAIGWMODEL CATALOG
Back to models
{{if .Model.OwnedBy}}{{.Model.OwnedBy}}{{else}}INDEPENDENT{{end}}

{{.Model.DisplayName}}

{{.Model.PublicID}}
{{.HealthLabel}}

{{.Description}}

{{range .Tags}}{{.}}{{end}}

Model details

Input price
{{.InputPrice}} / 1M tokens
Output price
{{.OutputPrice}} / 1M tokens
Cached input
{{.CacheReadPrice}} / 1M tokens
Context window
{{.ContextWindow}} tokens
Max output
{{.MaxOutputTokens}} tokens
Regions
{{if .Model.Regions}}{{range $index,$region := .Model.Regions}}{{if $index}}, {{end}}{{$region}}{{end}}{{else}}Global{{end}}
Released
{{.ReleasedAt}}
Lifecycle
{{.Model.Lifecycle}}
SUPPORTED APIS

Code examples

{{range .Examples}}
{{.Name}}{{.Endpoint}}
{{.Code}}
{{end}}
`)) func (a *API) findPublicModel(ctx context.Context, wanted string) (controlplane.PublicModel, bool, error) { models, err := a.store.ListPublicModels(ctx) if err != nil { return controlplane.PublicModel{}, false, err } a.addPublicModelHealth(models) for _, item := range models { if item.PublicID == wanted { return item, true, nil } } return controlplane.PublicModel{}, false, nil } func (a *API) publicModelPage(w http.ResponseWriter, r *http.Request) { wanted := strings.Trim(strings.TrimSpace(r.PathValue("id")), "/") model, found, err := a.findPublicModel(r.Context(), wanted) if err != nil { a.logger.Error("public_model_page_failed", "error", err) http.Error(w, "Model catalog unavailable", http.StatusServiceUnavailable) return } if !found { http.NotFound(w, r) return } data := buildPublicModelPageData(model, a.publicURL, a.inferencePublicURL, a.prefix, a.registrationEnabled) w.Header().Set("Content-Type", "text/html; charset=utf-8") w.Header().Set("Cache-Control", "public, max-age=30, stale-while-revalidate=120") if err := publicModelTemplate.Execute(w, data); err != nil { a.logger.Error("render_public_model_page_failed", "model", model.PublicID, "error", err) } } func buildPublicModelPageData(model controlplane.PublicModel, publicURL, inferenceBase, prefix string, registrationEnabled bool) publicModelPageData { canonicalBase := strings.TrimRight(publicURL, "/") pathBase := strings.TrimRight(prefix, "/") if pathBase == "" { pathBase = "/admin" } if canonicalBase == "" { canonicalBase = pathBase } pathID := escapeModelPath(model.PublicID) canonical := canonicalBase + "/models/" + pathID description := strings.TrimSpace(model.Description) if description == "" { description = fmt.Sprintf("Use %s through the AIGW unified API.", model.PublicID) } tags := append([]string(nil), model.Capabilities...) tags = append(tags, model.InputModalities...) for _, wireAPI := range model.SupportedWireAPIs { tags = append(tags, protocolLabel(wireAPI)) } healthLabel, healthClass := publicHealthLabel(model) return publicModelPageData{ Model: model, Title: model.DisplayName + " API, pricing, and context | AIGW", Description: description, CanonicalURL: canonical, CatalogURL: pathBase + "/models", SignInURL: pathBase + "/", RegistrationURL: pathBase + "/?auth=register&model=" + url.QueryEscape(model.PublicID), RegistrationEnabled: registrationEnabled, CSSURL: pathBase + "/models.css", HealthLabel: healthLabel, HealthClass: healthClass, InputPrice: formatMicros(model.InputPriceMicrosPerMillion, model.PriceCurrency), OutputPrice: formatMicros(model.OutputPriceMicrosPerMillion, model.PriceCurrency), CacheReadPrice: formatMicros(model.CacheReadPriceMicrosPerMillion, model.PriceCurrency), ContextWindow: formatInteger(model.ContextWindow), MaxOutputTokens: formatInteger(model.MaxOutputTokens), ReleasedAt: formatPublicDate(model.ReleasedAt), Tags: uniquePageStrings(tags), Examples: publicModelExamples(model, inferenceBase), } } func publicModelExamples(model controlplane.PublicModel, inferenceBase string) []publicModelExample { base := strings.TrimRight(inferenceBase, "/") if base == "" { base = "https://api.example.com" } modelJSON, _ := json.Marshal(model.PublicID) result := make([]publicModelExample, 0, len(model.SupportedWireAPIs)) for _, wireAPI := range model.SupportedWireAPIs { var endpoint, code string switch wireAPI { case "chat_completions": endpoint = "/v1/chat/completions" code = fmt.Sprintf("curl %s%s \\\n -H 'Authorization: Bearer $AIGW_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\"model\":%s,\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}]}'", base, endpoint, modelJSON) case "responses": endpoint = "/v1/responses" code = fmt.Sprintf("curl %s%s \\\n -H 'Authorization: Bearer $AIGW_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\"model\":%s,\"input\":\"Hello\"}'", base, endpoint, modelJSON) case "embeddings": endpoint = "/v1/embeddings" code = fmt.Sprintf("curl %s%s \\\n -H 'Authorization: Bearer $AIGW_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\"model\":%s,\"input\":[\"Text to embed\"]}'", base, endpoint, modelJSON) case "messages": endpoint = "/anthropic/v1/messages" code = fmt.Sprintf("curl %s%s \\\n -H 'x-api-key: $AIGW_API_KEY' \\\n -H 'anthropic-version: 2023-06-01' \\\n -H 'Content-Type: application/json' \\\n -d '{\"model\":%s,\"max_tokens\":256,\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}]}'", base, endpoint, modelJSON) default: continue } result = append(result, publicModelExample{Name: protocolLabel(wireAPI), Endpoint: endpoint, Code: code}) } return result } func escapeModelPath(publicID string) string { parts := strings.Split(strings.Trim(publicID, "/"), "/") for index := range parts { parts[index] = url.PathEscape(parts[index]) } return strings.Join(parts, "/") } func publicHealthLabel(model controlplane.PublicModel) (string, string) { switch model.HealthStatus { case "unavailable": return "Unavailable", "unavailable" case "degraded": return fmt.Sprintf("%d/%d routes", model.AvailableProviderCount, model.ProviderCount), "degraded" default: return "Available", "available" } } func protocolLabel(value string) string { switch value { case "chat_completions": return "Chat Completions" case "responses": return "Responses" case "embeddings": return "Embeddings" case "messages": return "Anthropic Messages" default: return value } } func formatMicros(value int64, currency string) string { amount := strconv.FormatFloat(float64(value)/1_000_000, 'f', 6, 64) amount = strings.TrimRight(strings.TrimRight(amount, "0"), ".") if amount == "" { amount = "0" } return strings.ToUpper(currency) + " " + amount } func formatInteger(value int64) string { raw := strconv.FormatInt(value, 10) for index := len(raw) - 3; index > 0; index -= 3 { raw = raw[:index] + "," + raw[index:] } return raw } func formatPublicDate(value *time.Time) string { if value == nil { return "Not published" } return value.UTC().Format("2 Jan 2006") } func uniquePageStrings(values []string) []string { seen := make(map[string]struct{}, len(values)) result := make([]string, 0, len(values)) for _, value := range values { value = strings.TrimSpace(value) if value == "" { continue } if _, exists := seen[value]; exists { continue } seen[value] = struct{}{} result = append(result, value) } return result }