← 返回资讯
陈默
AI 行业分析师
已审核

GPT-4账单2300块后,我才发现System Prompt用错了

上周收到账单,GPT-4 API 调用费干掉了 2300 块。

GPT-4账单2300块后,我才发现System Prompt用错了

GPT-4账单2300块后,我才发现System Prompt用错了


上周收到账单,GPT-4 API 调用费干掉了 2300 块。

就一个月。

我盯着那个数字看了得有五分钟,咖啡都凉透了。旁边同事问我怎么了,我把屏幕转过去,他看了一眼,说了句"卧槽"。

后来花了两周把 Token 消耗砍掉 60%,效果还没怎么打折。今天把这些省钱套路全抖出来,特别是最后一条,知道的人真不多。


先搞明白钱是怎么没的

很多人以为 API 调一次就花一次钱。不是的。计费按 Token 算,Token 不是你发了多少个字,是模型怎么切你的文本。

一个挺残酷的事实:中文的 Token 消耗通常是英文的 2-3 倍。

我测过,同样一句话:

意思一样,中文直接翻倍。所以如果你 Prompt 全是中文,成本天然就比英文用户高。这不是什么秘密,但 OpenAI 的文档里也不会特意告诉你。

等等,这里我要更正一下——准确说不是"翻倍",是中文每个汉字大概占 1.5-2 个 Token,英文一个单词通常 1-2 个 Token,但英文单词短,整体下来中文确实贵不少。我刚开始算的时候也搞混过。


第一刀:砍 System Prompt

刚用 GPT API 那会儿,我的 System Prompt 长这样:

CODE
你是一个资深的、经验丰富的、专业的前端开发工程师,
拥有 10 年以上 React 开发经验,精通 TypeScript、
Next.js、状态管理、性能优化...

光这一段就 80 多个 Token。每次调用都带着。一天调 500 次,一个月光 System Prompt 就烧掉几百块。

优化后:

CODE
你是 React 专家,用 TypeScript。回答简洁,不解释基础概念。

12 个 Token。效果差不多。模型不需要你夸它,真的。

踩坑提醒:别把 System Prompt 当说明书写。我一开始恨不得把整个项目文档塞进去,后来发现模型根本记不住那么多,白白烧钱。现在我的原则是:System Prompt 不超过 3 句话,每句话不超过 20 个字。嗯...这个其实没有严格验证过,但我自己的经验是这样。


第二刀:历史消息瘦身

对话类应用最烧钱的就是历史消息。每次请求都要把之前所有对话重新发一遍,Token 消耗指数级增长。

说个血泪教训:去年 11 月做了个客服机器人,用户平均对话 20 轮。第 20 轮的时候,单次请求的 Token 消耗是第一轮的 15 倍。15 倍啊。

省钱方案:

我们现在的做法是混合策略:最近 5 轮完整保留,5-15 轮用摘要,15 轮以上全丢掉。成本降了 45%,用户完全没感觉。这个数字是我上周刚算的,之前估算的是 40%,后来拉了下监控才发现实际更高。


第三刀:别杀鸡用牛刀

这可能是最立竿见影的一招。

我见过太多人什么任务都用 GPT-4。写个分类标签用 GPT-4,提取关键词用 GPT-4,连格式化 JSON 都用 GPT-4。大哥,格式化 JSON 你用 JSON.stringify 不行吗。

不同任务的模型选择,我觉得大概是这样的:

我们做了个实验:用 DeepSeek V3 替代 GPT-4 做内容分类,准确率从 96% 降到 94%,但成本从每月 800 块降到了 30 块。2% 的准确率换 96% 的成本下降,这买卖太划算了。老板看了直呼好家伙。


第四刀:缓存

这个被严重低估了。

如果你的应用有重复请求——同样的 System Prompt、相似的用户问题——缓存能省下一大笔钱。

两种策略:

1. 精确匹配缓存:完全相同的请求直接返回缓存结果,一分钱不花。适合 FAQ 场景

2. 语义缓存:意思相近的问题(比如"怎么退款"和"如何申请退款"),用向量相似度匹配,命中率更高

我们用 Redis 做了一层语义缓存,embedding 模型用的是 text-embedding-3-small,命中率大概 30%。也就是说 30% 的请求根本不到模型那一层,直接省下来了。

不过有个坑:缓存过期时间要设好。我一开始设了 24 小时,结果用户问"今天天气"返回的是昨天的缓存,被人截图发群里嘲笑。后来改成动态内容 5 分钟、静态内容 1 小时,才没再翻车。这个 TTL 配置我调了大概三四版,现在算是稳定了。


第五刀:别让模型废话

模型默认的输出有时候真的很啰嗦。你问它"这个报错怎么修",它先给你解释一遍这个错误是什么、为什么会出现、有哪些可能原因,最后才说怎么修。谁要听你讲课啊。

强制精简的方法:

我们有个接口原本平均输出 800 Token,加上 max_tokens=200 之后,模型被迫学会了精炼表达。信息密度反而更高了。这个挺反直觉的,但确实是这样。


我现在的技术栈

折腾了两个月,目前稳定运行这套方案:

上个月账单 940 块。同样业务量,从 2300 降下来的。


最后说一个反直觉的点

省钱不代表效果变差。

有些优化反而让输出质量更高了。比如限制输出长度之后,模型不再废话连篇,回复更精准。比如做历史消息瘦身之后,模型反而不会被太早的上下文带偏。

所以别把省钱当成妥协。当成工程优化来做。


你们在 API 调用上踩过什么坑?或者有什么省钱妙招?评论区聊聊,我请喝咖啡,虚拟的那种 ☕

#AI #Token计费 #省钱攻略 #API优化 #LLM

24
604 阅读
2 评论
分享
链接已复制
编辑说明

本文由 MakeSense 编辑团队撰写并审核。文中引用的数据和观点均经过交叉验证,如有疏漏欢迎在评论区指正。最后更新:2026年06月27日 17:45

陈默

AI 行业分析师

前某大厂 AI 实验室研究员,关注大模型技术演进和商业化落地。写过 200+ 篇行业分析,擅长从产品视角拆解技术趋势。

读者评论 2

技术小白 5天前
作为非技术人员也看懂了,感谢作者的通俗讲解。
回复 点赞 (3)
Dev小王 1周前
终于有人把这个说清楚了,收藏了。
回复 点赞 (8)