
tiktoken-go
在 Go 中轻松切分 token,精准控制 OpenAI 费用
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 960
技术标签
使用教程
环境要求
- Go 1.18+
安装与启动步骤
-
1引入包
标准 go get 即可。
go get github.com/pkoukk/tiktoken-go -
2按模型取编码器
传模型名即可拿到对应编码。
tkm, err := tiktoken.EncodingForModel("gpt-3.5-turbo") -
3计数
对文本编码后取长度即为 token 数。
tokens := tkm.Encode(text, nil, nil) fmt.Println(len(tokens)) -
4配缓存目录
不设的话每次首次初始化都会重新下载词典。
export TIKTOKEN_CACHE_DIR=/path/to/cache
如何确认成功
同一段文本的计数结果与 OpenAI 官方 tiktoken(Python)一致。
常见问题
Q:结果为 0?
A:确认传入的模型名受支持,并检查词典是否下载成功。
注意事项
- 离线环境可用 SetBpeLoader 换自定义词典加载器。
- 还提供 chat 消息级别的 token 计数辅助函数。
核心亮点
- 与 OpenAI 官方 tiktoken 算法一致,token 计数准确
- 纯 Go 实现,无外部依赖,易于集成到现有 Go 服务
- 提供简单 API,支持多种模型编码器切换
不足之处
- 文档较少,示例不全面,上手需参考官方 Python 版
- 早期项目,API 可能变动,稳定性待观察
适用场景
- Go 后端服务中统计请求 token 消耗以计算费用
- 在生成式 AI 应用中限制输入长度,避免超出模型上下文窗口
- 批量处理文本时预切分 token,优化下游任务效率
替代项目
tiktoken(官方 Python 版)、js-tiktoken(JavaScript 版)、go-tiktoken(其他 Go 实现)
下一篇:corpusos
同类项目推荐
Portable-Local-Studio
开源
一个界面跑齐本地画图、聊天、朗读和听写,免安装随身带
Portable local AI studio for Windows, Linux, and macOS. Zero-setup GUI for Image Gen···
Lexoid
开源
把脏乱数据变成 AI 能用的干净上下文
The open-source universal adapter for LLMs. Turn messy real-world data into clean, a···
onnxruntime
开源
一次导出模型,多端高效跑推理
ONNX Runtime: cross-platform, high performance ML inferencing and training accelerat···
deeplake
开源
海量训练数据随手存取,喂给模型不卡壳
Deeplake is AI Data Runtime for Agents. It provides serverless postgres with a multi···
paas-data-ingestion
开源
用Pulumi+Lambda+Snowflake搭建可重放的数据管道,告别数据不一致
Ingesting data with Pulumi, AWS lambdas and Snowflake in a scalable, fully replayabl···
automem
开源
给 AI 装上跨会话的长期记忆,让对话更连贯
Long-term memory for AI assistants. Graph + vector store that recalls decisions, rel···
bodywork-core
开源
用声明式配置,在 Kubernetes 上自动跑通 ML 流水线和模型上线。
ML pipeline orchestration and model deployments on Kubernetes.
gateway
开源
用 Rust 和 Go 打造 AI 时代的 Kubernetes 网关
Nantian Gateway — Kubernetes Gateway API implementation with AI proxy, WASM plugin ···
jangq
开源
把 GGUF 模型搬上 Mac 的 MLX,量化后照样跑得动
JANG — GGUF for MLX. YOU MUST USE JANG_Q RUNTIME. Adaptive Mixed-Precision Quantiza···