Просмотр исходного кода

fix: do not charge the user if the amount of tokens used was zero

JustSong 2 лет назад
Родитель
Сommit
dd8e8d5ee8
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      controller/relay-text.go

+ 6 - 0
controller/relay-text.go

@@ -139,6 +139,12 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
 			if ratio != 0 && quota <= 0 {
 			if ratio != 0 && quota <= 0 {
 				quota = 1
 				quota = 1
 			}
 			}
+			totalTokens := promptTokens + completionTokens
+			if totalTokens == 0 {
+				// in this case, must be some error happened
+				// we cannot just return, because we may have to return the pre-consumed quota
+				quota = 0
+			}
 			quotaDelta := quota - preConsumedQuota
 			quotaDelta := quota - preConsumedQuota
 			err := model.PostConsumeTokenQuota(tokenId, quotaDelta)
 			err := model.PostConsumeTokenQuota(tokenId, quotaDelta)
 			if err != nil {
 			if err != nil {