Bladeren bron

refactor: update token type handling and improve token counting logic

CaIon 4 maanden geleden
bovenliggende
commit
2f25e44e60
3 gewijzigde bestanden met toevoegingen van 9 en 3 verwijderingen
  1. 0 0
      common/sys_log.go
  2. 1 1
      dto/claude.go
  3. 8 2
      service/token_counter.go

+ 0 - 0
common/logger.go → common/sys_log.go


+ 1 - 1
dto/claude.go

@@ -204,7 +204,7 @@ type ClaudeRequest struct {
 
 func (c *ClaudeRequest) GetTokenCountMeta() *types.TokenCountMeta {
 	var tokenCountMeta = types.TokenCountMeta{
-		TokenType: types.TokenTypeTextNumber,
+		TokenType: types.TokenTypeTokenizer,
 		MaxTokens: int(c.MaxTokens),
 	}
 

+ 8 - 2
service/token_counter.go

@@ -251,9 +251,15 @@ func CountRequestToken(c *gin.Context, meta *types.TokenCountMeta, info *relayco
 	if info.RelayFormat == types.RelayFormatOpenAIRealtime {
 		return 0, nil
 	}
-	
+
 	model := common.GetContextKeyString(c, constant.ContextKeyOriginalModel)
-	tkm := CountTextToken(meta.CombineText, model)
+	tkm := 0
+
+	if meta.TokenType == types.TokenTypeTextNumber {
+		tkm += utf8.RuneCountInString(meta.CombineText)
+	} else {
+		tkm += CountTextToken(meta.CombineText, model)
+	}
 
 	if info.RelayFormat == types.RelayFormatOpenAI {
 		tkm += meta.ToolsCount * 8