Token 使用详解
了解 API 调用中各种 token 类型及其计费方式,帮助您更好地预估和控制成本。
什么是 Token
Token 是 AI 模型处理文本的基本单位。可以简单理解为:
- 英文:大约 1 个单词等于 1 个 token
- 中文:大约 1.5 到 2 个汉字等于 1 个 token
每次 API 调用都会消耗 token,包括您发送的内容(输入)和模型返回的内容(输出)。
基础 Token 类型
输入 Token (Input Tokens)
您发送给模型的全部内容,包括:
- 系统提示词 (System Prompt)
- 用户消息 (User Messages)
- 历史对话上下文
输出 Token (Output Tokens)
模型生成返回的全部内容。
举个例子:
输入: "请用一句话介绍北京" (约 10 个 token)
输出: "北京是中国的首都,拥有悠久的历史和丰富的文化遗产。" (约 20 个 token)高级 Token 类型
除了基础输入输出,现代 AI 模型还支持更丰富的能力,对应不同的 token 类型。
缓存 Token (Cache Tokens)
当您多次发送相同或相似的内容时,模型可以复用之前处理过的结果。这样做有两个好处:响应更快,费用更低。
| Token 类型 | 说明 | 典型价格比例 |
|---|---|---|
| 缓存创建 (Cache Creation) | 首次创建缓存 | 约为输入价格的 125% |
| 缓存读取 (Cache Read) | 从缓存读取命中内容 | 约为输入价格的 10% |
适用场景:
- 长系统提示词,比如角色设定、知识库内容
- 多轮对话中的历史消息
- 重复的文档分析任务
举个例子:
第一次请求:
输入: [长文档 10000 tokens] + "总结这篇文档"
消耗: 10000 输入 + 缓存创建
第二次请求(同一文档):
输入: [相同文档] + "提取关键数据"
消耗: 100 缓存读取 + 200 新输入
成本大幅降低推理 Token (Reasoning Tokens)
某些高级模型(如 OpenAI o1、Claude with extended thinking)会在生成回答前进行”思考”,这个过程会消耗额外的推理 token。
| Token 类型 | 说明 | 典型价格 |
|---|---|---|
| 推理 Token | 模型内部思考和推理过程 | 约为输出价格的 2-4 倍 |
需要注意几点:
- 推理过程对用户不可见
- 适合复杂问题,比如数学计算、编程、逻辑推理
- 模型会在质量、速度、成本之间自动权衡
适用场景:
- 复杂数学计算
- 代码生成与调试
- 多步骤推理问题
图像 Token (Image Tokens)
当您向支持视觉能力的模型发送图片时,图片会被转换为 token 进行处理。
| Token 类型 | 说明 | 计算方式 |
|---|---|---|
| 图像输入 (Image Input) | 图片识别与分析 | 根据图片尺寸计算 |
计算规则:
- 图片尺寸越大,消耗 token 越多
- 详细模式 (high detail) 消耗更多 token
- 支持格式:PNG、JPEG、WebP、GIF
举个例子:
请求: "这张图片里有什么?" + [一张 1024x1024 的图片]
消耗: 约 765 个图像输入 token + 文本输入 token音频 Token (Audio Tokens)
音频输入输出(语音对话)会消耗音频 token。
| Token 类型 | 说明 | 典型用途 |
|---|---|---|
| 音频输入 (Audio Input) | 语音识别 | 语音转文字 |
| 音频输出 (Audio Output) | 语音合成 | 文字转语音 |
Token 计费公式
您的实际费用由所有 token 类型共同决定:
总费用 = 输入费用 + 输出费用 + 缓存费用 + 推理费用 + 图像费用 + 音频费用| 费用项 | 计算方式 |
|---|---|
| 输入费用 | 文本输入 token x 输入单价 |
| 输出费用 | 文本输出 token x 输出单价 |
| 缓存创建费用 | 缓存创建 token x 缓存创建单价(或降级到输入单价) |
| 缓存读取费用 | 缓存读取 token x 缓存读取单价(或降级到输入单价) |
| 推理费用 | 推理 token x 推理单价(或降级到输出单价) |
| 图像费用 | 图像 token x 图像单价(或降级到输入单价) |
| 音频输入费用 | 音频输入 token x 音频输入单价(或降级到输入单价) |
| 音频输出费用 | 音频输出 token x 音频输出单价(或降级到输出单价) |
降级机制说明:如果某个模型未设置专项价格,系统会自动使用基础价格(输入或输出单价),确保计费正常进行。
如何查看 Token 使用量
在控制台查看
- 登录 MyTokenGate 控制台
- 进入「使用统计」页面
- 查看各类 token 的详细消耗
在 API 响应中查看
每次 API 调用的响应都会包含 usage 字段:
{
"usage": {
"prompt_tokens": 1000,
"completion_tokens": 500,
"total_tokens": 1500,
"prompt_tokens_details": {
"cached_tokens": 300,
"audio_tokens": 0,
"image_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 200,
"audio_tokens": 0
}
}
}字段说明:
prompt_tokens: 输入 token 总数completion_tokens: 输出 token 总数cached_tokens: 缓存命中的 tokenreasoning_tokens: 推理过程消耗的 tokenaudio_tokens: 音频相关 tokenimage_tokens: 图像相关 token
节省成本的技巧
善用缓存
- 将长提示词放在对话开头
- 多轮对话时复用相同的系统提示
- 批量处理相似请求
合理选择模型
- 简单任务使用轻量模型,比如 GPT-4o-mini
- 复杂任务再使用推理模型,比如 o1、Claude with extended thinking
控制输出长度
- 设置 max_tokens 限制最大输出
- 使用简洁的提示词引导模型精简回复
优化图片尺寸
- 使用合适尺寸的图片,避免过大
- 需要细节时使用 high detail,否则使用 low 或 auto
常见问题
为什么我的费用比预期高?
可能原因:
- 使用了支持推理的模型,推理过程消耗额外 token
- 发送了大尺寸图片
- 多轮对话累积了大量上下文
缓存一定能省钱吗?
是的。虽然缓存创建稍贵(约 125% 输入价格),但缓存读取只需约 10% 输入价格。从第二次起就能大幅降低成本,响应速度也更快。
如何知道模型是否支持某项能力?
查看模型参考页面,每个模型都标注了支持的能力,包括视觉、音频、推理等。
相关链接
Last updated on