Răsfoiți Sursa

feat: dashboard v2 add nodel ame filter (#262)

zijiren 6 luni în urmă
părinte
comite
c5fe3ad77d

+ 6 - 0
core/controller/dashboard.go

@@ -335,6 +335,7 @@ func GetGroupDashboardModels(c *gin.Context) {
 //	@Produce		json
 //	@Security		ApiKeyAuth
 //	@Param			channel			query		int		false	"Channel ID"
+//	@Param			model			query		string	false	"Model name"
 //	@Param			start_timestamp	query		int64	false	"Start timestamp"
 //	@Param			end_timestamp	query		int64	false	"End timestamp"
 //	@Param			timezone		query		string	false	"Timezone, default is Local"
@@ -343,10 +344,12 @@ func GetGroupDashboardModels(c *gin.Context) {
 //	@Router			/api/dashboardv2/ [get]
 func GetTimeSeriesModelData(c *gin.Context) {
 	channelID, _ := strconv.Atoi(c.Query("channel"))
+	modelName := c.Query("model")
 	startTime, endTime := utils.ParseTimeRange(c, -1)
 	timezoneLocation, _ := time.LoadLocation(c.DefaultQuery("timezone", "Local"))
 	models, err := model.GetTimeSeriesModelDataMinute(
 		channelID,
+		modelName,
 		startTime,
 		endTime,
 		model.TimeSpanType(c.Query("timespan")),
@@ -368,6 +371,7 @@ func GetTimeSeriesModelData(c *gin.Context) {
 //	@Security		ApiKeyAuth
 //	@Param			group			path		string	true	"Group"
 //	@Param			token_name		query		string	false	"Token name"
+//	@Param			model			query		string	false	"Model name"
 //	@Param			start_timestamp	query		int64	false	"Start timestamp"
 //	@Param			end_timestamp	query		int64	false	"End timestamp"
 //	@Param			timezone		query		string	false	"Timezone, default is Local"
@@ -381,11 +385,13 @@ func GetGroupTimeSeriesModelData(c *gin.Context) {
 		return
 	}
 	tokenName := c.Query("token_name")
+	modelName := c.Query("model")
 	startTime, endTime := utils.ParseTimeRange(c, -1)
 	timezoneLocation, _ := time.LoadLocation(c.DefaultQuery("timezone", "Local"))
 	models, err := model.GetGroupTimeSeriesModelDataMinute(
 		group,
 		tokenName,
+		modelName,
 		startTime,
 		endTime,
 		model.TimeSpanType(c.Query("timespan")),

+ 12 - 0
core/docs/docs.go

@@ -1149,6 +1149,12 @@ const docTemplate = `{
                         "name": "channel",
                         "in": "query"
                     },
+                    {
+                        "type": "string",
+                        "description": "Model name",
+                        "name": "model",
+                        "in": "query"
+                    },
                     {
                         "type": "integer",
                         "description": "Start timestamp",
@@ -1228,6 +1234,12 @@ const docTemplate = `{
                         "name": "token_name",
                         "in": "query"
                     },
+                    {
+                        "type": "string",
+                        "description": "Model name",
+                        "name": "model",
+                        "in": "query"
+                    },
                     {
                         "type": "integer",
                         "description": "Start timestamp",

+ 12 - 0
core/docs/swagger.json

@@ -1140,6 +1140,12 @@
                         "name": "channel",
                         "in": "query"
                     },
+                    {
+                        "type": "string",
+                        "description": "Model name",
+                        "name": "model",
+                        "in": "query"
+                    },
                     {
                         "type": "integer",
                         "description": "Start timestamp",
@@ -1219,6 +1225,12 @@
                         "name": "token_name",
                         "in": "query"
                     },
+                    {
+                        "type": "string",
+                        "description": "Model name",
+                        "name": "model",
+                        "in": "query"
+                    },
                     {
                         "type": "integer",
                         "description": "Start timestamp",

+ 8 - 0
core/docs/swagger.yaml

@@ -2704,6 +2704,10 @@ paths:
         in: query
         name: channel
         type: integer
+      - description: Model name
+        in: query
+        name: model
+        type: string
       - description: Start timestamp
         in: query
         name: start_timestamp
@@ -2752,6 +2756,10 @@ paths:
         in: query
         name: token_name
         type: string
+      - description: Model name
+        in: query
+        name: model
+        type: string
       - description: Start timestamp
         in: query
         name: start_timestamp

+ 10 - 0
core/model/summary-minute.go

@@ -494,6 +494,7 @@ type TimeSummaryDataV2 struct {
 
 func GetTimeSeriesModelDataMinute(
 	channelID int,
+	modelName string,
 	start, end time.Time,
 	timeSpan TimeSpanType,
 	timezone *time.Location,
@@ -510,6 +511,10 @@ func GetTimeSeriesModelDataMinute(
 		query = query.Where("channel_id = ?", channelID)
 	}
 
+	if modelName != "" {
+		query = query.Where("model = ?", modelName)
+	}
+
 	switch {
 	case !start.IsZero() && !end.IsZero():
 		query = query.Where("minute_timestamp BETWEEN ? AND ?", start.Unix(), end.Unix())
@@ -547,6 +552,7 @@ func GetTimeSeriesModelDataMinute(
 func GetGroupTimeSeriesModelDataMinute(
 	group string,
 	tokenName string,
+	modelName string,
 	start, end time.Time,
 	timeSpan TimeSpanType,
 	timezone *time.Location,
@@ -563,6 +569,10 @@ func GetGroupTimeSeriesModelDataMinute(
 		query = query.Where("token_name = ?", tokenName)
 	}
 
+	if modelName != "" {
+		query = query.Where("model = ?", modelName)
+	}
+
 	switch {
 	case !start.IsZero() && !end.IsZero():
 		query = query.Where("minute_timestamp BETWEEN ? AND ?", start.Unix(), end.Unix())