Python
- 基础
-
库
- 其他
- argparse命令行参数解析
- asyncio自带异步编程库
- aiofiles异步文件读写库
- beautifulsoup4_HTML_XML解析库
- colorama_在终端输出漂亮的字
- datasets数据集处理
- html2text
- httpx_HTTP请求库
- litellm
- loguru日志库
- numpy科学计算基础库
- pillow图像处理
- pydantic数据验证
- pyyaml
- requests_HTTP请求库
- tenacity重试
- tiktoken计算Token量
- torch机器学习_深度学习框架
- tomli TOML文件解析库
- tomllib 自带TOML文件解析库
- unidiff_文本_文件差异对比
- uvicorn_Web服务器
- langchain
**tiktoken** 是 **OpenAI 官方提供的一个轻量级 Python 库**,主要用于 **计算文本的 token 数量**(也就是“分词数量”)。
---
## 一、tiktoken 是什么?(简单理解)
- **tiktoken 的作用:统计一段文本被分词(tokenize)后有多少个 token。**
- 它是由 **OpenAI 官方推出** 的,目的是帮助开发者在使用 OpenAI API(如 GPT 模型)时,**准确估算输入或输出文本的 token 数量**,因为:
- **API 是按 token 数计费的**
- **模型对输入和输出都有 token 数量的限制**
- **了解 token 数有助于控制成本和优化提示词**
---
## 二、为什么要用 tiktoken?
在使用 **GPT 类模型(如 gpt-3.5-turbo、gpt-4 等)** 时:
- 模型 **不直接处理文字,而是处理 token**
- **1 个 token 通常是几个字母、1个中文词或半个词语**(不是 1 个汉字 = 1 个 token)
- **输入和输出的 token 总数有限制**(比如 gpt-3.5-turbo 限制约 4096 tokens)
- **费用是按照输入+输出的 token 总数计算的**
👉 所以,**你需要知道你的文本会被分成多少 token,以免超出限制或产生意外费用。**
而 **tiktoken 就是用来帮你精确计算这些 token 数的工具。**
---
## 三、tiktoken 能做什么?
| 功能 | 说明 |
|------|------|
| **计算文本的 token 数量** | 输入一段文字,返回它会被分成多少个 token |
| **支持多种模型** | 比如 gpt-3.5-turbo、gpt-4、text-davinci-003 等,每种模型的分词规则略有不同 |
| **支持编码与解码** | 不仅能统计 token 数,还能把 token 转回文本,或把文本转成 token ID |
| **轻量、官方维护** | 由 OpenAI 官方提供,和实际 API 使用的分词器一致 |
---
## 四、安装 tiktoken
使用 pip 安装:
```bash
pip install tiktoken
```
---
## 五、简单使用示例
### 示例 1:计算一段中文或英文的 token 数
```python
import tiktoken
# 加载 gpt-3.5-turbo 模型的分词规则
enc = tiktoken.encoding_for_model("gpt-3.5-turbo")
# 一段文本
text = "你好,这是一个 tiktoken 的测试。Hello, this is a tiktoken test."
# 计算 token 数
num_tokens = len(enc.encode(text))
print(f"这段文本的 token 数量是:{num_tokens}")
```
🔍 输出类似:`这段文本的 token 数量是:17`(具体数字取决于文本内容和模型)
---
### 示例 2:查看文本会被分成哪些 token(调试用)
```python
tokens = enc.encode(text)
print(tokens) # 输出的是 token ID 列表
decoded_text = enc.decode(tokens)
print(decoded_text) # 可以还原回原始文本(大部分情况下)
```
---
## 六、常见用途
- **估算 prompt 的 token 数,避免超出模型限制**
- **计算回复可能产生的 token,控制成本**
- **优化提示词,减少冗余内容,节省 token**
- **和 OpenAI API 配合使用前,预估费用和长度**
---
## 七、总结(中文)
> **tiktoken 是 OpenAI 官方提供的工具库,用来计算文本被分词后的 token 数量,帮助开发者在使用 GPT 类模型时更好地控制输入长度、费用和模型限制。**
>
> 如果你在调用 **OpenAI 的 GPT API(如 gpt-3.5-turbo、gpt-4)**,**tiktoken 是必备的小工具,用来精准统计 token,防止超限或浪费费用。**
简单来说:**tiktoken = 用来算 GPT 模型里“文字被切成多少块(token)”的工具。**