脚本
捆绑的 Cl100k 表示器,带有添加的帮助函数(计数/ 截取/ 拆分), 已供电
由我们自己的 Rust-WASM 建筑(见 wasm/,引擎 : 托齐, (中文(简体) ),
麻省理工学院——Chonkie股份有限公司——见 NOTICE) (中文(简体) ). 历史上得到tiktoken的支持——API不变.
count(text, { approximate })大约 默认 (统计学) 采样,在1%以内,~100××更快;通过{ approximate: false }确切地说.truncate(text, n)- 准确;保留第一个n符号(负数)n删除 结束)。 只有象征它需要的窗口,所以它快速地投入了巨大的投入.split(text)编号 :splitAndSlice(text)——可切入串/可切入集.
变式(边缘/体积敏感目标)
相同的API,更小的活字(truncated Cl100k合并——通过前缀关闭有效BPE). 一个共享
hem 引擎;每个条目只捆绑自己的活字资产。 以
node wasm/scripts/gen-assets.mjs。 。 。 .
| 导入 | 词汇 | 总克(ESM) | 输入 | 计数 vs cl100k |
|---|---|---|---|---|
@bpinternal/thicktoken | cl100k( 全数) | ~647 KB 键 | ~60毫秒(每分钟一秒) | 准确 |
@bpinternal/thicktoken/lite | 单位50k | ~392 KB 键 | 25毫秒( 25毫秒) | 超额计算% 3-7% |
@bpinternal/thicktoken/micro | cl25k 坐标 | ~ 275 KB (韩语) | ~13个毫秒 | 超额计算 8-20% |
断头变体 超数 - 预算执行安全(它们稍作调整) 永远不要溢出一个窗口。 这样做 没有 用于计费或精确窗口 包装;通货膨胀取决于内容(最糟糕的是emoji/unicode-dense文本).
云旗工人(工人)
工人禁止运行时间 WASM 汇编(new WebAssembly.Module(bytes)),所以默认
构建——将引擎WASM作为基数64并编译在导入时无法运行
在这里。 有两个机制负责:
-
workerd导出条件( 0- config) . 荣誉的班德勒/跑步时间workerd条件 (wrangler does) 解决每个条目*.workerd.mjs内建 哪个引擎.wasm作为船舶 单独的 dinet 文件 并保持一个 静态 导入 - 工人在部署时编译,并将模块交给initSync预编译. 在工人身上,根头@bpinternal/thicktoken条目解析到 微观 (cl25k)资产——最小的足迹,迅速编制预算不需要 准确的Cl100k计数. 使用@bpinternal/thicktoken/full如果您真的需要精确的 cl100k 指望着工人. -
getWasmTokenizer({ wasmModule })(口服注射). 自己通过预编WebAssembly.Module(例如来自静态.wasm导入)和引擎跳过运行时间 完全编译 :import { getWasmTokenizer } from '@bpinternal/thicktoken/micro' import wasmModule from '@bpinternal/thicktoken/engine.wasm' // static import const tokenizer = await getWasmTokenizer({ wasmModule })
恶作剧 .gz 资产是纯数据(在WASM引擎内充气)并保持内置
每个建筑——只有引擎 .wasm 需要特殊处理.
免责声明
此软件包将在 @bpinternal 组织。 这个组织的所有软件包都用于 瓶装 内部的团队 并不适合我们的社区。 由于这些软件包适合我们自己的使用情况,它们可能不稳定的API,在没有警告的情况下接受中断的更改,文件很少,缺乏以社区为重点的支持。 然而,这些软件包仍然被故意公开,其重要原因如下: 我们爱开源. 因此,如果您想要安装或叉子,这个软件包完全可以自由操作。 我们强烈建议你正确标记你的版本.
博讯工程组.