AI 问答库
一句话回答
估算公式是:单次成本 =(输入 token × 输入单价)+(输出 token × 输出单价),再乘日调用次数。关键在三点:输入输出分开计价且输出通常更贵;RAG 片段和多轮对话历史会让输入 token 远超直觉;命中上下文缓存的部分按更低价计。不要照抄任何单价,各家几个月调一次,务必用官方最新价目和自己实测的 token 数算。
下表刻意不给单价 —— 各家厂商的价目每几个月就会调整一次,写死会立刻过期并误导读者。表里给的是量级关系和成本变量,这部分相对稳定:同样一次调用,纯问答和长文档抽取的 token 量可能差两个数量级,而降本手段也完全不同。用法是先在表里找到你的场景,确认主要成本变量是什么,再去官方价目表取当前单价代入公式。
| 场景 | 单次调用量级 | 主要成本变量 | 优化手段 |
|---|---|---|---|
| 单轮短问答(无检索) | 输入百级 token,输出百级 token | system prompt 长度与输出啰嗦程度 | 压缩 system prompt、限制输出长度、开上下文缓存 |
| RAG 知识库问答 | 输入千级到万级 token,输出百级 | top-k 数量 × 单片段长度,输入侧占绝对大头 | 降 top-k、加重排只送最相关片段、按结构切分避免冗余 |
| 长文档摘要 / 合同抽取 | 输入万级到十万级 token,输出千级 | 文档总长度;是否每次全文重传 | 先做规则预筛只送相关章节、分段处理再汇总、缓存固定前缀 |
| 多轮 Agent 工具调用 | 一个任务累计万级以上,随步数增长 | 每步都重传完整历史与工具定义;失败重试翻倍 | 历史摘要压缩、精简工具定义、限制最大步数、失败快速退出 |
| 批量离线处理(分类 / 打标) | 单条量级小,但总量 = 单条 × 数据条数 | 数据条数;用了能力过剩的大模型 | 换小模型或本地模型、走批量接口、能用规则先过滤的先过滤 |
第一步,别猜 token 数,去测。取 30–50 条真实业务请求,用目标厂商的 tokenizer 统计每条的实际输入与输出 token,取平均值和 P90 —— P90 比平均值更重要,因为长尾请求经常贡献大部分成本。第二步,估调用量。用现有业务数据倒推:现在人工处理多少单、其中多少比例会走 AI、每单平均触发几次模型调用。第三步,代入公式:月成本 =(平均输入 token × 输入单价 + 平均输出 token × 输出单价)× 日调用次数 × 30。第四步,乘一个 1.3–1.5 的系数覆盖重试、评测跑批和试用期的浪费 —— 这部分在实际账单里永远存在。第五步,用 P90 而不是平均值再算一遍,作为预算上限。跑一个月真实流量之后回来修正这组数字,之前的一切测算都只是量级判断。
一、砍输入。RAG 场景下把 top-k 从 10 降到 3 并加一个重排模型,通常既省 token 又提高准确率,是少见的双赢。二、开上下文缓存。把长 system prompt 和固定工具定义放在提示词最前端并保持完全一致,命中缓存后这部分成本会大幅下降;注意任何一个字符的变动都会让缓存失效。三、按难度分级路由。简单分类、意图识别、格式转换用小模型或本地模型,只有真正需要推理的请求才送到旗舰模型 —— 这一步的收益通常最大,也最容易被忽略。四、限制输出。要求 JSON、限定最大长度、禁止复述问题。五、砍多轮历史。滑动窗口或定期摘要压缩。六、批量任务走批量接口,很多厂商对非实时批处理有明显折扣。做完前三条,多数场景的账单已经能降到一个可接受的量级。
适用边界
同义问法