From 7ec974f56f9cc47bc047714415859ba43b3b4d11 Mon Sep 17 00:00:00 2001 From: K8sCat Date: Fri, 7 Jun 2024 12:48:23 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20preQuotaConsumption?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: K8sCat --- relay/relay_util/quota.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/relay/relay_util/quota.go b/relay/relay_util/quota.go index de5032f6..421dafe6 100644 --- a/relay/relay_util/quota.go +++ b/relay/relay_util/quota.go @@ -43,10 +43,12 @@ func NewQuota(c *gin.Context, modelName string, promptTokens int) (*Quota, *type quota.groupRatio = common.GetGroupRatio(c.GetString("group")) quota.inputRatio = quota.price.GetInput() * quota.groupRatio - if quota.price.Type == model.TimesPriceType { - quota.preConsumedQuota = int(1000 * quota.inputRatio) - } else { - quota.preConsumedQuota = int(float64(quota.promptTokens)*quota.inputRatio) + config.PreConsumedQuota + if quota.price.Input != 0 || quota.price.Output != 0 { + if quota.price.Type == model.TimesPriceType { + quota.preConsumedQuota = int(1000 * quota.inputRatio) + } else { + quota.preConsumedQuota = int(float64(quota.promptTokens)*quota.inputRatio) + config.PreConsumedQuota + } } errWithCode := quota.preQuotaConsumption() @@ -58,6 +60,10 @@ func NewQuota(c *gin.Context, modelName string, promptTokens int) (*Quota, *type } func (q *Quota) preQuotaConsumption() *types.OpenAIErrorWithStatusCode { + if q.preConsumedQuota == 0 { + return nil + } + userQuota, err := model.CacheGetUserQuota(q.userId) if err != nil { return common.ErrorWrapper(err, "get_user_quota_failed", http.StatusInternalServerError)