|
|
@@ -209,8 +209,21 @@ func PostWssConsumeQuota(ctx *gin.Context, relayInfo *relaycommon.RelayInfo, mod
|
|
|
}
|
|
|
other := GenerateWssOtherInfo(ctx, relayInfo, usage, modelRatio, groupRatio,
|
|
|
completionRatio.InexactFloat64(), audioRatio.InexactFloat64(), audioCompletionRatio.InexactFloat64(), modelPrice, priceData.GroupRatioInfo.GroupSpecialRatio)
|
|
|
- model.RecordConsumeLog(ctx, relayInfo.UserId, relayInfo.ChannelId, usage.InputTokens, usage.OutputTokens, logModel,
|
|
|
- tokenName, quota, logContent, relayInfo.TokenId, userQuota, int(useTimeSeconds), relayInfo.IsStream, relayInfo.UsingGroup, other)
|
|
|
+ model.RecordConsumeLog(ctx, relayInfo.UserId, model.RecordConsumeLogParams{
|
|
|
+ ChannelId: relayInfo.ChannelId,
|
|
|
+ PromptTokens: usage.InputTokens,
|
|
|
+ CompletionTokens: usage.OutputTokens,
|
|
|
+ ModelName: logModel,
|
|
|
+ TokenName: tokenName,
|
|
|
+ Quota: quota,
|
|
|
+ Content: logContent,
|
|
|
+ TokenId: relayInfo.TokenId,
|
|
|
+ UserQuota: userQuota,
|
|
|
+ UseTimeSeconds: int(useTimeSeconds),
|
|
|
+ IsStream: relayInfo.IsStream,
|
|
|
+ Group: relayInfo.UsingGroup,
|
|
|
+ Other: other,
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
func PostClaudeConsumeQuota(ctx *gin.Context, relayInfo *relaycommon.RelayInfo,
|
|
|
@@ -286,8 +299,22 @@ func PostClaudeConsumeQuota(ctx *gin.Context, relayInfo *relaycommon.RelayInfo,
|
|
|
|
|
|
other := GenerateClaudeOtherInfo(ctx, relayInfo, modelRatio, groupRatio, completionRatio,
|
|
|
cacheTokens, cacheRatio, cacheCreationTokens, cacheCreationRatio, modelPrice, priceData.GroupRatioInfo.GroupSpecialRatio)
|
|
|
- model.RecordConsumeLog(ctx, relayInfo.UserId, relayInfo.ChannelId, promptTokens, completionTokens, modelName,
|
|
|
- tokenName, quota, logContent, relayInfo.TokenId, userQuota, int(useTimeSeconds), relayInfo.IsStream, relayInfo.UsingGroup, other)
|
|
|
+ model.RecordConsumeLog(ctx, relayInfo.UserId, model.RecordConsumeLogParams{
|
|
|
+ ChannelId: relayInfo.ChannelId,
|
|
|
+ PromptTokens: promptTokens,
|
|
|
+ CompletionTokens: completionTokens,
|
|
|
+ ModelName: modelName,
|
|
|
+ TokenName: tokenName,
|
|
|
+ Quota: quota,
|
|
|
+ Content: logContent,
|
|
|
+ TokenId: relayInfo.TokenId,
|
|
|
+ UserQuota: userQuota,
|
|
|
+ UseTimeSeconds: int(useTimeSeconds),
|
|
|
+ IsStream: relayInfo.IsStream,
|
|
|
+ Group: relayInfo.UsingGroup,
|
|
|
+ Other: other,
|
|
|
+ })
|
|
|
+
|
|
|
}
|
|
|
|
|
|
func CalcOpenRouterCacheCreateTokens(usage dto.Usage, priceData helper.PriceData) int {
|
|
|
@@ -384,8 +411,21 @@ func PostAudioConsumeQuota(ctx *gin.Context, relayInfo *relaycommon.RelayInfo,
|
|
|
}
|
|
|
other := GenerateAudioOtherInfo(ctx, relayInfo, usage, modelRatio, groupRatio,
|
|
|
completionRatio.InexactFloat64(), audioRatio.InexactFloat64(), audioCompletionRatio.InexactFloat64(), modelPrice, priceData.GroupRatioInfo.GroupSpecialRatio)
|
|
|
- model.RecordConsumeLog(ctx, relayInfo.UserId, relayInfo.ChannelId, usage.PromptTokens, usage.CompletionTokens, logModel,
|
|
|
- tokenName, quota, logContent, relayInfo.TokenId, userQuota, int(useTimeSeconds), relayInfo.IsStream, relayInfo.UsingGroup, other)
|
|
|
+ model.RecordConsumeLog(ctx, relayInfo.UserId, model.RecordConsumeLogParams{
|
|
|
+ ChannelId: relayInfo.ChannelId,
|
|
|
+ PromptTokens: usage.PromptTokens,
|
|
|
+ CompletionTokens: usage.CompletionTokens,
|
|
|
+ ModelName: logModel,
|
|
|
+ TokenName: tokenName,
|
|
|
+ Quota: quota,
|
|
|
+ Content: logContent,
|
|
|
+ TokenId: relayInfo.TokenId,
|
|
|
+ UserQuota: userQuota,
|
|
|
+ UseTimeSeconds: int(useTimeSeconds),
|
|
|
+ IsStream: relayInfo.IsStream,
|
|
|
+ Group: relayInfo.UsingGroup,
|
|
|
+ Other: other,
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
func PreConsumeTokenQuota(relayInfo *relaycommon.RelayInfo, quota int) error {
|
|
|
@@ -447,8 +487,8 @@ func checkAndSendQuotaNotify(relayInfo *relaycommon.RelayInfo, quota int, preCon
|
|
|
gopool.Go(func() {
|
|
|
userSetting := relayInfo.UserSetting
|
|
|
threshold := common.QuotaRemindThreshold
|
|
|
- if userCustomThreshold, ok := userSetting[constant.UserSettingQuotaWarningThreshold]; ok {
|
|
|
- threshold = int(userCustomThreshold.(float64))
|
|
|
+ if userSetting.QuotaWarningThreshold != 0 {
|
|
|
+ threshold = int(userSetting.QuotaWarningThreshold)
|
|
|
}
|
|
|
|
|
|
//noMoreQuota := userCache.Quota-(quota+preConsumedQuota) <= 0
|