跳到文章正文
Grok 实用教程

Grok API一次请求花多少钱?cost_in_usd_ticks读取、精确求和与流式核对

使用usage中的实际计费ticks核对单次与会话费用,以整数和Decimal避免提前四舍五入;…

应用按Token单价自己估算Grok费用,可能忽略缓存折扣、服务端工具或流式记录口径。官方API在usage提供cost_in_usd_ticks,表示该次请求实际计费。本文用虚构响应核对读取与汇总,不调用付费API、不发布固定套餐报价,也不把消费记录当钱包余额。

Grok API一次请求花多少钱
Grok API一次请求花多少钱(示意图)

第一步:确认读取的是哪次请求

官方说明Chat Completions、Responses及图片、视频生成响应都有相应usage成本字段。它是每次调用费用,不自动累计整个多轮会话。保存时关联应用任务编号、上游响应或请求标识和状态,避免同一次返回被多个日志消费者重复入账。

第三方代理或SDK可能不透传原字段,文档也指出当前Vercel AI SDK的相关元数据不暴露此值。缺字段应按未知处理并检查上游响应,不能因为界面只展示Token就推断费用为零。不要为读取成本输出真实密钥或完整敏感提示。

第二步:使用正确单位转换

一美元对应一百亿ticks,即10的10次方。保存原始整数,汇总后再转换显示,比每轮先截成几位小数更可靠。金额展示与内部计量分开:界面显示0.00不意味着真实成本没有发生,可能只是精度不够。

from decimal import Decimal

TICKS_PER_USD = Decimal(10_000_000_000)
def read_cost_usd(payload):
    ticks = payload.get("usage", {}).get("cost_in_usd_ticks")
    if type(ticks) is not int or ticks < 0:
        raise ValueError("Cost missing or invalid; do not assume zero")
    return Decimal(ticks) / TICKS_PER_USD

# 仅为本地计量练习,不代表真实请求账单
sample = {"usage":{"cost_in_usd_ticks":400_000_000}}
assert read_cost_usd(sample) == Decimal("0.04")

示例只验证单位转换,不表示任何模型或图片现在固定收0.04美元。真实金额来自每次实际响应,价格、参数与工具使用都会影响它。不要把文档中的演示数字写进自己的价格表或促销广告。

第三步:按唯一记录累计多轮费用

records = {
    "demo-request-a": 100_000_000,
    "demo-request-b": 250_000_000,
}
total_ticks = sum(records.values())
total_usd = Decimal(total_ticks) / TICKS_PER_USD
assert total_usd == Decimal("0.035")
print(total_usd)

这里的字典用来说明唯一记录求和,不是完整生产账本。真实应用应保证并发写入幂等,并区分重试是否创建了另一请求。账本不能只覆盖最终成功回答,失败或中断时没有完整用量的请求也要保留未知状态,后续按实际可取得记录核对。

第四步:正确处理流式与工具费用

使用OpenAI兼容SDK或REST的Chat Completions流式请求时,官方要求stream_options.include_usage为true,成本在最终用量块出现,choices可能为空。读取前先检查usage与choices,别直接访问choices[0]导致最后成本块解析失败。

xAI SDK各块可带运行累计值,最后块反映该请求最终费用,不能把每块累计数相加。服务端网页搜索、X搜索和代码执行等内部工具费用已包含在这一请求的最终成本,不再把工具估价重复加一遍。自有外部服务费用则仍按各自系统统计。

第五步:区分计费、预算与余额

cost_in_usd_ticks反映已发生费用,不是执行前预算硬上限,也不是账户余额。发现异常时回查模型、端点、参数、重试与工具次数,不把短回答简单等同于低费用。长上下文即使只输出一句话,也可能有输入与推理消耗。

保留原始ticks与必要标识,展示时再按明确规则舍入。完成标准是每请求不漏不重、流式不重复累加、缺失不计零,且汇总能回到原始记录。本文不代替财务发票或账户账单核对,也不承诺自动推算尚未发生请求的最终金额。

真正返回零ticks与没有返回成本是两种状态,账本应分别表示。按统一时区记录请求时间,跨日汇总时保留原始计量;ticks换算的是美元,不自动代表人民币金额、税费或账户余额。流式断开没拿到最终用量时,先记录未知成本和请求标识,不把中间值标成最终账单,也不通过重发业务请求来查询上一笔费用。

官方资料

资料核对日期:2026年11月10日。

本文地址:https://www.163264.com/20250