如何对大模型 API 单次调用所涉及的成本进行计算
一、计费所遵循的核心逻辑
OpenAI官方API的计费模式是按Token数量进行收费,也就是所说的按量付费。中文文本一个汉字大致会占用2个Token左右,这里以OpenAI的GPT-4o模型为例,简单计算一下其单次API调用的费用。
中文大约每1个token相当于1.8到2个汉字,英文每1个token则大约相当于4个字符。
二、计算公式
单次调用的总成本可以借助下面的公式进行计算:(输入token数量 × 输入单价 / 千token)÷1000,再加上(输出token数量 × 输出单价 / 千token)÷1000。
举例演示
对于某个模型来说,它的输入价格被设置成每千token 0.8元,输出价格则被设置成每千token 2元。
在这一回请求里面,所输入的token数量是3000,输出的token数量则是1200。
单次成本的计算方式是:(3000×0.8÷1000)+(1200×2÷1000)=2.4+2.4=4.8 元。
三、获取token数量的两种方式
借助 API 响应体直接读取其中所包含的`usage`字段,该字段含有`prompt_tokens`输入量和`completion_tokens`输出量,属于最为准确的数值,直接套用公式进行计算就可以。
预估方式:在未返回usage的情况下,可以把中文总汉字数量除以2来大致估算token,这个结果只作为参考依据,会存在一定误差。
四、影响成本的关键因素
1. 选择模型版本:能力越强的模型,每千token的单价也会相应更高;
2. 提示词长度:系统提示词和上下文会话都会算在输入token里面,多轮对话上下文的不断累积还会进一步推高成本;
3. 生成长度:设置的max_tokens数值越大,模型最多可以输出的内容就越多,输出上限越高,对应的成本也就越高;
4. 缓存/上下文复用:部分服务商拥有提示词缓存的功能,可以借此来降低重复输入部分的计费。
五、成本控制小技巧
1. 对System提示词开展精简处理工作,把里面冗余的描述予以删除。
2. 对上下文轮次进行控制,及时截断旧的会话内容,从而避免输入规模出现无限膨胀。
3. 对于非复杂任务,选用轻量并且价格较低的模型。
4. 对消费限额进行配置,从而防止因为异常调用而出现超额扣费的情况。
5. 对批量任务的总消耗进行统计:先在全部调用当中分别对输入与输出 token 进行求和,然后再把求和结果代入公式对总费用进行计算。
GPT API 调用成本的核心围绕着 token 来展开,输入与输出分别进行计费。借助接口返回的 usage 字段就能够获取到最为准确的 token 数值,再把该数值代入计价公式,便可以计算出单次调用的真实开销。日常也可以依托汉字所占比例来进行粗略预估,但这一结果只能作为参考,不能充当精确核算的依据。模型选型、提示词长度以及多轮对话所累积下来的上下文,都会对调用费用产生较为明显的影响。要是想做好成本控制,就应当对提示词进行精简,适时截断历史会话,依据业务场景选用合适的模型,并且配置消费限额来规避超额风险。这样能够帮助开发者清晰把控接口支出,避免出现意外的高额消耗。
