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 {
var tokenCountMeta = types.TokenCountMeta{
TokenType: types.TokenTypeTextNumber,
TokenType: types.TokenTypeTokenizer,
MaxTokens: int(c.MaxTokens),
}

View File

@@ -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