AI 产品上线实用 Token 预算表:从请求量到月度成本

AI 产品上线实用 Token 预算表:从请求量到月度成本
AI 功能在演示阶段看起来成本可控,上线后却可能迅速超出预期。System Prompt 会变长,检索内容会增加,结构化输出会带来 Schema 开销,真实用户输入比测试样例更复杂,而中文等本地化版本也不会与英文产生完全相同的 Token 数。
一份可执行的 AI Token 预算表,可以把这些变量变成上线决策。产品、工程和财务团队可以在同一份表中估算月度输入 Token、输出 Token、模型成本、安全余量,以及正式发布前必须验证的请求场景。
本文提供可直接复制的预算表、通用计算公式、完整示例,以及三组可以粘贴到 TokenTest 中验证的 Prompt。
重要说明:预算表用于规划,不能替代对完整生产请求的实际统计,也不能替代上线后的 Usage 对账。请填写供应商当前价格,并确认实际应用使用的模型、Tokenizer 与接口。
AI Token 预算表需要回答什么问题
一份有用的预算表至少应该回答六个问题:
- 该 AI 功能每天会发起多少次模型请求?
- 普通请求的输入和输出分别需要多少 Token?
- P50、P95 与最大合理请求之间相差多少?
- 上线流量会如何分布在不同语言、工作流和用户群体之间?
- 按供应商当前价格计算,月度模型成本是多少?
- 为增长、重试和测量误差预留多少安全空间?
预算表的目的不是制造一个看似精确的预测,而是在生产成本发生之前,让关键假设变得可见、可测量、可复核。
核心 Token 预算公式
先拆解单次请求的输入:
单次请求输入 Token
= System 指令
+ 用户输入
+ 对话历史
+ 检索上下文
+ 工具定义
+ 输出 Schema
再计算月度使用量:
月请求数 = 每日请求数 × 每月活跃天数
月输入 Token = 月请求数 × 单次加权输入 Token
月输出 Token = 月请求数 × 单次加权输出 Token
最后填写所选供应商的当前价格:
月度模型成本
= 月输入 Token ÷ 1,000,000 × 每百万输入 Token 价格
+ 月输出 Token ÷ 1,000,000 × 每百万输出 Token 价格
如果供应商对缓存输入或其他 Token 类型采用单独计价,请增加独立行,不要把它们隐藏在普通输入价格中。
可直接复制的 AI Token 预算表
1. 上线基础假设
| 字段 | 填写值 | 说明 |
|---|---|---|
| 功能或工作流 | 每次模型调用对应的用户动作 | |
| 上线日期 | 使用正式发布或灰度日期 | |
| 每日请求数 | 包含重试与后台调用 | |
| 每月活跃天数 | 30 | 与预算周期保持一致 |
| 每百万输入 Token 价格 | 填写供应商当前价格 | |
| 每百万输出 Token 价格 | 填写供应商当前价格 | |
| 每百万缓存输入 Token 价格 | 可选 | 仅在实际接口支持时填写 |
| 安全余量 | 20% | 使用团队已审核的假设 |
| 上线语言 | 每种语言单独测量 | |
| 负责人 | 负责更新预算的人 |
2. 请求组成
| 组成部分 | 基准 Token | P95 Token | 已测最大值 | 测量方式 |
|---|---|---|---|---|
| System 指令 | 统计生产环境完整指令 | |||
| 用户输入 | 使用真实或代表性样本 | |||
| 对话历史 | 包含截断与摘要规则 | |||
| 检索上下文 | 测试最大合理检索片段 | |||
| 工具定义 | 包含请求中的全部工具 Schema | |||
| 输出 Schema | 包含 JSON Schema 与格式指令 | |||
| 输入合计 | 汇总全部输入组成 | |||
| 预留输出 | 根据交互需求与实测输出确定 |
如果工作流包含函数调用或结构化输出,建议在批准工具与 Schema 预算前阅读结构化输出与函数调用的 Token 统计指南。
3. 请求场景组合
不要用一个平均 Prompt 乘以月请求量。至少需要建立三种请求形态。
| 场景 | 流量占比 | 单次输入 Token | 单次输出 Token | 示例 |
|---|---|---|---|---|
| 基准场景 | 短输入、正常请求 | |||
| P95 场景 | 长输入或更多检索内容 | |||
| 最大合理场景 | 产品规则允许的最大请求 | |||
| 合计 | 100% |
计算加权值:
单次加权输入 Token
= Σ(场景流量占比 × 场景输入 Token)
单次加权输出 Token
= Σ(场景流量占比 × 场景输出 Token)
这种方法可以避免少量超长请求被一个简单平均值掩盖。
4. 语言组合
Token 数会受到语言、措辞、标点和模型 Tokenizer 的影响。不要使用固定比例,把英文 Token 数直接换算成中文预算。
| 语言 | 流量占比 | 基准输入 | P95 输入 | 基准输出 | P95 输出 | 是否实测 |
|---|---|---|---|---|---|---|
| 英文 | 是 / 否 | |||||
| 中文 | 是 / 否 | |||||
| 其他 | 是 / 否 |
如需进一步规划多语言预算,请阅读为什么中文 Prompt 的 Token 预算可能和英文不同。
5. 月度预算汇总
| 指标 | 公式 | 结果 |
|---|---|---|
| 月请求数 | 每日请求数 × 活跃天数 | |
| 单次加权输入 | 按场景占比加权 | |
| 单次加权输出 | 按场景占比加权 | |
| 月输入 Token | 月请求数 × 单次加权输入 | |
| 月输出 Token | 月请求数 × 单次加权输出 | |
| 输入成本 | 输入 Token ÷ 1M × 输入价格 | |
| 输出成本 | 输出 Token ÷ 1M × 输出价格 | |
| 缓存输入调整 | 缓存输入 ÷ 1M × 缓存价格 | |
| 基础模型成本 | 输入 + 输出 + 其他调整 | |
| 安全余量 | 基础成本 × 余量比例 | |
| 上线预算 | 基础成本 + 安全余量 |
完整示例:从请求组合计算月度 Token
假设一个 AI 客服助手预计每天处理 20,000 次请求,每月运行 30 天。团队使用以下请求组合:
| 场景 | 流量占比 | 输入 Token | 输出 Token |
|---|---|---|---|
| 基准场景 | 70% | 900 | 250 |
| P95 场景 | 25% | 1,800 | 600 |
| 最大合理场景 | 5% | 3,500 | 1,200 |
单次加权请求为:
加权输入
= 0.70 × 900 + 0.25 × 1,800 + 0.05 × 3,500
= 1,255 Token
加权输出
= 0.70 × 250 + 0.25 × 600 + 0.05 × 1,200
= 385 Token
月度使用量为:
月请求数 = 20,000 × 30 = 600,000
月输入 Token = 600,000 × 1,255 = 753,000,000
月输出 Token = 600,000 × 385 = 231,000,000
加入 20% 的使用量安全余量后:
输入规划上限 = 753,000,000 × 1.20 = 903,600,000
输出规划上限 = 231,000,000 × 1.20 = 277,200,000
接下来,只需填写实际模型与接口的当前输入、输出价格。把使用量假设与价格假设分开,可以在流量或供应商价格变化时快速更新预算。
三组可粘贴到 TokenTest 的 Prompt
使用以下样例建立可重复的基准、P95 和中文本地化测量。请使用团队批准的测试接口和测试凭据。
Prompt 1:英文基准场景
You are a support triage assistant.
Return JSON with:
- category
- urgency
- summary
Customer message:
"I was charged twice, and my account is still locked after payment."
Prompt 2:英文 P95 场景
You are a support triage assistant for a subscription software product.
Rules:
1. Return valid JSON only.
2. Use one of these categories: billing, access, technical, cancellation, other.
3. Set urgency to high when payment succeeded but access is unavailable.
4. Keep the summary under 30 words.
5. Do not invent account facts.
Return:
{
"category": "",
"urgency": "",
"summary": ""
}
Customer message:
"I tried checkout twice. Both payments appear on my card, the dashboard still says free plan, and password reset did not restore access. I need the account for a client presentation today."
Prompt 3:中文本地化场景
你是一名订阅制软件产品的客服分流助手。
请只返回有效 JSON,包含:
- category
- urgency
- summary
如果付款成功但账号仍无法使用,请将 urgency 设为 high。不要编造账号信息,summary 不超过 30 个汉字。
客户消息:
"我尝试结账两次,银行卡显示两笔扣款,但后台仍是免费套餐,重置密码后也无法恢复访问。我今天要用这个账号做客户演示。"
TokenTest 产品手册说明,其 Token 计量检查包括 Usage 是否存在、总量是否一致、输入单调性、输出合理性、截断联动、流式 Usage 和缓存证据。这些检查可以帮助团队验证:Prompt 变长时,返回的 Token 使用量是否发生合理变化,而不是只依赖静态估算。
建议放在预算表旁边的上线门槛
| 检查项 | 通过条件 |
|---|---|
| 完整请求已统计 | 包含 System Prompt、工具、检索、Schema 和用户输入 |
| P95 场景已测试 | 已测量真实的长请求 |
| 最大请求有控制规则 | 已定义截断、拒绝或摘要策略 |
| 输出余量已验证 | 输出上限支持产品体验且不会频繁截断 |
| 每种上线语言已实测 | 不用英文 Token 数代替中文或其他语言 |
| Runtime Usage 已对账 | 接口返回的 Usage 与上线前估算进行了比较 |
| 已计入重试放大 | 包含重试、备用模型与后台调用 |
| 已指定预算负责人 | 有人负责更新流量、Token 和价格假设 |
你可以把这些门槛纳入一套 Token 感知的 Prompt 审查流程。
常见 Token 预算错误
把上下文窗口当作预算
上下文窗口是技术上限,不是合理的成本目标。上线预算应低于该上限,并由产品允许的真实请求大小决定。
只统计界面中可见的 Prompt
工具定义、检索内容、对话历史、格式指令和输出 Schema 都可能增加请求大小。应统计序列化后的生产请求,而不是某一个输入框中的文字。
只使用一个平均值
简单平均值会隐藏高成本的长尾请求。加权场景组合可以让 P95 与最大请求保持可见。
用英文结果代替中文实测
不同语言、文本和 Tokenizer 会产生不同结果。每一种本地化生产 Prompt 都应直接统计。
在文章或模板中写死价格
模型与价格可能变化。应在评审时填写当前价格,并记录价格来源和日期,让预算表保持可复用。
忽略重试和备用调用
一次用户操作可能触发多次模型请求。请求量需要加入重试率、Fallback 比例、Agent 步骤和后台评测。
最终检查清单
上线前,请确认 AI Token 预算表包含:
- 完整输入组成
- 基准、P95 与最大合理请求
- 加权流量和语言组合
- 当前输入、输出与缓存输入价格(如适用)
- 月度 Token 和成本公式
- 已审核的安全余量
- 重试与 Fallback 放大系数
- 英文与中文 Prompt 的直接测量
- Runtime Usage 验证
- 负责人和更新日期
最可靠的预算,不是看起来小数位最多的预测,而是所有假设都可以被测试、质疑和更新的预算。
你可以从上面的预算表开始,把代表性请求粘贴到 TokenTest 中,并将测量证据与上线决策保存在一起。如需更多产品经理使用的预算模式,可继续阅读面向要上线 AI 功能的产品经理的 Token 预算模板。