#文本token计算
tiktoken 支持 OpenAI 模型使用的三种编码:
| 编码名称 | OpenAI 模型 |
|---|---|
cl100k_base | gpt-4, gpt-3.5-turbo, text-embedding-ada-002 |
p50k_base | Codex 模型,text-davinci-002, text-davinci-003 |
r50k_base(或 gpt2) | GPT-3 模型如 davinci |
1. 导入 tiktoken
import tiktoken
2. 加载编码
encoding = tiktoken.get_encoding("cl100k_base")
#使用 `tiktoken.encoding_for_model()` 以自动加载给定模型名称的正确编码。
encoding = tiktoken.encoding_for_model("gpt-3.5-turbo")
3. 使用 encoding.encode() 将文本转换为标记
encoding.encode("tiktoken 很棒!")
通过计算 .encode() 返回的列表的长度来计算标记的数量。
def num_tokens_from_string(string: str, encoding_name: str) -> int:
"""返回文本字符串中标记的数量。"""
encoding = tiktoken.get_encoding(encoding_name)
num_tokens = len(encoding.encode(string))
return num_tokens
4. 使用 encoding.decode() 将标记转换为文本
.decode() 将标记整数列表转换为字符串。
encoding.decode([83, 1609, 5963, 374, 2294, 0])