From 2f25e44e60753318faa60d10d8e897971eddac00 Mon Sep 17 00:00:00 2001 From: CaIon Date: Fri, 15 Aug 2025 13:28:03 +0800 Subject: [PATCH] refactor: update token type handling and improve token counting logic --- common/{logger.go => sys_log.go} | 0 dto/claude.go | 2 +- service/token_counter.go | 10 ++++++++-- 3 files changed, 9 insertions(+), 3 deletions(-) rename common/{logger.go => sys_log.go} (100%) diff --git a/common/logger.go b/common/sys_log.go similarity index 100% rename from common/logger.go rename to common/sys_log.go diff --git a/dto/claude.go b/dto/claude.go index 2b3adf19..48bef659 100644 --- a/dto/claude.go +++ b/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), } diff --git a/service/token_counter.go b/service/token_counter.go index 43a508c1..314fa593 100644 --- a/service/token_counter.go +++ b/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