Some checks failed
Publish Docker image (Multi-arch) / Build & push (amd64) (push) Has been cancelled
Publish Docker image (Multi-arch) / Build & push (arm64) (push) Has been cancelled
Publish Docker image (Multi-arch) / Create multi-arch manifests (push) Has been cancelled
Release (Linux, macOS, Windows) / Linux Release (push) Has been cancelled
Release (Linux, macOS, Windows) / macOS Release (push) Has been cancelled
Release (Linux, macOS, Windows) / Windows Release (push) Has been cancelled
Add a batched performance summary API for model square cards and show compact latency, throughput, and status metrics without increasing card size. Also fix OTP verification form submission.
70 lines
1.3 KiB
Go
70 lines
1.3 KiB
Go
package controller
|
|
|
|
import (
|
|
"net/http"
|
|
"strconv"
|
|
|
|
perfmetrics "github.com/QuantumNous/new-api/pkg/perf_metrics"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func GetPerfMetricsSummary(c *gin.Context) {
|
|
hours := 24
|
|
if rawHours := c.Query("hours"); rawHours != "" {
|
|
if parsed, err := strconv.Atoi(rawHours); err == nil {
|
|
hours = parsed
|
|
}
|
|
}
|
|
|
|
result, err := perfmetrics.QuerySummaryAll(hours)
|
|
if err != nil {
|
|
c.JSON(http.StatusInternalServerError, gin.H{
|
|
"success": false,
|
|
"message": err.Error(),
|
|
})
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"success": true,
|
|
"data": result,
|
|
})
|
|
}
|
|
|
|
func GetPerfMetrics(c *gin.Context) {
|
|
modelName := c.Query("model")
|
|
if modelName == "" {
|
|
c.JSON(http.StatusBadRequest, gin.H{
|
|
"success": false,
|
|
"message": "model is required",
|
|
})
|
|
return
|
|
}
|
|
|
|
hours := 24
|
|
if rawHours := c.Query("hours"); rawHours != "" {
|
|
if parsed, err := strconv.Atoi(rawHours); err == nil {
|
|
hours = parsed
|
|
}
|
|
}
|
|
|
|
result, err := perfmetrics.Query(perfmetrics.QueryParams{
|
|
Model: modelName,
|
|
Group: c.Query("group"),
|
|
Hours: hours,
|
|
})
|
|
if err != nil {
|
|
c.JSON(http.StatusInternalServerError, gin.H{
|
|
"success": false,
|
|
"message": err.Error(),
|
|
})
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"success": true,
|
|
"data": result,
|
|
})
|
|
}
|