使用tiktoken计算OpenAI文本token

724 阅读1分钟

#文本token计算

github.com/openai/open…

tiktoken 支持 OpenAI 模型使用的三种编码:

编码名称OpenAI 模型
cl100k_basegpt-4, gpt-3.5-turbo, text-embedding-ada-002
p50k_baseCodex 模型,text-davinci-002, text-davinci-003
r50k_base(或 gpt2GPT-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])