溪客(编程代码) 溪客(编程代码)

  • 今天是2025年08月20日 Wednesday
  • 首页
  • 知识
  • 网址
  • AI助手

Python

首页 / 知识 / Python
  • 基础
    • Conda
    • Jupyter
    • dump
    • CSharp2Python
    • 关于模块导入
    • 关于推导式
    • 关于元组
    • set和数组的区别
    • 关于Literal
    • 关于iter
    • 关于setup.py
    • 路径拼接
    • 方法命名约定
  • 库
    • 其他
    • 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
    • langchain-chatchat
    • langchain-qianfan
**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)”的工具。**
© 2022 - 溪客(编程代码) - 粤ICP备10217501号 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)