gpt-tokenizer:最快的JavaScript BPE分词器完全指南
【免费下载链接】gpt-tokenizerThe fastest JavaScript BPE Tokenizer Encoder Decoder for OpenAI's GPT models (gpt-5, gpt-o*, gpt-4o, etc.). Port of OpenAI's tiktoken with additional features.项目地址: https://gitcode.com/gh_mirrors/gp/gpt-tokenizer
gpt-tokenizer是一款支持所有OpenAI模型(包括GPT-5、GPT-4o、o1、o3、o4、GPT-4.1以及较旧的GPT-3.5、GPT-4等)的Token Byte Pair编码器/解码器。它是所有JavaScript环境中可用的最快、最小且占用资源最低的GPT分词器,采用TypeScript编写。
为什么选择gpt-tokenizer?🚀
在处理AI模型交互时,分词器的性能直接影响应用响应速度和用户体验。gpt-tokenizer凭借其卓越性能,已被Microsoft(Teams、GenAIScript)、Elastic(Kibana)等知名企业信任并采用。
性能优势一目了然
以下对比数据展示了gpt-tokenizer与其他主流分词器的核心性能差异:
gpt-tokenizer在编码和解码速度上远超同类产品,平均编码时间仅为6.89μs,解码时间0.55μs
gpt-tokenizer初始化时间仅43.74ms,内存占用35.98MB,在所有测试的分词器中保持最低资源消耗
核心功能亮点 ✨
gpt-tokenizer是NPM上功能最完整的开源GPT分词器,不仅移植了OpenAI的tiktoken功能,还增加了独特特性:
- 聊天消息专用处理:通过
encodeChat函数轻松处理聊天格式内容 - 全模型支持:兼容所有当前OpenAI模型(支持的编码包括:
r50k_base、p50k_base、p50k_edit、cl100k_base、o200k_base和o200k_harmony) - 同步工作模式:可在非async/await环境中加载和工作
- 生成器函数:提供编码器和解码器的生成器函数版本
- 流数据处理:支持异步数据流解码(使用
decodeAsyncGenerator和decodeGenerator处理任何可迭代输入) - 无全局缓存:避免了原始GPT-3-Encoder实现中的意外内存泄漏
- 高效令牌检查:内置
isWithinTokenLimit函数,无需编码整个文本/聊天即可评估令牌限制 - 成本估算功能:通过
estimateCost函数计算API使用成本 - 完整模型库:包含OpenAI模型的全面定价信息(参见
src/models.ts和src/models.gen.ts)
快速上手安装指南
NPM包安装
npm install gpt-tokenizerUMD模块引入
<script src="https://unpkg.com/gpt-tokenizer"></script> <script> // 全局变量形式使用 const { encode, decode } = GPTTokenizer_cl100k_base </script>根据模型选择相应编码脚本:
o200k_base.js- 适用于所有现代模型如gpt-5、gpt-4o、gpt-4.1、o1等o200k_harmony.js- 适用于开源Harmony模型如gpt-oss-20b和gpt-oss-120bcl100k_base.js- 适用于gpt-4和gpt-3.5p50k_base.js、p50k_edit.js、r50k_base.js- 适用于其他特定模型
直观的使用体验
gpt-tokenizer提供了用户友好的在线 playground,您可以在 https://gpt-tokenizer.dev/ 体验其功能:
gpt-tokenizer playground展示了令牌化过程、令牌数量统计和成本估算功能
基础用法示例
import { encode, encodeChat, decode, isWithinTokenLimit } from 'gpt-tokenizer' // 文本编码 const text = 'Hello, world!' const tokens = encode(text) // 令牌解码 const decodedText = decode(tokens) // 令牌数量检查 const tokenLimit = 10 const withinTokenLimit = isWithinTokenLimit(text, tokenLimit) // 聊天消息编码 const chat = [ { role: 'system', content: 'You are a helpful assistant.' }, { role: 'assistant', content: 'gpt-tokenizer is awesome.' }, ] const chatTokens = encodeChat(chat)模型特定导入
默认导入使用o200k_base编码(适用于现代OpenAI模型),也可直接导入特定模型:
import { encode, decode } from 'gpt-tokenizer/model/gpt-3.5-turbo'高级功能应用
令牌数量估算
import { countTokens } from 'gpt-tokenizer' const text = 'Hello, world!' const tokenCount = countTokens(text)聊天完成令牌计数
import { countChatCompletionTokens } from 'gpt-tokenizer/model/gpt-4o' const request = { messages: [ { role: 'system', content: 'You are a helpful assistant.' }, { role: 'user', content: 'Find the weather for San Francisco.' }, ], functions: [ { name: 'get_weather', description: 'Look up the weather for a city.', parameters: { type: 'object', required: ['city'], properties: { city: { type: 'string' }, unit: { type: 'string', enum: ['celsius', 'fahrenheit'] }, }, }, }, ], } const promptTokenEstimate = countChatCompletionTokens(request)成本估算
import { estimateCost } from 'gpt-tokenizer/model/gpt-4o' const tokenCount = 1000 const costEstimate = estimateCost(tokenCount) console.log('Main API input cost:', costEstimate.main?.input) console.log('Main API output cost:', costEstimate.main?.output)性能优化技巧
gpt-tokenizer使用LRU(最近最少使用)缓存来提高相似字符串的编码性能,默认存储100,000个合并令牌对。您可以根据具体用例调整此值:
import { setMergeCacheSize, clearMergeCache } from 'gpt-tokenizer' // 设置为5000个条目 setMergeCacheSize(5000) // 完全禁用缓存 setMergeCacheSize(0) // 清除缓存释放内存 clearMergeCache()支持的模型和编码
gpt-tokenizer支持所有OpenAI模型,包括最新模型,主要编码对应如下:
o系列模型(如o1-*、o3-*和o4-*)使用o200k_basegpt-4o使用o200k_basegpt-oss-*使用o200k_harmonygpt-4-*使用cl100k_basegpt-3.5-*使用cl100k_basetext-davinci-003使用p50k_base
完整模型列表请参见models.ts。
总结
gpt-tokenizer凭借其卓越的性能、完整的功能支持和易用性,成为JavaScript环境中处理GPT模型令牌化的理想选择。无论您是构建聊天应用、文本分析工具还是任何需要与OpenAI API交互的项目,gpt-tokenizer都能提供快速、可靠的令牌处理能力。
要开始使用,只需执行:
git clone https://gitcode.com/gh_mirrors/gp/gpt-tokenizer希望gpt-tokenizer能在您的项目中发挥价值!
【免费下载链接】gpt-tokenizerThe fastest JavaScript BPE Tokenizer Encoder Decoder for OpenAI's GPT models (gpt-5, gpt-o*, gpt-4o, etc.). Port of OpenAI's tiktoken with additional features.项目地址: https://gitcode.com/gh_mirrors/gp/gpt-tokenizer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考