// Package tokenizer 按模型估算 token 数(tiktoken-go)。 // 用于流式中断时对已生成内容做近似计费;未知模型回退 cl100k_base。 package tokenizer import "github.com/tiktoken-go/tokenizer" // Count 估算文本 token 数;空文本返回 0。 func Count(text, model string) int { if text == "" { return 0 } enc, err := tokenizer.ForModel(tokenizer.Model(model)) if err != nil { enc, err = tokenizer.Get(tokenizer.Cl100kBase) if err != nil { return 0 } } toks, _, err := enc.Encode(text) if err != nil { return 0 } return len(toks) }