AI API 的 Token 是怎么计费的?
简答:AI API 通常按输入 Token、输出 Token 分别计费,缓存输入、推理 Token、图片、文件或工具调用可能另行计算。最基本公式是:输入 Token ÷ 1,000,000 × 输入单价 + 输出 Token ÷ 1,000,000 × 输出单价;实际费用应以模型定价页和 API 返回的 usage 字段为准。
定义:Token 是模型处理文本、代码或部分多模态输入时使用的计量单位,API 计费通常按照不同类别的 Token 数量与对应单价计算,而不是按照调用次数或字数直接收费。
先用这张表判断:一次请求到底算哪些 Token
先记住一个结论:调用一次 API 不等于只消耗一个 Token。一次请求通常会把系统指令、用户问题、历史消息、检索内容、工具定义和工具返回结果等内容作为输入;模型生成的回答则属于输出。不同模型的 Token 切分方式可能不同,中文、英文、代码、空格和标点都不能简单按字符数换算。OpenAI 的 Token 说明也明确提醒,消息结构、工具、图像和文件会影响完整输入 Token 数。
| 用量类别 | 通常代表什么 | 计费时怎么处理 |
|---|---|---|
| 输入 Token | 系统提示词、用户问题、历史对话、RAG 文档、工具定义和工具结果等 | 按模型的输入单价计算 |
| 输出 Token | 模型生成的可见回答 | 按模型的输出单价计算,通常与输入单价不同 |
| 缓存输入 Token | 被提示词缓存重复复用的输入内容 | 若平台支持,可能使用单独的缓存输入价格 |
| 推理 Token | 推理型模型生成可见答案前使用的内部 Token | 按平台规则计入输出用量或单独展示,不能只看可见文字估算 |
| 工具或搜索用量 | 函数调用、网页搜索、文件搜索、图片或其他工具 | 可能按 Token 之外的调用次数、图片、存储或搜索次数计费 |
因此,聊天窗口里只看到几十行回答,并不代表账单只按这几十行计算。尤其是多轮对话、长系统提示词、RAG 文档和 Agent 工具链,会让输入上下文在每一步重复发送。
通用计费公式:按每百万 Token 换算
多数按 Token 计费的 API 都可以先用下面的基础公式估算:
基础费用 = 输入 Token 数 ÷ 1,000,000 × 输入单价 + 输出 Token 数 ÷ 1,000,000 × 输出单价
如果平台把缓存、推理或工具拆开计价,可以扩展为:
总费用 = 普通输入费用 + 缓存输入费用 + 输出费用 + 推理或工具费用 + 其他平台费用
下面用占位单价演示计算,数字不是任何平台的当前报价。假设某模型的输入单价为 X 美元/1M Token,输出单价为 Y 美元/1M Token;一次请求实际消耗 80,000 个输入 Token 和 6,000 个输出 Token,那么:
- 输入费用:
80,000 ÷ 1,000,000 × X = 0.08X 美元 - 输出费用:
6,000 ÷ 1,000,000 × Y = 0.006Y 美元 - 总费用:
0.08X + 0.006Y 美元
例如为了演示算术,若临时假设 X=2、Y=10,则总费用是 0.08×2 + 0.006×10 = 0.16 + 0.06 = 0.22 美元。这只是公式示例,不能当作实际模型价格。模型价格会变化,且不同平台可能有标准、批量、优先级、长上下文或区域处理等不同价格档位;查询具体金额时,应直接查看对应的OpenAI API 定价页、Anthropic 定价页或Gemini API 定价页。
完整请求中,哪些内容会进入输入 Token
可以把一次对话请求拆成以下几部分:
- 系统提示词:角色设定、输出格式、规则和安全要求。
- 当前用户消息:本次问题、代码、日志、表格或长文档。
- 历史消息:为了保持上下文,之前的用户问题和模型回答可能会再次发送。
- 检索内容:RAG 检索出来的网页片段、知识库段落或数据库记录。
- 工具定义:工具名称、参数说明、JSON Schema 和使用规则。
- 工具结果:函数执行返回的数据、搜索结果、文件内容或数据库结果。
- 多模态内容:图片、音频、文件等,具体计量方式由平台和模型决定。
只用字符串长度做估算往往不够。OpenAI 提供了 Tokenizer 和 tiktoken 用于纯文本估算,并说明完整请求还要考虑消息结构、工具、图像和文件;如果要核对实际请求,优先看响应中的 usage 字段。对于不同厂商,字段名和计量规则可能不同,不能把一个平台的 Tokenizer 结果直接套到另一个平台。
中文、英文和代码也不应简单按“一个字一个 Token”处理。官方资料给出的英文粗略估算只能作为方向判断,实际结果会受到模型、编码、空格、标点和内容类型影响。预算系统应使用真实请求的用量数据,而不是只根据字符数推算。
如何读取 API 返回的 usage 字段
最可靠的做法是:发起一次代表性请求,记录模型、请求内容和响应中的 usage,再将 Token 数代入定价公式。OpenAI 官方帮助文档列出的常见字段如下:
| 接口类型 | 输入字段 | 输出字段 | 总量字段 |
|---|---|---|---|
| Chat Completions | usage.prompt_tokens | usage.completion_tokens | usage.total_tokens |
| Responses | usage.input_tokens | usage.output_tokens | usage.total_tokens |
可以按以下步骤核对:
- 确认实际使用的模型 ID和接口类型。
- 从响应的
usage读取输入、输出和总 Token。 - 检查是否存在缓存、推理或其他详细用量字段。
- 打开该模型的官方定价页,确认输入、缓存输入和输出的单价。
- 按请求、按用户、按模型汇总,再与控制台的用量或成本报表对照。
流式请求要特别注意:OpenAI 的 Chat Completions 可以设置 stream_options.include_usage,在最后的结束块中返回整次请求的用量;如果连接中断,可能收不到最后的 usage 块,因此“没有收到用量字段”不能直接推断为“没有消耗 Token”。详细的字段和控制台查看方式可参考OpenAI API 用量与成本说明。
{
"usage": {
"prompt_tokens": 80000,
"completion_tokens": 6000,
"total_tokens": 86000
}
}
缓存、推理、工具和中断请求怎么影响成本
缓存输入:当相同的长前缀被重复使用时,部分平台会将命中的输入单独统计,并提供不同于普通输入的价格。是否自动缓存、缓存保留多久、缓存命中如何展示,必须按具体平台文档确认。
推理 Token:推理型模型可能在内部生成不会直接展示的推理 Token。OpenAI 文档说明,这类 Token 会计入输出用量;因此不能只用最终可见回答的字数估算费用。
工具调用:工具定义和工具返回结果会增加输入上下文;服务端搜索、文件搜索或其他内置工具还可能产生按调用次数、存储或搜索次数计费的项目。Anthropic 的官方定价文档也将工具使用拆分为输入 Token、输出 Token和服务端工具用量。
流式中断:客户端提前断开并不等于服务端没有产生用量。能否在响应中拿到最终 usage,取决于请求是否正常完成以及接口的流式实现;发生中断时,应同时保留请求 ID、服务端日志和平台账单数据进行核对。
多候选结果:如果接口支持一次生成多个候选答案,额外候选也会消耗输出 Token。不要只统计最终展示给用户的那一条结果。
降低 Token 成本的可操作清单
- 缩短固定提示词:删除重复规则、过时示例和无效背景,保留真正影响输出的约束。
- 控制历史消息:不要无限追加完整对话,可按阶段总结,或只保留与当前任务相关的消息。
- 限制检索内容:RAG 先过滤、去重和截断,避免把整篇文档原样塞进上下文。
- 设置输出上限:使用接口支持的最大输出参数,例如某些接口使用
max_output_tokens或max_completion_tokens;具体字段以端点文档为准。 - 区分模型任务:简单分类、抽取和短文本改写不一定需要高成本模型,但应使用代表性任务测试质量与总 Token,而不是只看每百万 Token 单价。
- 利用缓存或批处理:固定长提示词适合评估缓存,非实时任务可查看 Batch API 是否适用,具体折扣和限制以官方价格页为准。
- 记录真实用量:按请求保存模型、输入 Token、输出 Token、缓存 Token、工具调用和错误状态,避免只看账户余额。
建议先建立“每次任务成本”而不是只看“每次调用成本”。同一个调用次数下,长上下文、长输出和多轮 Agent 流程的总 Token 可能相差很大。
如何区分 API 费用、订阅费用和平台余额
API 成本核算至少要分成三层:第一层是 API 响应中的 Token 和工具用量;第二层是服务商控制台的用量、成本或账单报表;第三层是账户余额、预付费额度、订阅套餐或团队方案。它们回答的问题不同,不能用某一层的数据替代另一层。
例如,响应里的 usage.total_tokens适合核对单次请求;控制台适合按日期、项目、模型和用户汇总;余额或账单页面则用于确认实际扣款和可用额度。OpenAI 官方文档将 API 活动、信用额度和用量报表分别说明,使用时应同时核对请求日志和账单数据。若通过兼容接口或路由服务调用,还要查看该服务是否重新计算 Token、是否增加工具费用,以及最终结算口径。
截至 2026-10-24,本文不列具体模型单价,因为价格、模型和计费档位可能变化。使用前请打开对应服务商的官方定价页,并以请求返回的实际 usage 为准。
本文由本站作为与相关模型服务无隶属关系的第三方 AI API 指南站整理,具体模型能力、价格、额度和账单规则请以服务商官方文档为准。
常见问题
AI API 的 Token 是按调用次数收费吗?
通常不是。调用次数只表示请求数量,实际成本通常取决于输入 Token、输出 Token,以及平台是否另外计算缓存、推理、搜索、图片、文件或其他工具用量。
中文多少字等于一个 Token?
没有适用于所有模型的固定换算比例。Token 会受到模型编码、语言、空格、标点和内容类型影响,中文、英文和代码都应以对应模型的 Tokenizer 或 API 返回的 usage 为准。
为什么 API 返回的输出很短,费用却可能更高?
推理型模型可能产生不会直接展示的内部推理 Token;此外,历史对话、系统提示词、工具定义和检索结果都可能增加输入用量。应查看 usage 的详细字段,而不是只数可见回答的字符。
缓存输入 Token 一定免费吗?
不一定。缓存输入通常仍属于计费用量,只是部分平台会使用与普通输入不同的单价或计费规则。是否支持缓存、如何命中以及价格多少,要以具体模型的官方定价页为准。
流式输出中断后还能查到 Token 用量吗?
有时可以从控制台或账单报表核对,但客户端可能收不到最后的 usage 块。应保存请求 ID、服务端日志和已收到的响应片段,不要因为缺少最终字段就判断为零用量。
API 费用和聊天产品订阅费用是一回事吗?
不要混为一谈。API 请求应按 API 响应 usage、模型定价和 API 控制台报表核算;聊天产品或团队订阅则按其自身方案和账单规则核对,具体是否包含 API 额度要看对应官方说明。