news 2026/7/20 18:42:09

gpt-tokenizer:最快的JavaScript BPE分词器完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
gpt-tokenizer:最快的JavaScript BPE分词器完全指南

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_basep50k_basep50k_editcl100k_baseo200k_baseo200k_harmony
  • 同步工作模式:可在非async/await环境中加载和工作
  • 生成器函数:提供编码器和解码器的生成器函数版本
  • 流数据处理:支持异步数据流解码(使用decodeAsyncGeneratordecodeGenerator处理任何可迭代输入)
  • 无全局缓存:避免了原始GPT-3-Encoder实现中的意外内存泄漏
  • 高效令牌检查:内置isWithinTokenLimit函数,无需编码整个文本/聊天即可评估令牌限制
  • 成本估算功能:通过estimateCost函数计算API使用成本
  • 完整模型库:包含OpenAI模型的全面定价信息(参见src/models.tssrc/models.gen.ts

快速上手安装指南

NPM包安装

npm install gpt-tokenizer

UMD模块引入

<script src="https://unpkg.com/gpt-tokenizer"></script> <script> // 全局变量形式使用 const { encode, decode } = GPTTokenizer_cl100k_base </script>

根据模型选择相应编码脚本:

  • o200k_base.js- 适用于所有现代模型如gpt-5gpt-4ogpt-4.1o1
  • o200k_harmony.js- 适用于开源Harmony模型如gpt-oss-20bgpt-oss-120b
  • cl100k_base.js- 适用于gpt-4gpt-3.5
  • p50k_base.jsp50k_edit.jsr50k_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_base
  • gpt-4o使用o200k_base
  • gpt-oss-*使用o200k_harmony
  • gpt-4-*使用cl100k_base
  • gpt-3.5-*使用cl100k_base
  • text-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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 18:39:29

爱备管理平台-SQL Server在线管理平台,让SQL备份简单方便!

企业级 SQL Server 备份解决方案&#xff1a;爱备 Aibak 云备份管理平台完整使用指南摘要&#xff1a;本文全面介绍了爱备&#xff08;Aibak&#xff09;SQL Server 云备份管理平台&#xff0c;这是一套集本地定时备份、云端异地同步与批量可视化还原于一体的企业级解决方案。文…

作者头像 李华
网站建设 2026/7/20 18:36:56

警惕超低价CPU陷阱:八核十六线程背后的真相

1. 警惕超低价CPU的陷阱&#xff1a;八核十六线程背后的真相最近在某二手交易平台看到一款标价仅8元的"八核十六线程"CPU&#xff0c;参数看起来相当诱人&#xff1a;三级缓存20MB&#xff0c;还支持所谓的"鸡血模式"。作为一名有十年硬件维修经验的从业者…

作者头像 李华
网站建设 2026/7/20 18:36:43

从“失败专利”到“AI时代之问”:用东方哲学构建技术的温柔坐标

从“失败专利”到“AI时代之问”&#xff1a;用东方哲学构建技术的温柔坐标摘要&#xff1a;当国家在2026年提出宏大的“AI时代之问”时&#xff0c;我的开源仓库“道息实验室”里&#xff0c;早已躺着一套名为“QiLink五炁”的微观回应。这并非巧合&#xff0c;而是底层逻辑的…

作者头像 李华
网站建设 2026/7/20 18:35:04

如何构建你的智能股票分析系统:从手动操作到全自动化的终极指南

如何构建你的智能股票分析系统&#xff1a;从手动操作到全自动化的终极指南 【免费下载链接】daily_stock_analysis LLM 驱动的多市场股票智能分析系统&#xff1a;多源行情、实时新闻、决策看板与自动推送&#xff0c;支持零成本定时运行。 LLM-powered multi-market stock an…

作者头像 李华
网站建设 2026/7/20 18:29:16

适合内容创作者的AI音乐平台:短视频、自媒体和 Vlog 配乐怎么选

适合内容创作者的AI音乐平台&#xff1a;短视频、自媒体和 Vlog 配乐怎么选自媒体配乐的难处&#xff0c;不只是“找不到好听的”做短视频久了就会发现&#xff0c;配乐经常比剪画面更磨人。素材库翻了半小时&#xff0c;听起来都差不多&#xff1b;好不容易找到一首合适的&…

作者头像 李华