Skip to content

Commit b9bc6f0

Browse files
committed
Revert "fix: correct usage logs filtering (#4883)"
This reverts commit 554defe.
1 parent f2c7647 commit b9bc6f0

2 files changed

Lines changed: 35 additions & 31 deletions

File tree

model/log.go

Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55
"errors"
66
"fmt"
7-
"strings"
87
"time"
98

109
"github.com/QuantumNous/new-api/common"
@@ -309,9 +308,15 @@ func GetAllLogs(logType int, startTimestamp int64, endTimestamp int64, modelName
309308
tx = LOG_DB.Where("logs.type = ?", logType)
310309
}
311310

312-
tx = applyLogContainsFilter(tx, "logs.model_name", modelName)
313-
tx = applyLogContainsFilter(tx, "logs.username", username)
314-
tx = applyLogContainsFilter(tx, "logs.token_name", tokenName)
311+
if modelName != "" {
312+
tx = tx.Where("logs.model_name like ?", modelName)
313+
}
314+
if username != "" {
315+
tx = tx.Where("logs.username = ?", username)
316+
}
317+
if tokenName != "" {
318+
tx = tx.Where("logs.token_name = ?", tokenName)
319+
}
315320
if requestId != "" {
316321
tx = tx.Where("logs.request_id = ?", requestId)
317322
}
@@ -392,8 +397,16 @@ func GetUserLogs(userId int, logType int, startTimestamp int64, endTimestamp int
392397
tx = LOG_DB.Where("logs.user_id = ? and logs.type = ?", userId, logType)
393398
}
394399

395-
tx = applyLogContainsFilter(tx, "logs.model_name", modelName)
396-
tx = applyLogContainsFilter(tx, "logs.token_name", tokenName)
400+
if modelName != "" {
401+
modelNamePattern, err := sanitizeLikePattern(modelName)
402+
if err != nil {
403+
return nil, 0, err
404+
}
405+
tx = tx.Where("logs.model_name LIKE ? ESCAPE '!'", modelNamePattern)
406+
}
407+
if tokenName != "" {
408+
tx = tx.Where("logs.token_name = ?", tokenName)
409+
}
397410
if requestId != "" {
398411
tx = tx.Where("logs.request_id = ?", requestId)
399412
}
@@ -430,42 +443,34 @@ type Stat struct {
430443
Tpm int `json:"tpm"`
431444
}
432445

433-
func logContainsPattern(input string) (string, bool) {
434-
input = strings.TrimSpace(input)
435-
if input == "" {
436-
return "", false
437-
}
438-
439-
replacer := strings.NewReplacer("!", "!!", "%", "!%", "_", "!_")
440-
return "%" + replacer.Replace(input) + "%", true
441-
}
442-
443-
func applyLogContainsFilter(tx *gorm.DB, column string, value string) *gorm.DB {
444-
pattern, ok := logContainsPattern(value)
445-
if !ok {
446-
return tx
447-
}
448-
return tx.Where(column+" LIKE ? ESCAPE '!'", pattern)
449-
}
450-
451446
func SumUsedQuota(logType int, startTimestamp int64, endTimestamp int64, modelName string, username string, tokenName string, channel int, group string) (stat Stat, err error) {
452447
tx := LOG_DB.Table("logs").Select("sum(quota) quota")
453448

454449
// 为rpm和tpm创建单独的查询
455450
rpmTpmQuery := LOG_DB.Table("logs").Select("count(*) rpm, sum(prompt_tokens) + sum(completion_tokens) tpm")
456451

457-
tx = applyLogContainsFilter(tx, "username", username)
458-
rpmTpmQuery = applyLogContainsFilter(rpmTpmQuery, "username", username)
459-
tx = applyLogContainsFilter(tx, "token_name", tokenName)
460-
rpmTpmQuery = applyLogContainsFilter(rpmTpmQuery, "token_name", tokenName)
452+
if username != "" {
453+
tx = tx.Where("username = ?", username)
454+
rpmTpmQuery = rpmTpmQuery.Where("username = ?", username)
455+
}
456+
if tokenName != "" {
457+
tx = tx.Where("token_name = ?", tokenName)
458+
rpmTpmQuery = rpmTpmQuery.Where("token_name = ?", tokenName)
459+
}
461460
if startTimestamp != 0 {
462461
tx = tx.Where("created_at >= ?", startTimestamp)
463462
}
464463
if endTimestamp != 0 {
465464
tx = tx.Where("created_at <= ?", endTimestamp)
466465
}
467-
tx = applyLogContainsFilter(tx, "model_name", modelName)
468-
rpmTpmQuery = applyLogContainsFilter(rpmTpmQuery, "model_name", modelName)
466+
if modelName != "" {
467+
modelNamePattern, err := sanitizeLikePattern(modelName)
468+
if err != nil {
469+
return stat, err
470+
}
471+
tx = tx.Where("model_name LIKE ? ESCAPE '!'", modelNamePattern)
472+
rpmTpmQuery = rpmTpmQuery.Where("model_name LIKE ? ESCAPE '!'", modelNamePattern)
473+
}
469474
if channel != 0 {
470475
tx = tx.Where("channel_id = ?", channel)
471476
rpmTpmQuery = rpmTpmQuery.Where("channel_id = ?", channel)

web/default/src/features/usage-logs/components/usage-logs-table.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@ export function UsageLogsTable({ logCategory }: UsageLogsTableProps) {
150150
getFacetedRowModel: getFacetedRowModel(),
151151
getFacetedUniqueValues: getFacetedUniqueValues(),
152152
manualPagination: true,
153-
manualFiltering: true,
154153
pageCount: Math.ceil((data?.total || 0) / pagination.pageSize),
155154
})
156155

0 commit comments

Comments
 (0)