|
@@ -126,12 +126,18 @@ func relayAudioHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode
|
|
|
|
|
|
|
|
defer func(ctx context.Context) {
|
|
defer func(ctx context.Context) {
|
|
|
go func() {
|
|
go func() {
|
|
|
- var quota int
|
|
|
|
|
|
|
+ quota := 0
|
|
|
|
|
+ var promptTokens = 0
|
|
|
if strings.HasPrefix(audioRequest.Model, "tts-1") {
|
|
if strings.HasPrefix(audioRequest.Model, "tts-1") {
|
|
|
quota = countAudioToken(audioRequest.Input, audioRequest.Model)
|
|
quota = countAudioToken(audioRequest.Input, audioRequest.Model)
|
|
|
|
|
+ promptTokens = quota
|
|
|
} else {
|
|
} else {
|
|
|
quota = countAudioToken(audioResponse.Text, audioRequest.Model)
|
|
quota = countAudioToken(audioResponse.Text, audioRequest.Model)
|
|
|
}
|
|
}
|
|
|
|
|
+ quota = int(float64(quota) * ratio)
|
|
|
|
|
+ if ratio != 0 && quota <= 0 {
|
|
|
|
|
+ quota = 1
|
|
|
|
|
+ }
|
|
|
quotaDelta := quota - preConsumedQuota
|
|
quotaDelta := quota - preConsumedQuota
|
|
|
err := model.PostConsumeTokenQuota(tokenId, userQuota, quotaDelta, preConsumedQuota, true)
|
|
err := model.PostConsumeTokenQuota(tokenId, userQuota, quotaDelta, preConsumedQuota, true)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -144,7 +150,7 @@ func relayAudioHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode
|
|
|
if quota != 0 {
|
|
if quota != 0 {
|
|
|
tokenName := c.GetString("token_name")
|
|
tokenName := c.GetString("token_name")
|
|
|
logContent := fmt.Sprintf("模型倍率 %.2f,分组倍率 %.2f", modelRatio, groupRatio)
|
|
logContent := fmt.Sprintf("模型倍率 %.2f,分组倍率 %.2f", modelRatio, groupRatio)
|
|
|
- model.RecordConsumeLog(ctx, userId, channelId, 0, 0, audioRequest.Model, tokenName, quota, logContent, tokenId)
|
|
|
|
|
|
|
+ model.RecordConsumeLog(ctx, userId, channelId, promptTokens, 0, audioRequest.Model, tokenName, quota, logContent, tokenId)
|
|
|
model.UpdateUserUsedQuotaAndRequestCount(userId, quota)
|
|
model.UpdateUserUsedQuotaAndRequestCount(userId, quota)
|
|
|
channelId := c.GetInt("channel_id")
|
|
channelId := c.GetInt("channel_id")
|
|
|
model.UpdateChannelUsedQuota(channelId, quota)
|
|
model.UpdateChannelUsedQuota(channelId, quota)
|