看模型价格表时,最常见的误差是把“一次请求”当成“一次完成任务”。用户的一次操作可能触发分类、检索、生成和重试,多轮对话还会重复发送历史内容。
本文用假设单价解释预算方法,不代表任何厂商当前报价,也不是节省费用的实测承诺。
先统一单位
如果价格按每百万 token 报价,最基本的文本请求费用是输入用量和输出用量分别计算后相加。字符数不能直接当成 token 数,尤其是混合语言、代码和结构化内容;预算应尽量使用 API 返回的实际用量。
单次文本费用 = 输入 token ÷ 1,000,000 × 输入单价
+ 输出 token ÷ 1,000,000 × 输出单价
缓存、工具调用、图片、音频或其他计费项需要按对应产品规则单列。只套这一条公式,不能解释所有模型与所有接口的账单。
用一组假设数字算清楚
假设输入单价为每百万 token 2 元,输出单价为每百万 token 8 元;每个任务一次请求使用 3,000 输入 token 和 800 输出 token。
| 项目 | 演算 | 假设费用 |
|---|---|---|
| 输入 | 3,000 ÷ 1,000,000 × 2 | 0.006 元 |
| 输出 | 800 ÷ 1,000,000 × 8 | 0.0064 元 |
| 单次请求 | 两项相加 | 0.0124 元 |
| 10,000 次相同请求 | 10,000 × 0.0124 | 124 元 |
如果这些任务中有 20% 需要完整重试一次,且每次重试用量相同,总请求数变成 12,000,费用为 148.8 元。现实中的失败请求是否计费、重试用量和缓存情况可能不同,应以实际账单核对。
再假设每个任务还固定执行一次同等用量的校验请求,这项校验另增加 124 元,合计 272.8 元。这说明“加入校验”会改变预算,但不能据此省掉必要的质量检查;应衡量校验降低了多少错误与返工。
建立按任务汇总的记录
| 应记录的字段 | 用途 |
|---|---|
| 任务 ID 与步骤 | 把分类、生成、校验等请求归到同一任务 |
| 模型与实际供应商 | 避免把路由变化误判成同一价格或表现 |
| 输入、输出和其他计费项 | 对照官方价格与账单 |
| 尝试次数与错误类型 | 找出重试、重复提交和限流 |
| 是否最终通过验收 | 计算完成一个有效任务的成本 |
日志中优先记录用量和错误类别,不要顺手记录用户完整材料或密钥。是否保存正文,要单独按产品需要和数据要求决定。
费用突然上升,按这个顺序查
先看任务数是否增长,再看每个任务的请求数。如果请求数增加,检查客户端重复点击、服务端重试和工作流循环;如果请求数稳定,再看输入历史是否越来越长、输出是否失去长度约束。
最后核对模型或供应商是否发生变化,以及之前预算中没有包含的工具调用。只盯着模型单价,容易漏掉应用自己的重复工作。
上线前验证失败路径
给重试次数和等待时间设置边界,避免在错误凭据、无效输入等无法通过重试解决的问题上重复请求。预算告警和应用侧限额应分别确认:有提醒并不必然代表服务会自动停止。
如果有自动回退模型,用同一组样本校验输出格式、任务通过率和成本。接口格式兼容,不代表模型名称、所有参数或行为完全一样。
怎样做自己的预算表
选择一小批代表性任务,包含短输入、长输入和容易失败的情况。先按实际用量算每类任务,再乘以预计任务量,并单列峰值和返工余量。运行一段时间后,用账单修正估算,不要长期沿用第一次试算的数字。
官方接入说明见 DeepSeek API 文档;路由配置见 OpenRouter Provider Routing;生产环境的凭据和用量管理参考 OpenAI Production best practices。本文数值是独立的假设算例。