系统提示词每次请求都要计费,2000 词的 prompt 在 20 QPS 下每小时产生 54000 token 开销,是预算的 3 倍;实测后才在账单上发现差距。
还记得我意识到 AI API 定价是个陷阱的那一刻。我坐在家里办公室,盯着一个仪表盘,上面显示着一笔 1,847 美元的费用——我原本以为这个项目只需要 200 美元。最糟糕的是?那个应用甚至还没上线。那只是我测试的费用。
让我帮你省去我经历过的痛苦。以下是关于 AI API,没人会在账单到来之前告诉你的事情。
每个 AI 提供商都给你展示同样的表格:输入 $0.002/1K tokens,输出 $0.006。看起来很简单。实际上完全不是。
第一个隐藏成本在你还没写一行代码之前就找上你了。Token 计算。你以为发送给 API 的是 500 个词,大概 650 tokens,对吧?错了。整个系统提示词、你的每一条指令中的每个字符,都要算进去。我构建了一个客服机器人,塞了一个 2,000 词的 system prompt 来解释语气、规则和降级逻辑。那个提示词被附加到了每一次 API 调用上。
简单算一下:2,000 词 ≈ 2,700 tokens。按每分钟 20 次请求计算,那就是每小时 54,000 tokens 的纯开销,这是我从未算进去的。相比定价计算器显示的数字,我的每次对话成本翻了三倍。
我hard way 学到的一件事:速率限制是一个隐藏的成本翻倍器。当你达到限制时,你有两个选择——等待或重试。两者都要花钱。
我在构建一个批量处理脚本,要总结 5,000 份文档。API 允许每分钟 60 次请求。我以为写一个带指数退避的重试循环很聪明。我没意识到的是,每次重试都会重新发送相同的输入 tokens。当 API 在处理完我的请求但在返回响应之前返回 429 错误时,我被收了输入的费用,而且在重试时还得再付一次。
我优化了退避策略,但随后遇到了另一堵墙:并发连接。免费层允许 3 个并发请求。我在付钱买更高的层,但我从没升级过我的并发限制。我的脚本运行速度应该是 4 倍,结果却慢了 4 倍,空闲时间在消耗积分。而当你使用订阅计划时,空闲时间也是要计费的。
让我告诉你我犯过的最昂贵的错误。我构建了一个代码生成工具。用户请求一个函数,AI 来写。定价计算器说平均每次输出是 150 tokens。
现实呢?复杂函数生成了 2,000+ tokens,尤其是当模型在注释里变得话多的时候。一次请求花了我预计费用的 13 倍。更要命的是——不 heavy prompt engineering 我没法控制它。我花了三天添加「保持简洁」的指令并设置 max_tokens 参数,结果发现截断仍然会收取你完整生成输出的费用。模型在这些 tokens「思考」完之后我才截断了它。
我不得不构建一个后处理 pipeline 来剥离注释和冗余代码,只是为了让 API 在经济上可行。这是我没在预算里的开发时间。
向量嵌入是整个 AI 生态系统中最低调的隐性成本。每个人都在谈论生成成本,但嵌入才是你真正烧钱的地方。
事情是这样的:我构建了一个语义搜索功能。我需要嵌入 100,000 条客服工单。定价是 $0.0001/1K tokens。听起来很便宜,对吧?每 1,000 个文档 $0.01。我算出来一次性索引总共 $10。
现实检查:我的文档平均 800 词,不是估算的 500 词。这把成本推到了 $16。还是很便宜。但随后我发现每当模型版本更新时、当我添加新功能时、当我发现需要重新分块的边缘情况时,我都得重新嵌入。半年里,我因为各种原因重新索引了整个数据集五次。那是我从没计划过的 $80。
而且如果你用的是无服务器嵌入,你会发现冷启动问题。我用无服务器函数来实时嵌入传入的文档。每次冷启动增加了 2-3 秒的延迟,有些提供商在冷启动期间还收取计算时间费用。我「免费」的无服务器层开始产生毫秒级计算的账单,累积起来可不是小钱。
最糟糕的成本是你在任何账单上都看不到的那一个。那是切换的成本。
我在一个提供商的 SDK 基础上构建了整个应用。我用了他们特定的响应格式、错误处理模式、流式传输协议。当我想切换提供商来节省 30% 成本时,我发现迁移需要三周的开发时间。那大概是我 $6,000 的开发者工资,加上在生产代码中引入 bug 的风险。
最糟糕的部分?流式传输实现完全不同。提供商 A 用特定分隔符发送事件流。提供商 B 使用完全不同的协议。我的前端是围绕提供商 A 的 chunk 格式构建的。切换意味着重写前端、后端和我的测试套件。
在构建 AI 驱动产品两年后,我形成了一份 mental checklist:
永远在你预计的 API 成本上加 40%——你需要这笔钱来应对重试、系统提示词和意外输出长度。
从第一天就实施用量追踪——我构建了一个中间件来记录每次请求的 token 数量和成本。我可以实时看到哪些用户或功能在烧钱。
设计时考虑提供商无关性——我现在在我的代码和 AI 提供商之间使用一个薄抽象层。它只有 200 行代码,但这意味着我可以在一个周末而不是一个月内切换提供商。
用你的实际工作负载测试——不要相信演示脚本。在承诺使用某个提供商之前,用你的真实数据跑一遍 API。
讽刺的部分?最便宜的 API 并不总是最便宜的。我曾经切换到一个预算提供商,每个 token 节省了 50%。但他们的可靠性糟糕透顶——高峰时段 15% 的错误率。我的应用向用户展示错误,这意味着支持工单,这意味着我的时间。我算了总拥有成本:把调试和客户流失算进去之后,这个「便宜」提供商实际上花了我 2.3 倍的钱。
经过所有这些试错,我得出了一个实用的方法。我寻找提供透明、按量计费定价且无订阅最低限额、无意外费用的提供商。我想实时看到我的成本,而不是在月底结账时。
这就是为什么我在最近的项目中一直在用 tai.shadie-oneapi.com。它不是最花哨的选择,但它是第一个账单与定价计算器一致的选择。没有隐藏的重试费用,没有并发charges,只是简单的按 token 计费。这种可预测性让我能在凌晨 2 点安心睡觉,而不是刷新账单仪表盘。
AI API 领域仍然不成熟。提供商想让你关注标题价格,而不是总拥有成本。但如果你睁着眼睛进去,虔诚地追踪你的用量,并从一开始就为灵活性做设计,你就能避免那些吞噬我预算的意外惊喜。
收到大额 API 账单时我仍然会心头一紧,但现在我清楚地知道每一分钱花在哪里了。这比任何折扣码都更有价值。