Feiyuan AI

AI API Token 计费怎么算?

更新于 2026-10-26 · feiyuanapi.cyou

简答:AI API 通常按输入 Token、输出 Token及模型对应单价计算,缓存、推理、多模态和工具调用可能使用独立计费项。先查看当前模型价格表,再读取响应中的 usage 字段,按“Token÷每百万×单价”逐项相加,最后用日调用量推算月预算。

定义:Token 是模型处理文本、代码或多模态内容时使用的分词单位,AI API Token 计费就是按照不同类别 Token 的实际数量乘以对应单价。

先用这张表判断:你到底要算哪些 Token

不要只看接口调用次数或最终显示的回答长度。一次请求可能同时包含输入 Token、输出 Token、缓存 Token、推理 Token,以及图像、音频、工具调用产生的额外用量。不同平台字段名称不完全相同,最终应以所调用接口返回的 usage 或 usageMetadata 为准。

计费项目含义核对重点
输入 Token发送给模型的系统提示词、用户消息、历史对话、文档和工具结果等内容。多轮对话可能重新发送历史上下文,不能只按本轮新输入估算。
输出 Token模型生成的可见回答,以及部分模型可能产生的推理 Token。输出单价通常与输入单价不同,应单独计算。
缓存 Token被缓存并再次使用的输入内容。缓存读取、缓存写入可能有不同价格,不能直接当作普通输入。
推理 Token推理模型内部生成、用于完成回答的 Token。部分平台会单独展示,部分价格页把它计入输出价格。
多模态或工具用量图像、音频、视频、搜索、代码执行或其他工具产生的计费项目。确认价格页是否按 Token、请求次数、时长或其他单位计费。

OpenAI 的 Chat Completions 响应常见字段包括 prompt_tokens、completion_tokens 和 total_tokens;Responses 接口则使用 input_tokens、output_tokens 和 total_tokens。部分响应还会提供缓存 Token 和推理 Token明细,可参考 OpenAI API 用量与成本说明 以及 Chat Completions API 响应结构。

AI API Token 计费公式怎么套

当价格表按“每百万 Token”展示时,最基本的公式是:

总费用 = 输入 Token ÷ 1,000,000 × 输入单价 + 输出 Token ÷ 1,000,000 × 输出单价

如果存在缓存、推理或其他计费项目,应继续加上对应项:

总费用 = 普通输入费用 + 缓存读取费用 + 缓存写入费用 + 输出费用 + 推理或工具费用

如果价格表按每千 Token报价,把分母改成 1,000 即可。不要把“每千 Token”和“每百万 Token”的单价直接混用,否则结果会相差一千倍。

一个可复算的示例

假设某模型的示例价格为:输入每百万 Token 2 美元,输出每百万 Token 8 美元。一次请求消耗输入 1,000 Token、输出 500 Token,则:

这里的价格只用于演示公式,不代表任何平台或模型的当前真实价格。实际计算时,应打开对应模型的价格页,确认输入、输出、缓存、批处理、长上下文和服务等级是否适用。OpenAI、Anthropic 和 Gemini 的价格页都显示了输入与输出可能采用不同单价,缓存也可能单独列价,分别可查看 OpenAI API Pricing、Anthropic Pricing 和 Gemini API Pricing。

Token 不等于汉字、字符或单词

Token 是分词结果,不是固定长度的字符计数。中文、英文、数字、代码、标点、URL、JSON,以及图片和音频等内容,都可能采用不同的分词方式。同一段文字换一个模型或接口,Token 数也可能不同。

你看到的单位能否直接当作 Token正确做法
汉字数量不能只能做非常粗略的预估,不能用于最终账单。
字符数不能用目标模型提供的 Token 统计工具或接口预估。
英文单词数不能缩写、标点和代码可能改变分词结果。
接口返回的 usage可以作为实际用量依据保存请求 ID、模型名、usage 和时间,再与账单核对。

例如,Gemini 文档提供了 countTokens 用于在生成前估算输入 Token;生成响应还会返回 promptTokenCount、candidatesTokenCount、thoughtsTokenCount 和 totalTokenCount 等字段,可参考 Gemini Token 统计文档 和 Gemini GenerateContent API。这些字段比按字符数推算更适合做成本核对。

从 API 返回的 usage 到最终账单,按五步核对

  1. 确认模型。记录请求实际使用的模型名,不要只看客户端下拉框或配置文件中的默认值。
  2. 确认价格版本。打开该模型当前价格页,核对输入、输出、缓存、推理、批处理和长上下文等条件。
  3. 保存原始用量。记录响应中的 usage 或 usageMetadata,包括输入、输出、缓存和推理字段。
  4. 逐项代入公式。每个计费类别单独计算,再相加;不要先把所有 Token 混成一个总数后套一个单价。
  5. 和账单或余额变化对照。如果不一致,检查汇率、平台倍率、预充值扣费、工具调用、重试请求、流式请求是否完整记录。

流式响应尤其要注意:有些接口只有在流结束时才返回完整 usage。如果连接中断,客户端可能没有拿到最后的用量块,因此“没有收到 usage”不能直接等于“没有产生用量”。OpenAI 对流式 Chat Completions 提供了 stream_options.include_usage 选项,具体行为可查看 OpenAI Reviewing API usage and costs。

如果使用兼容接口或中转 API,还要把“模型原始 Token 用量”和“平台实际扣费”分开记录。基础模型价格、平台倍率、余额换算、最低扣费单位等信息若未在服务商公开文档中核实,就不要自行推断,应以该平台当前价格和账单明细为准。

为什么多轮对话会让输入 Token 变多

许多对话式调用会在下一轮请求中再次发送系统提示词、历史消息、工具结果和新问题。即使用户只新增一句话,模型收到的完整上下文也可能已经很长,因此输入 Token 会随对话轮数增加。

可以用下面的简化方式估算:

单轮成本 ≈ 当前累计上下文 Token ÷ 1,000,000 × 输入单价 + 本轮输出 Token ÷ 1,000,000 × 输出单价

实际是否重复计费、哪些内容命中缓存,以及缓存读取和写入分别如何收费,要看具体平台。Anthropic 的价格说明将基础输入、缓存写入、缓存命中和输出分开列出;Gemini 的响应则会分别返回普通提示词、缓存内容、候选输出和思考 Token字段。不要把某个平台的字段含义直接套到另一个平台。

如何估算单日和单月 AI API 预算

先用真实请求记录得到平均值,再按调用量放大,不要只用一次最短问答作为预算依据。

月度预算 ≈ 每日请求数 × 平均单次费用 × 预计使用天数

更稳妥的做法是分别记录三组数据:平均输入 Token、平均输出 Token、每天请求次数。然后计算:

预算不应只设置一个理想值。可以同时建立基准、偏高和异常三档:基准档使用日常平均值,偏高档提高输入上下文或输出长度,异常档考虑重试、循环调用、批量任务和长文档处理。若平台支持用量告警或硬性支出限制,可按平台文档设置,但要注意记录和限制通常存在处理延迟,不能把它当作绝对即时的断路器。

降低 Token 成本的可操作清单

OpenAI 的官方说明也提醒,较低的每百万 Token 单价不一定带来较低的总成本,因为不同模型可能产生不同数量的输入、输出或推理 Token;因此应使用代表性任务测试,而不是只比较可见回答长度。可参考 Understanding and counting tokens。

使用兼容接口时,基础价和实际扣费要分开看

OpenAI Compatible 只说明请求格式或响应结构在一定程度上兼容,不代表所有平台采用相同的价格、缓存规则、模型映射、倍率、余额单位或 usage 字段。接入前应逐项确认:

核对项要确认的问题
模型名请求中的模型名实际路由到哪个模型,是否会自动替换。
单价输入、输出、缓存、推理和工具是否分别计价。
单位价格按 Token、千 Token、百万 Token、请求次数还是其他单位计算。
倍率或余额是否存在平台自定义倍率、充值换算或最低扣费单位。
用量字段响应是否保留原始 usage,字段是否与官方接口完全一致。
账单记录是否能按模型、时间、Key 或请求查看实际扣费明细。

如果公开页面只展示了基础价格,没有展示缓存、重试、工具调用或余额扣费规则,应明确标记为“未核实”,不要用基础价格直接推断最终账单。对于本项目涉及的产品和服务,价格、计费倍率及用量规则均应以其当前公开页面和实际账单为准。

常见问题

AI API 是按请求次数收费,还是按 Token 收费?

常见文本模型主要按输入和输出 Token计价,但具体服务也可能对搜索、音频、视频、工具调用、缓存或批处理采用其他计费单位。应同时查看价格页和实际 usage,不能只按请求次数估算。

输入 Token 和输出 Token 哪个更贵?

没有统一答案,取决于模型和服务等级。许多价格表会把输入、缓存输入和输出分开列价,因此必须分别代入公式。不能根据模型名称或回答长短推断价格。

为什么只输入一句话,Token 也可能很多?

请求可能携带系统提示词、历史对话、文档、工具结果、图片或其他上下文。多轮对话中,历史内容可能再次发送,因此应查看响应中的输入 Token字段,而不是只统计当前输入框的文字。

缓存 Token 是不是完全免费?

不能一概而论。不同平台可能区分缓存写入、缓存读取和缓存存储,并分别设置价格;有的平台还把缓存命中显示在输入用量明细中。是否收费以及如何收费,要以对应模型的当前价格页为准。

接口没有返回 usage,是不是就没有产生费用?

不是。流式连接中断、代理未转发最后一个 usage 块、SDK没有保留完整响应,都可能导致本地缺少用量字段。应检查接口的流式 usage 配置、服务端日志、请求 ID和平台账单,不能仅凭字段缺失判断费用为零。

人民币预算怎么换算?

先按美元或平台账单原始单位算出 Token费用,再使用实际结算时采用的汇率或平台余额换算规则转换。汇率和平台扣费规则会变化,因此不要把某一天的换算结果当作长期固定价格。

相关阅读

参考资料

  1. OpenAI API Pricing
  2. Chat Completions API Reference
  3. Reviewing API usage and costs
  4. Understanding and counting tokens
  5. Anthropic Pricing
  6. Gemini Token Statistics
  7. Gemini GenerateContent API
  8. ai.google.dev