e8cfb546fa
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,
|
|
})
|
|
}
|