大语言模型 API Token 消耗深度剖析

大语言模型 API Token 消耗深度剖析

在调用大语言模型(LLM)API 时,Token 统计不仅是计费的唯一依据,更是评估模型推理深度、响应延迟及上下文窗口管理的关键指标。本文旨在通过源码解析,帮助开发者彻底理解 Token 的消耗逻辑。


一、 数据结构源码定义

以下是基于主流 API(如 OpenAI 协议)的底层类定义,展示了 Token 消耗的层级结构:

python 复制代码
from typing import Optional
from pydantic import BaseModel

class PromptTokensDetails(BaseModel):
    """输入 token(Prompt)的详细组成"""
    audio_tokens: Optional[int] = None    # 提示词中的音频输入 token 数
    cached_tokens: Optional[int] = None   # 提示词中命中缓存的 token 数

class CompletionTokensDetails(BaseModel):
    """输出 token(Completion)的详细组成"""
    accepted_prediction_tokens: Optional[int] = None  # 预测内容被模型采纳的 token 数
    audio_tokens: Optional[int] = None                # 模型生成的音频输出 token 数
    reasoning_tokens: Optional[int] = None            # 模型生成的推理/思考 token 数
    rejected_prediction_tokens: Optional[int] = None  # 未被采纳的预测 Token 数

class CompletionUsage(BaseModel):
    """单次请求的完整用量统计"""
    prompt_tokens: int              # 输入总 token 数
    completion_tokens: int          # 输出总 token 数
    total_tokens: int               # 总计消耗 (Prompt + Completion)
    
    prompt_tokens_details: Optional[PromptTokensDetails] = None
    completion_tokens_details: Optional[CompletionTokensDetails] = None

二、 Prompt 消耗组成 (输入端)

prompt_tokens 代表模型在生成第一个字符前必须"阅读"的信息总量。在 RAG(检索增强生成)场景中,这部分的成本控制至关重要。

Prompt 构成详表

组成部分 对应源码字段 物理意义 计费与性能影响
缓存 token cached_tokens 复用了之前请求中已处理过并存储在服务器缓存中的内容。 核心优化点。通常有显著价格折扣,且能极大提升首字响应速度 (TTFT)。
音频 token audio_tokens 输入中包含的语音数据、音频采样转换而来的等效 token。 适用于多模态原生语音交互。
常规输入 (隐式计算) 包含 System Prompt、历史上下文、用户当前提问等。 按标准输入单价全额计费。

三、 Completion 消耗组成 (输出端)

completion_tokens 反映了模型的"思考成本"和"表达成本"。现代高性能模型(如 DeepSeek-R1, GPT-4o)的输出 Token 由多部分组成,即使最终看到的文字很少,产生的 Token 也可能非常多。

Completion 构成详表

组成部分 对应源码字段 物理意义 是否在最终答案中可见
推理 token reasoning_tokens 模型在给出答案前进行的逻辑推演、思维链(CoT)内容。 通常不可见(后台运行)
已接受预测 accepted_prediction_tokens 预测输出(Predicted Outputs)技术中模型猜对并采纳的 token。 可见
被拒绝预测 rejected_prediction_tokens 预测输出中猜错的部分。虽未采纳,但已产生计算消耗。 不可见
音频 token audio_tokens 模型直接生成的语音数据转换而来的等效 token。 以声音形式输出
标准文本 (隐式计算) 模型根据推理结果输出的最终文字答案。 可见

四、 核心逻辑总结

1. 计算公式

  • 总消耗公式 :
    total_tokens = prompt_tokens + completion_tokens
  • 输入细分公式 :
    prompt_tokens = cached_tokens + audio_tokens + text
  • 输出细分公式 :
    completion_tokens = reasoning + accepted_pred + rejected_pred + audio + text

2. 开发者调优建议

  • 警惕推理陷阱 :在处理复杂逻辑时,reasoning_tokens 消耗极快。对于不需要深度逻辑的任务,建议降级使用非推理模型以节省开支。
  • 利用缓存优化 :在 RAG 架构中,尽量保持 Prompt 头部(如大型知识库或 System Prompt)稳定,以提高 cached_tokens 命中率,从而降低 50%-90% 的输入成本。
  • 窗口溢出风险 :请记住,无论是隐藏的"推理 token"还是被丢弃的"预测 token",都会占用模型的上下文窗口总上限 。如果任务中断,请检查是否因推理过长导致触发 length 限制。
相关推荐
Ai-_Man4 分钟前
Coze扣子还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·1024程序员节
机器学习之心15 分钟前
基于贝叶斯物理信息神经网络的矿产预测与不确定性量化,MATLAB代码及复现报告
人工智能·神经网络·matlab·贝叶斯物理信息神经网络
weixin_4492293819 分钟前
Skill应用11:详细设计自动生成|强制“文字先行”,杜绝AI只堆代码不讲设计
人工智能·agent·架构设计·详细设计·trae·skill应用
AiNightVision19 分钟前
电力巡检夜视方案选型指南——无人机/机器人/固定监测三种场景怎么选
人工智能·科技·车载系统·机器人·无人机·边缘计算·视频
涛声依旧-底层原理研究所22 分钟前
拆解 AI Agent 的四个内核:Loop、Tools、Memory 与 Harness
人工智能·架构
田里的水稻31 分钟前
FA_CNN卷积神经网络十八---感知机到多层感知机PyTorch
人工智能·pytorch·python
irislinAmelia40 分钟前
汽车产线端侧AI视觉质检完整指南
人工智能·汽车
Highcharts.js43 分钟前
CSUN 2026|Highcharts无障碍数据与AI分享
javascript·人工智能·数据分析·highcharts·图表开发
J-JunLiang1 小时前
提示词修炼手册-04-让AI先想后说
人工智能·提示词工程·agent prompt·agent提问·提示词修炼手册
終不似少年遊*1 小时前
【Skill】为中型研发团队制作的敏捷迭代AI副驾Skill
人工智能·python·华为云·agent·ai编程·skill