Code0

AI API 的 Token 是怎么计费的?

更新于 2026-10-24 · code0.cyou

简答: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,那么:

例如为了演示算术,若临时假设 X=2、Y=10,则总费用是 0.08×2 + 0.006×10 = 0.16 + 0.06 = 0.22 美元。这只是公式示例,不能当作实际模型价格。模型价格会变化,且不同平台可能有标准、批量、优先级、长上下文或区域处理等不同价格档位;查询具体金额时,应直接查看对应的OpenAI API 定价页、Anthropic 定价页或Gemini API 定价页。

完整请求中,哪些内容会进入输入 Token

可以把一次对话请求拆成以下几部分:

  1. 系统提示词:角色设定、输出格式、规则和安全要求。
  2. 当前用户消息:本次问题、代码、日志、表格或长文档。
  3. 历史消息:为了保持上下文,之前的用户问题和模型回答可能会再次发送。
  4. 检索内容:RAG 检索出来的网页片段、知识库段落或数据库记录。
  5. 工具定义:工具名称、参数说明、JSON Schema 和使用规则。
  6. 工具结果:函数执行返回的数据、搜索结果、文件内容或数据库结果。
  7. 多模态内容:图片、音频、文件等,具体计量方式由平台和模型决定。

只用字符串长度做估算往往不够。OpenAI 提供了 Tokenizer 和 tiktoken 用于纯文本估算,并说明完整请求还要考虑消息结构、工具、图像和文件;如果要核对实际请求,优先看响应中的 usage 字段。对于不同厂商,字段名和计量规则可能不同,不能把一个平台的 Tokenizer 结果直接套到另一个平台。

中文、英文和代码也不应简单按“一个字一个 Token”处理。官方资料给出的英文粗略估算只能作为方向判断,实际结果会受到模型、编码、空格、标点和内容类型影响。预算系统应使用真实请求的用量数据,而不是只根据字符数推算。

如何读取 API 返回的 usage 字段

最可靠的做法是:发起一次代表性请求,记录模型、请求内容和响应中的 usage,再将 Token 数代入定价公式。OpenAI 官方帮助文档列出的常见字段如下:

接口类型输入字段输出字段总量字段
Chat Completionsusage.prompt_tokensusage.completion_tokensusage.total_tokens
Responsesusage.input_tokensusage.output_tokensusage.total_tokens

可以按以下步骤核对:

  1. 确认实际使用的模型 ID和接口类型。
  2. 从响应的 usage 读取输入、输出和总 Token。
  3. 检查是否存在缓存、推理或其他详细用量字段。
  4. 打开该模型的官方定价页,确认输入、缓存输入和输出的单价。
  5. 按请求、按用户、按模型汇总,再与控制台的用量或成本报表对照。

流式请求要特别注意: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 成本的可操作清单

建议先建立“每次任务成本”而不是只看“每次调用成本”。同一个调用次数下,长上下文、长输出和多轮 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 额度要看对应官方说明。

相关阅读

参考资料

  1. OpenAI:查看 API 用量和成本
  2. OpenAI API:官方定价
  3. Anthropic:Claude API 定价
  4. Google:Gemini Developer API 价格