AI 应用的成本会在哪里失控:五个变量和对应的控制手段
AI 应用的成本有个特点:试点阶段几乎感觉不到,上线之后增长很快。
原因是计费大多和调用量挂钩,而调用量在试点时被人为限制着,上线后由用户决定。
这篇讲成本由哪五个变量决定,以及各自怎么控。具体价格不写——各家规则会调整,写死了反而误导,要算的是结构。
变量一:上下文长度(最容易失控的一个)
多轮对话时,历史会一起传给模型。
第一轮可能只传几百字,聊到第二十轮,每次调用都要把前面十九轮一起带上。单次成本可能是第一轮的十几倍,而用户完全无感——他只是在正常聊天。
控制手段:
- 限制保留的历史轮数。 只带最近几轮,更早的丢掉或者压缩成摘要。
- 给会话设置时长。 超过一定时间自动开新会话,避免无限累积。
- 监控长会话的比例。 如果发现有用户的会话长度异常,先看是不是产品设计有问题——比如系统一直答不到点上,用户只好反复追问。
变量二:检索塞进去的内容
知识库召回的文档片段会进入上下文,召回数量越多,每次调用消耗越大。
这个参数常常为了「找得全」被随手调大——从三条改成十条,成本可能就翻了几倍,而效果未必更好(噪音多了模型反而容易被带偏)。
控制手段:
- 用测试集验证召回数量。 从少的开始加,看准确率什么时候不再提升,那就是合适的值。
- 加重排序。 召回多一点但只把最相关的几条送进上下文,兼顾覆盖和成本。
- 控制单个片段的长度。 切块时片段过大,召回三条也可能塞很多内容。
变量三:模型选择
不是所有环节都需要最强的模型。
分类、提取、格式化这类任务,小模型就够,而且更快。改写、总结、基于资料回答,中等模型通常够用——知识库问答尤其如此,答案来自检索到的资料,模型负责组织语言。
只有复杂推理、多步规划才值得用最强的。
控制手段:同一个应用里分层用模型。 比如先用小模型判断问题类型,大部分请求走中等模型,只有识别为复杂问题时才调最强的。成本可能差好几倍,而用户感知不到差异。
具体做法见在百炼上选模型。
变量四:重试和失败
这部分成本经常被完全忽略,因为它不出现在设计文档里。
失败重试、格式不对重来、超时后重发——每一次都是额外调用。批量处理时尤其明显:跑一千条,如果有一成需要重试,那就是多出一百次调用。
控制手段:
- 设重试上限。 别让它无限重试。
- 区分该重试和不该重试的失败。 网络超时值得重试,参数错误重试一百次也是错的。
- 记录失败率。 失败率突然升高,通常意味着有别的问题,成本只是症状。
变量五:被滥用
只要接口暴露给用户,就会有人反复调、批量调。
可能是恶意的,也可能只是某个用户写了个脚本。后果是一样的:额度被消耗。
控制手段:
- 单用户频率限制,这是底线
- 整体日上限,超了降级或排队
- 在自己的后端记录调用量,别等平台账单出来才知道
如果有对外的 Webhook 或 API 入口,安全措施见 n8n 的 Webhook 安全——那篇讲的措施对任何对外入口都适用。
上线前怎么估
按最坏情况估,不按平均值。
平均值会骗人:一百个用户里可能九十个每天问一两次,十个每天问几十次。按平均算会严重低估。
推荐做法:
- 先跑十条真实请求,测出单次的大致消耗规模
- 估算重度用户的使用频率,而不是平均用户
- 按重度用户占比推总量
- 留出重试和意外的余量
然后拿这个数去对官方最新的计费说明。 别用几个月前记住的价格——规则会变。
给客户报价时的处理
一、别在方案里写死价格数字。 会变,而且写死了对你不利。写清楚影响成本的变量和结构,让甲方理解为什么是这个量级。
二、把额度归属写进合同。 模型调用的账号是谁的、费用谁付、超了怎么办。这是最容易扯皮的地方之一——甲方觉得系统是你交付的所以你该管,你觉得调用费用本来就该甲方出。
三、给甲方一个可控的方式。 比如设置月度上限、提供用量看板。让他们能自己看到消耗,比每月收到账单再解释好得多。
四、如果用量大且长期,算一下自建的账。 本地部署是一次性硬件投入加低边际成本,在线 API 是成本随用量线性增长。跑三个月的试点和跑三年的系统,最优解不同。
判断依据见甲方说「要私有化部署」时他到底要什么和 FastGPT 部署要多少硬件。
成本要能看见,否则控不住
前面讲的所有控制手段,都建立在一个前提上:你知道钱花在哪了。
而大多数项目的实际情况是:只有一个月底的总数,不知道是哪个功能、哪类请求、哪批用户消耗的。这种情况下没法优化——你不知道该动哪里。
几个成本很低的做法:
一、在自己的后端记调用量。 每次调用记下:哪个功能、哪个模型、大致消耗规模。这比等平台账单细得多,也及时得多。
二、按功能分开统计。 如果一个系统里有客服问答、文档处理、内容生成几块,分开记。你会发现消耗往往高度集中在某一块——而那一块通常不是你以为的那块。
三、设置告警。 日消耗超过某个阈值就提醒。这能在被滥用或者出现异常循环时及时发现,而不是月底看账单才知道。
四、定期回头看。 一个月看一次分布,看有没有新出现的消耗大户。
给客户做项目时,这套东西的价值更大:你能拿数据说明费用花在哪、哪部分可以优化。这比每月收到质疑再解释,专业得多。
一个容易忽略的隐性成本
人的时间。
自部署方案省下了服务费,但增加了运维、升级、排障的人力投入。这部分不出现在账单上,但它是真实成本。
判断标准:如果为了省下的那部分费用,要占用一个人相当比例的精力,那这笔账通常是不划算的——尤其是对小团队,人的时间比服务器贵。
项目上要算这笔账的,可以找我们聊聊。