输入输出tokens怎么计算的?
每家模型厂商、每个模型,都有不同的 tokens计算公式,所有输入输出tokens数量由模型厂商计算,并在返回API请求是包含在usage内。
流式请求 使用 include_usage 参数显示usage
- 
功能说明: - 在请求体中设置 "stream_options": {"include_usage": True}可以在流式响应结束时返回 token 使用统计(usage)。
 
- 在请求体中设置 
- 
前提条件: - 必须同时启用 "stream": True(开启流式传输),否则该参数无效。
 
- 必须同时启用 
- 
请求体示例: { "stream": true, "stream_options": { "include_usage": true } }
- 
注意事项: - 仅当流式传输完成时,usage数据才会在最终返回的块中显示。
 
- 仅当流式传输完成时,
- 
适用场景: - 需要实时获取流式响应,同时希望最终统计 token 消耗的情况。
 
非流返回示例(下面是 gpt-4o-mini 返回内容):
{
  "id":"chatcmpl-BteZIMPUksv1dj4t2dUULu6aM8QTb",
  "object":"chat.completion",
  "created":1752603684,
  "model":"gpt-4o-mini",
  "choices":[
    {
      "index":0,
      "message":{
        "role":"assistant",
        "content":"1+1等于2。",
        "refusal":null,
        "annotations":[
        ]
      },
      "logprobs":null,
      "finish_reason":"stop"
    }],
  "usage":{
    "prompt_tokens":15,
    "completion_tokens":8,
    "total_tokens":23,
    "prompt_tokens_details":{
      "cached_tokens":0,
      "audio_tokens":0
    },
    "completion_tokens_details":{
      "reasoning_tokens":0,
      "audio_tokens":0,
      "accepted_prediction_tokens":0,
      "rejected_prediction_tokens":0
    }
  },
  "system_fingerprint":"fp_efad92c60b"
}API响应中的usage字段会返回tokens消耗详情:
| 字段 | 说明 | 示例值 | 
|---|---|---|
| prompt_tokens | 用户输入消耗的tokens | 15 | 
| completion_tokens | AI回答消耗的tokens | 8 | 
| total_tokens | 本次对话总tokens(输入+输出+推理) | 23 | 
| 如果你发现 total_tokens 大于 输入输出tokens之和,说明 total_tokens 里还包含了未展示的推理tokens,比如 gemini-2.5-pro 就会出现这种情况。 |