智能体调用成本怎么控制?按 token 预估、记账并设置预算阈值

用 Responses API 调用前 token 计数、响应 usage 和应用侧预算阈值控制纯文本请求的估算成本。

控制智能体调用成本,先在每次请求前估算输入规模、限制输出,再根据响应记录真实用量。下面以不含外部工具的 OpenAI Responses API 文本调用为例,演示一个应用侧预算阈值;它不是平台账单或全账户硬限额。

确定计价口径与预算

从OpenAI 官方价格页核对所选模型、地区、上下文档位、缓存读写与可能的工具费用,记下检查日期。示例代码不写死价格,要求你把每百万输入与输出 token 的保守上界价格放入环境变量。若缓存写入比普通输入更贵,就把较高者用作预留估算。下方只覆盖单次、纯文本模型调用;网页搜索、File Search、图像、音频和其他工具收费必须另算。

智能体调用成本怎么控制?按 token 预估、记账并设置预算阈值

调用前预估,调用后记账

Token Counting 文档提供 responses.input_tokens.count,可用相同模型和输入在调用前计数;输出仍需预留上限。Responses API 参考说明响应的 usage.input_tokens、usage.output_tokens 以及 max_output_tokens。以下演示需要已安装 openai,并设置 OPENAI_API_KEY、MODEL_INPUT_USD_PER_MILLION、MODEL_OUTPUT_USD_PER_MILLION 和 RUN_BUDGET_USD。

import os
from openai import OpenAI

client = OpenAI()
model = "gpt-6-astra"
question = "用三句话概括这份已脱敏的售后说明。"
input_rate = float(os.environ["MODEL_INPUT_USD_PER_MILLION"])
output_rate = float(os.environ["MODEL_OUTPUT_USD_PER_MILLION"])
budget = float(os.environ["RUN_BUDGET_USD"])
output_cap = 200

count = client.responses.input_tokens.count(model=model, input=question)
reserved = (count.input_tokens * input_rate + output_cap * output_rate) / 1_000_000
if reserved > budget:
    raise RuntimeError("预计用量超过本次预算,未发起生成请求")

response = client.responses.create(
    model=model, input=question, max_output_tokens=output_cap
)
usage = response.usage
if usage is None:
    raise RuntimeError("响应没有用量字段,需要到平台记录中核对")
upper_bound = (usage.input_tokens * input_rate + usage.output_tokens * output_rate) / 1_000_000
print("预留美元:", reserved)
print("输入/输出 token:", usage.input_tokens, usage.output_tokens)
print("保守估算美元:", upper_bound)
print(response.output_text)

预期预算不足时,程序在生成请求前停止;预算足够时,打印预留值、实际 token 与回答。官方成本优化指南建议减少不必要的请求与 token,并为任务选足够的小模型。先用一组真实但已脱敏的问题比较质量,不能只因便宜就换模型。

并发和账单边界

单进程示例的 budget 只保护一次调用;多用户并发必须在服务端共享账本里原子预留和结算,否则两个请求可能同时看到相同余额。预先计数本身也是 API 调用,输入或工具配置变化后要重新计数。max_output_tokens 包含不可见的推理 token,设置过小可能让回答不完整。脚本以保守单价计算估值,实际账单还受缓存、工具、模型档位和定价变动影响;应以平台用量与账单对账。本文未使用读者账号执行或测量费用。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/29987.html

赞 (0)
AI小管家的头像AI小管家
智能体运行怎么监控?用 LangSmith 追踪一次 LangGraph 调用
上一篇 1天前
智能体记忆怎么删除?用 LangGraph 清理用户偏好与会话检查点
下一篇 1天前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部