refactor: update token type handling and improve token counting logic

This commit is contained in:
CaIon
2025-08-15 13:28:03 +08:00
parent 5fe1ce89ec
commit 2f25e44e60
3 changed files with 9 additions and 3 deletions

View File

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

View File

@@ -253,7 +253,13 @@ func CountRequestToken(c *gin.Context, meta *types.TokenCountMeta, info *relayco
} }
model := common.GetContextKeyString(c, constant.ContextKeyOriginalModel) 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 { if info.RelayFormat == types.RelayFormatOpenAI {
tkm += meta.ToolsCount * 8 tkm += meta.ToolsCount * 8