tiktoken

精准算 token、快速切文本,LLM 应用必备

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 基础设施 🍴 复刻 1670 🐛 待处理 149 👀 关注 208
GitHub ↗
GitHub 星标 ★ 19619
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费(MIT许可证)

项目预览

tiktoken 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类基础设施
开发团队openai
定价模式🏷️完全免费
价格说明开源免费(MIT许可证)
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MIT
主要语言Python
GitHub 星标★ 19619
上线时间2022-12-01 00:00:00
代码更新2026-11-08
仓库体积122 KB
本站数据更新2026-11-09
维护状态活跃
收录时间2026-11-09
浏览次数0

项目介绍

tiktoken 是 OpenAI 开源的快速 BPE 分词器,专门用于其 GPT 系列模型的分词与 token 计数。它解决的核心问题是:在调用大模型前后,开发者需要精确知道一段文本会消耗多少 token、如何切分,以便估算成本、控制上下文长度、做截断与分块。tiktoken 用 Rust 实现核心算法并提供 Python 绑定,速度远快于纯 Python 实现,同时支持按模型名或编码名(如 cl100k_base、o200k_base)加载对应词表,并提供 encode、decode、批量编码等接口。它被广泛用于 ChatGPT 应用、RAG 分块、提示词长度校验、计费预估等场景,是 LLM 应用基础设施中的常用组件。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-11-09 · 当前星标 ★ 19619

使用教程

难度:入门 约 5 分钟 部署方式:库/依赖 4 步

环境要求

  • Python 环境(README 只给出 pip 安装方式)
  • 可用的 pip 包管理工具
  • 能访问 PyPI 的网络环境

安装与启动步骤

  1. 1确认 Python 可用

    安装前先确认本机已装 Python 且 pip 可用,避免安装时报命令不存在。

    python --version
    pip --version
  2. 2安装 tiktoken

    README 给出的唯一安装方式是从 PyPI 安装,直接执行即可。

    pip install tiktoken
  3. 3按编码名编码文本

    用 o200k_base 编码名加载词表,encode 切分、decode 还原,验证分词可逆。

    python -c "import tiktoken; enc = tiktoken.get_encoding('o200k_base'); assert enc.decode(enc.encode('hello world')) == 'hello world'; print('ok')"
  4. 4按模型名加载词表

    若已知模型名,用 encoding_for_model 自动匹配该模型对应的分词器。

    python -c "import tiktoken; enc = tiktoken.encoding_for_model('gpt-4o'); print(enc.encode('hello world'))"

关键配置

配置项必填说明示例
编码名 encoding_name是通过 get_encoding 指定词表,如 o200k_base、cl100k_baseo200k_base
模型名 model_name否通过 encoding_for_model 自动选择该模型对应的分词器gpt-4o

如何确认成功

运行示例代码无报错,且 enc.decode(enc.encode("hello world")) 能还原出原文 hello world。

常见问题

Q:编码名和模型名该用哪个?

A:已知具体模型时用 encoding_for_model(模型名) 更省心;只想指定词表时用 get_encoding(编码名),如 o200k_base。

Q:为什么 decode 能还原原文?

A:README 说明 BPE 分词是可逆且无损的,所以 encode 后再 decode 会得到与输入一致的文本。

Q:安装失败怎么排查?

A:先确认 pip 版本与网络是否正常,再重试 pip install tiktoken;仍失败可到 GitHub issue tracker 提问。

Q:有更多用法示例吗?

A:README 指向 OpenAI Cookbook 中的 How_to_count_tokens_with_tiktoken 示例笔记,以及 tiktoken/core.py 的接口文档。

注意事项

  • README 只提供 pip 安装方式,未提供源码编译或其他安装途径。
  • README 称其比同类开源分词器快 3-6 倍(基于 1GB 文本、GPT-2 词表测试)。
  • 遇到问题可在 GitHub issue tracker 提问。

核心亮点

  • Rust 实现核心算法,编码速度显著优于纯 Python 分词库
  • 按模型名或编码名自动匹配词表,接口简单,encode/decode 开箱即用
  • 支持批量编码与特殊 token 处理,便于上下文长度控制和成本预估

不足之处

  • 词表与 OpenAI 模型强绑定,对其他厂商模型的分词支持有限
  • 特殊 token 与编码选择需开发者自行理解,新手容易误用

适用场景

  • 调用大模型前估算 prompt 的 token 数与费用
  • RAG 或长文档处理中按 token 边界做文本分块与截断
  • 校验提示词是否超出模型上下文窗口长度

替代项目

Hugging Face tokenizers、sentencepiece、GPT2 tokenizer

上一篇:ttsim

下一篇:没有了!

同类项目推荐

memory-opensource 开源

让AI记住关键信息,毫秒级精准召回

Predictive memory layer for AI agents. MongoDB + Qdrant + Neo4j with multi-tier cach···

★ 73 2026-08-09
guardian-db 开源

本地优先、点对点同步的 Rust 去中心化数据库

GuardianDB: High-performance, local-first decentralized database that stores and pro···

★ 215 2026-08-09
hub 开源

用 Rust 打造的高性能 LLM 网关,自带监控,轻松管理大规模 AI 请求。

High-scale LLM gateway, written in Rust. OpenTelemetry-based observability included

★ 233 2026-08-09
gpt-tokenizer 开源

纯 JS 实现 GPT 分词,前端也能算 token

The fastest JavaScript BPE Tokenizer Encoder Decoder for OpenAI's GPT models (gpt-5,···

★ 857 2026-10-31
nobodywho 开源

让任何设备都能流畅跑大模型,边缘 AI 推理引擎

NobodyWho is an inference engine that lets you run LLMs locally and efficiently on a···

★ 1671 2026-08-09
OpenArc 开源

让英特尔设备也能一键跑起 OpenAI 兼容的大模型服务

Inference engine for Intel devices. Serve LLMs, VLMs, Whisper, Kokoro-TTS, Embedding···

★ 548 2026-09-23
stable-diffusion-deploy 开源

一键部署 Stable Diffusion 到云端,自动负载均衡与动态批处理。

Learn to serve Stable Diffusion models on cloud infrastructure at scale. This Lightn···

★ 391 2026-08-09
foxglove-sdk 开源

多语言记录机器人数据,一键回放可视化

Log and visualize multimodal data for robotics and physical AI

★ 320 2026-11-01
recodex 开源

自建 Codex 中转站,轻松管理 AI 请求

Codex中转,可自部署的代理服务

★ 68 2026-08-09