实操性文章,对比GPT-4与Claude 3.5 Haiku成本差异,详解输入/输出Token成本来源及批量处理技巧,给出具体代码示例。
你用 Claude、ChatGPT 或 Gemini 做了个很酷的东西,效果很棒。然后账单一来,你开始怀疑自己是不是不小心在资助一个数据中心。
现实是这样的:大多数开发者在调用 AI API 时根本不考虑成本问题。你不傻,只是没有养成像优化 SQL 查询那样去思考 token 效率的习惯。
每次 API 调用都有三个隐性成本:
1. 输入 token(你发送的内容)
你在为每个 token 付费。你的 50KB 上下文窗口?大约相当于 12,500 个 token。每天这么调用十次,成本就上去了。
2. 输出 token(你收到的内容)
通常比输入贵 2-3 倍。要求详细回复在字面意义上就比简洁回复更贵。
3. 模型选择
GPT-4 比 GPT-3.5 贵 60 倍。Claude 3.5 Sonnet 比 Opus 便宜。如果用错了模型,你就是在白扔钱。
用 GPT-4 分析 100 封客服邮件:约 $15
用 Claude 3.5 Haiku 做同样任务:约 $0.20
每次请求用 100KB 上下文而不是 20KB:成本增加 5 倍
你的项目没有坏,只是用法拉利去超市买菜。
1. 批量请求
不要让 AI 一次只分析一件事。
for email in emails:
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
messages=[{"role": "user", "content": f"Categorize: {email}"}]
)
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
messages=[{"role": "user", "content": f"""Categorize these 10 emails:
1. {emails[0]}
2. {emails[1]}
...
10. {emails[9]}
"""}]
)
一次调用处理 10 项内容的成本和一次调用处理 1 项内容大致相同(你按 token 付费,不是按请求次数)。但你可以减少 90% 的请求次数。
2. 选对模型规格
别把所有任务都交给你的凯迪拉克。
Claude 3.5 Haiku:每百万 token $0.80/$2.40,适合路由、分类、简单转换
Claude 3.5 Sonnet:每百万 token $3/$15,大多数工作的最佳选择
Claude 3 Opus:每百万 token $15/$45,只在你真正需要时才用它
规则是这样的:从 Haiku 开始。如果失败了,再升级。别从 Opus 开始。
if task == "classification":
model = "claude-3-5-haiku-20241022" # $0.80/1M input
elif task == "code_review":
model = "claude-3-5-sonnet-20241022" # $3/1M input
else:
model = "claude-3-opus-20240229" # $15/1M input
3. 压缩你的上下文
不需要发送整个文件,提取关键内容即可。
prompt = f"Summarize this:\n\n{document}"
key_sections = extract_sections(document, ["intro", "methodology", "results"])
prompt = f"Summarize this:\n\n{key_sections}"
上下文减少 50% = 成本降低 50%,而且往往效果更好,因为信噪比提高了。
4. 缓存常用提示词
如果你用不同数据运行相同的分析 100 次,使用提示词缓存。
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
system=[
{
"type": "text",
"text": "You are a code reviewer. Check for security issues, performance problems, and code style violations.",
"cache_control": {"type": "ephemeral"}
}
],
messages=[{"role": "user", "content": new_code}]
)
第一次请求后,Claude 会缓存系统提示词。后续请求中该上下文的成本降低 90%。
5. 对高工作量任务使用本地模型
对于简单任务(嵌入、分类、摘要),Ollama 或类似的本地 LLM 在设置之后几乎零成本。
ollama pull mistral
现在你就有了一个快速、免费的分类器用于后台任务。没有 API 费用,没有延迟,没有速率限制。
假设你每天处理 500 张客服工单。
GPT-4:500 × 3000 token × ($0.03/1K 输入) = $45/天
用 Haiku 路由:500 × 300 token × ($0.0008/1K 输入) = $0.12/天
复杂工单转 Sonnet:100 × 1500 token × ($0.003/1K 输入) = $0.45/天
同样的功能,便宜了 98%。
不是问"我们能用 AI 做这个吗",而是问"做到同样好,最便宜的方式是什么?"
从小处着手,量化效果,持续优化。大多数团队通过选择正确的模型和批量请求,可以把成本砍掉 70-80%。
你的项目成本高,不是因为 AI 本身贵。而是因为你还没有开始思考效率问题。