|
|
@@ -19,6 +19,7 @@ type Log struct {
|
|
|
Quota int `json:"quota" gorm:"default:0"`
|
|
|
PromptTokens int `json:"prompt_tokens" gorm:"default:0"`
|
|
|
CompletionTokens int `json:"completion_tokens" gorm:"default:0"`
|
|
|
+ Channel int `json:"channel" gorm:"default:0"`
|
|
|
}
|
|
|
|
|
|
const (
|
|
|
@@ -46,8 +47,9 @@ func RecordLog(userId int, logType int, content string) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func RecordConsumeLog(ctx context.Context, userId int, promptTokens int, completionTokens int, modelName string, tokenName string, quota int, content string) {
|
|
|
- common.LogInfo(ctx, fmt.Sprintf("record consume log: userId=%d, promptTokens=%d, completionTokens=%d, modelName=%s, tokenName=%s, quota=%d, content=%s", userId, promptTokens, completionTokens, modelName, tokenName, quota, content))
|
|
|
+
|
|
|
+func RecordConsumeLog(ctx context.Context, userId int, channelId int, promptTokens int, completionTokens int, modelName string, tokenName string, quota int, content string) {
|
|
|
+ common.LogInfo(ctx, fmt.Sprintf("record consume log: userId=%d, channelId=%d, promptTokens=%d, completionTokens=%d, modelName=%s, tokenName=%s, quota=%d, content=%s", userId, channelId, promptTokens, completionTokens, modelName, tokenName, quota, content))
|
|
|
if !common.LogConsumeEnabled {
|
|
|
return
|
|
|
}
|
|
|
@@ -62,6 +64,7 @@ func RecordConsumeLog(ctx context.Context, userId int, promptTokens int, complet
|
|
|
TokenName: tokenName,
|
|
|
ModelName: modelName,
|
|
|
Quota: quota,
|
|
|
+ Channel: channelId,
|
|
|
}
|
|
|
err := DB.Create(log).Error
|
|
|
if err != nil {
|
|
|
@@ -69,7 +72,7 @@ func RecordConsumeLog(ctx context.Context, userId int, promptTokens int, complet
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func GetAllLogs(logType int, startTimestamp int64, endTimestamp int64, modelName string, username string, tokenName string, startIdx int, num int) (logs []*Log, err error) {
|
|
|
+func GetAllLogs(logType int, startTimestamp int64, endTimestamp int64, modelName string, username string, tokenName string, startIdx int, num int, channel int) (logs []*Log, err error) {
|
|
|
var tx *gorm.DB
|
|
|
if logType == LogTypeUnknown {
|
|
|
tx = DB
|
|
|
@@ -91,6 +94,9 @@ func GetAllLogs(logType int, startTimestamp int64, endTimestamp int64, modelName
|
|
|
if endTimestamp != 0 {
|
|
|
tx = tx.Where("created_at <= ?", endTimestamp)
|
|
|
}
|
|
|
+ if channel != 0 {
|
|
|
+ tx = tx.Where("channel = ?", channel)
|
|
|
+ }
|
|
|
err = tx.Order("id desc").Limit(num).Offset(startIdx).Find(&logs).Error
|
|
|
return logs, err
|
|
|
}
|
|
|
@@ -128,7 +134,7 @@ func SearchUserLogs(userId int, keyword string) (logs []*Log, err error) {
|
|
|
return logs, err
|
|
|
}
|
|
|
|
|
|
-func SumUsedQuota(logType int, startTimestamp int64, endTimestamp int64, modelName string, username string, tokenName string) (quota int) {
|
|
|
+func SumUsedQuota(logType int, startTimestamp int64, endTimestamp int64, modelName string, username string, tokenName string, channel int) (quota int) {
|
|
|
tx := DB.Table("logs").Select("sum(quota)")
|
|
|
if username != "" {
|
|
|
tx = tx.Where("username = ?", username)
|
|
|
@@ -145,6 +151,9 @@ func SumUsedQuota(logType int, startTimestamp int64, endTimestamp int64, modelNa
|
|
|
if modelName != "" {
|
|
|
tx = tx.Where("model_name = ?", modelName)
|
|
|
}
|
|
|
+ if channel != 0 {
|
|
|
+ tx = tx.Where("channel = ?", channel)
|
|
|
+ }
|
|
|
tx.Where("type = ?", LogTypeConsume).Scan("a)
|
|
|
return quota
|
|
|
}
|