账单优化按性价比排序,先做这四件:①按任务难度路由——分类/抽取/摘要用便宜小模型,规划/代码/复杂推理才用旗舰,来源案例称静态路由表就能吃掉大部分收益;②提示词结构为缓存让路——长而稳定的 system prompt、工具 schema、参考资料放最前面形成共享前缀,易变的用户输入放最后(是否/如何计费缓存以本站规则为准,不要把别家的缓存折扣数字当本站承诺);③每个请求都设合理的 max_tokens 并截断/摘要过长的历史对话;④记录每次调用的 usage(按功能/用户/Key 拆),没有度量就没有优化。
适用场景:用量涨起来后账单失控、Agent 循环烧钱、想给不同功能定成本上限。
cost token model-routing prompt-caching max-tokens observability
操作步骤
- 先加日志:每次调用记录模型、input/output tokens、功能名、Key 别名,一周后再谈优化。
- 给任务分档并写死路由表(任务类型→模型),新功能默认从便宜档起步,质量不够再升档。
- 整理提示词:静态在前、动态在后;砍掉无效的 few-shot 和重复说明。
- 离线批量活(夜间打标、批量摘要)与实时活分开 Key,批量活单独设预算和并发上限。
代码示例
ROUTES = {"classify": "your-cheap-model", "extract": "your-cheap-model", "code": "your-strong-model", "plan": "your-strong-model"}
def pick_model(task_type: str) -> str:
return ROUTES.get(task_type, "your-cheap-model")
# 调用时始终带 max_tokens,并记录 resp.usage.prompt_tokens / completion_tokens接入本站 API:本站本身就是路由层时,优先用本站的分组/额度功能做第一层治理,应用内路由只做任务分档;每个项目一个 Key,账单天然按项目拆开。
注意事项
- ⚠️ 全部请求无脑用旗舰模型是来源公认的最常见烧钱错误
- ⚠️ 只看单价不看总 token:长上下文和失控循环才是大头
- ⚠️ 把别家平台的 Batch/缓存折扣数字写进本站宣传——本站是否支持要以本站实际功能为准,未确认前不要承诺
来源:https://frugal.co/blog/the-frugal-approach-to-openai-api-costs