适合准备上线 AI 功能、需要做预算的产品和技术负责人,也适合账单超出预期、想找出原因的团队。如果还没有可运行的原型,可以用几条典型请求实测后推算。
一次请求的 Token 由哪些部分组成
很多人只算「用户输入」,实际上一次请求的输入通常包括:
| 组成部分 | 说明 | 常被忽略的原因 |
|---|---|---|
| 系统提示 | 角色设定、规则、输出格式要求 | 每次请求都会重复发送 |
| 对话历史 | 多轮对话中之前的问答 | 轮数越多越长 |
| 检索资料 | 从知识库取出的文档片段 | 往往是输入里最大的一块 |
| 工具定义 | 函数调用时的工具说明 | 工具多时可达上千 Token |
| 用户输入 | 用户本次的问题 | 通常是最短的一块 |
输出部分包括模型生成的回答。部分推理类模型的思考过程也按输出计费,具体以对应模型的官方说明为准。
怎么测而不是猜
不同模型使用不同的分词方式,同一段中文在不同模型上的 Token 数可能差别明显,不要用固定比例换算。可靠的做法有两种:
- 看接口返回的用量字段:每次请求的响应里通常带有输入、输出 Token 数,这是计费的直接依据。
- 用分词工具预估:OpenAI 开源的 tiktoken 等工具可以离线计算文本的 Token 数,适合在发请求前估算,但只适用于对应的分词方式。
建议准备 20 到 50 条有代表性的真实请求(去掉敏感信息),分别记录每部分的 Token 数,取平均值和较大值。
月度成本怎么算
公式:
月度成本 = 每月请求数 × (平均输入 Token × 输入单价 + 平均输出 Token × 输出单价)
以一个虚构的客服助手为例,单价为示例价格:输入 2 元 / 百万 Token,输出 8 元 / 百万 Token。
- 每次请求输入:系统提示 800 + 对话历史 1200 + 检索资料 2000 + 用户输入 100 = 4100 Token
- 每次请求输出:平均 300 Token
- 每天 5000 次对话,平均每次 3 轮 = 每天 15,000 次请求,每月(按 30 天)450,000 次
计算:
- 输入:450,000 × 4100 = 18.45 亿 Token,× 2 元 / 百万 = 3690 元
- 输出:450,000 × 300 = 1.35 亿 Token,× 8 元 / 百万 = 1080 元
- 合计约 4770 元 / 月
可以看到,用户输入只占 100 Token,真正的大头是检索资料和对话历史。再为高峰和增长留出余量,比如乘以 1.2 到 1.5。
降低成本的常用办法
- 控制对话历史:只保留最近几轮,或把早期对话压缩成摘要。
- 精简检索资料:只放最相关的几段,而不是一次塞入整篇文档。
- 使用提示缓存:系统提示等固定内容很长时,支持缓存的接口对命中部分按较低价格计费。上例中,如果 800 Token 的系统提示全部命中缓存、缓存价格为输入单价的十分之一(示例),每月约节省 648 元。实际节省取决于命中率和具体计费规则。
- 限制输出长度:设置输出上限,并在提示里要求简洁。
- 按任务选模型:简单分类、提取类任务可以用更小的模型,复杂任务再用大模型。
- 按功能统计用量:给每次请求打上功能标签,找出用量最大的功能优先优化。
估算时常见的四个错误
- 只算用户输入:系统提示、历史和检索资料往往占输入的九成以上。
- 用固定比例换算汉字:不同模型的分词方式不同,应以实测为准。
- 忽略重试和失败请求:自动重试同样消耗用量。
- 只做一次估算:功能调整、提示变长都会改变用量,应按月复核。
常见问题
输出为什么比输入贵?
多数模型对输出 Token 定价更高,这与生成过程的计算方式有关。具体价格以各模型的官方说明或报价为准。
怎样设置预算告警?
按日汇总用量和费用,超过预设阈值时通知负责人。很多接口平台也提供用量查询,可以和自己的记录对照。
试用阶段的用量能代表正式使用吗?
通常不能。试用用户少、问题简单,正式上线后对话会更长、检索资料更多。上线后第一个月要密切观察。
企业用量怎么谈价格?
准备好按上面方法得出的月度用量估算、输入输出比例和峰值,填入模型用量需求单,再与供应方沟通。具体价格与结算方式以实际报价为准。
参考资料
官方资料用于核对产品或通用概念,不构成对易AI的授权、认证或背书。具体合作以双方确认的方案为准。