Token Counter

v0.1.0添加于 2026年9月26日示例数据

按 OpenAI 兼容编码(cl100k_base、o200k_base)统计 BPE token 数量,无需构建 token 列表。

示例数据。这些数值仅为占位,并非实测结果。

cargo install kura-rs
kura add token-counter

将 3 个源码文件复制到你的项目中。此后代码完全归你所有。

如果其他工具已经安装了 kura 命令,请运行 cargo install kura-rs --bin kura-rs,并改用 kura-rs add。

use crate::parts::token_counter::{Encoding, count};

let n = count(Encoding::O200kBase, &prompt);
assert!(n <= 128_000, "prompt too long: {n} tokens");

验证

示例数据

使用差分测试与 tiktoken 0.9.0(Python)进行对照:向两个实现输入相同数据,并比较输出结果。

参考实现
tiktoken
Python 0.9.0
测试用例
5,000
差分测试
通过
5,000 / 5,000
全部一致
最近运行
2026年9月26日
UTC

以下数值仅为占位。 这些数值尚未经过实测,请勿当作真实结果。该组件在其 registry 文件中标记为 "sample": true。

基准测试

示例数据

在不同输入规模下对比 kura-rs(Rust)与 tiktoken。 输入约 1,285 条起更快,最高快 1.7×。

以下数值仅为占位。 这些数值尚未经过实测,请勿当作真实结果。该组件在其 registry 文件中标记为 "sample": true。

kura-rs (Rust)tiktoken
每次运行的耗时(越低越好)。 阴影区域表示参考实现更快的范围。
显示数据表
输入规模kura-rs (Rust)tiktoken加速比
1000.05 ms0.03 ms慢 1.7×
1,0000.31 ms0.3 ms慢 1.0×
10,0002.6 ms3.4 ms1.3×
100,00024 ms36 ms1.5×
1,000,000235 ms390 ms1.7×

文件

  • parts/token_counter/mod.rs
  • parts/token_counter/bpe.rs
  • parts/token_counter/ranks.rs

crate 依赖