File size: 537 Bytes
0f08150
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
 * tokenizer.ts - 统一 token 估算模块
 *
 * 使用 js-tiktoken 的 cl100k_base 编码器(与 Claude tokenizer 高度近似,误差 < 5%)
 * 纯 JS 实现,无 WASM,无网络请求,ESM 兼容
 */

import { getEncoding } from 'js-tiktoken';

const enc = getEncoding('cl100k_base');

/**
 * 估算文本的 token 数
 * 使用 cl100k_base 编码(GPT-3.5/4 同款,与 Claude tokenizer 近似)
 */
export function estimateTokens(text: string): number {
    if (!text) return 0;
    return enc.encode(text).length;
}