GLM API 不是“包月随便用”的产品,而是按实际用量计费。很多团队第一次看账单时会疑惑:明明请求数不多,为什么费用比预期高?原因通常不是单价,而是输入太长、输出失控、缓存没命中,或者失败重试又生成了一遍内容。

本文不列具体单价,因为价格会随模型、上下文档位和活动调整。我们讲清楚计费结构、成本从哪里产生、怎么估算和压降,最后给出可执行的控制清单。查当前价格请以站内模型价格和智谱官方定价页为准。

说明:智谱、GLM、BigModel 是相关权利人的商标,本文仅作技术说明,与智谱无隶属、代理或授权关系。计费规则与价格可能调整,下单前请核对官方文档与账单页面。

一、计费的基本单位

文本模型以 token 为基本单位。智谱官方文档给出的经验换算约为 1 个 token 对应 1.6 个汉字,但实际数量取决于分词器和文本内容,最终以接口返回的 usage 为准。也就是说,估算只能用于预算,不能替代账单。

不是所有模型都按 token 计费。图像生成、视频生成、语音合成、语音克隆、实时音视频、知识库解析等,可能按次、按分钟、按字符或按页计费。做多模态产品时,先把计费单位确认清楚,再谈单价。

二、输入与输出为什么分开算

一次请求通常包含输入 token 和输出 token,两者分开计价,输出一般更贵。长上下文模型还可能按输入长度分档,例如以 32K 为界,超过后进入更高档位;部分模型还会按输出长度分档。这意味着“同一个模型”在不同用法下,单位成本可能不同。

影响成本的主要不是请求数,而是每次请求携带的上下文。把整份知识库、全部历史对话和几十个工具定义都塞进提示词,输入会迅速膨胀。更常见的浪费是输出:没有设置最大输出长度,模型滔滔不绝,费用自然上去。

成本项 计费口径 常见触发场景 控制手段
输入 token 按未命中缓存的输入计费 长提示词、多轮历史、工具定义 精简上下文、做摘要
输出 token 按生成内容计费 长文写作、代码生成 设置最大输出长度
缓存命中 命中部分按折扣价 固定系统提示词、知识库前缀 保持前缀稳定
长上下文档位 超过阈值后单价变化 长文档、代码库分析 切分、摘要、按需加载
重试与失败 已生成部分可能计费 超时、流式中断、重复提交 幂等、退避、去重
多模态与工具 按次、分钟、页等计费 图像生成、语音、搜索、解析 单独核算、限制调用

三、缓存命中:省的是重复前缀

智谱提供上下文缓存能力,官方文档主要介绍的是隐式缓存:系统自动识别重复内容,不需要手动标记缓存点。它适合“固定系统提示词 + 固定知识库 + 变化的问题”这类场景。

想提高命中率,至少要满足三个条件:重复前缀足够长,官方建议达到 500 token 以上;前缀内容完全一致,哪怕多一个空格都可能导致不命中;缓存异步生成,首次请求后稍等再发后续请求,效果更好。命中情况可以查看 usage.prompt_tokens_details.cached_tokens。

缓存不是万能的。短提示词、每次都变化的内容、频繁改动的知识库,都很难命中。缓存存储是否单独计费、折扣力度多大,以官方定价页为准。把缓存当成优化项,而不是成本模型的默认前提。

四、长上下文、批量与多模态

长上下文很实用,但也是最容易超出预算的地方。处理合同、论文、代码库时,先问三个问题:真的需要一次放入全部内容吗?能否先检索再拼接?能否分段处理后再汇总?很多任务用“检索 + 摘要”就能完成,成本远低于整库直塞。

批量任务可以关注 Batch 接口。官方文档说明,支持的模型使用 Batch 接口通常有折扣,适合离线标注、批量摘要、数据清洗等不要求实时返回的场景。代价是延迟更高,任务编排也更复杂,适合有队列和结果校验的团队。

多模态能力要单独核算。图片生成按张计费,图片理解通常按 token 计费;语音合成按字符或分钟,知识库解析按页。把这些成本混进文本预算里,月底一定对不上账。

五、重试、流式中断与隐藏成本

失败请求不一定免费。如果服务端已经生成了一部分内容再超时,这部分用量可能仍然计费;流式连接中断时,已生成的部分也可能计入账单。因此,重试策略要克制:只对限流、5xx 和网络超时重试,使用指数退避,并设置最大次数。

另一个隐藏成本是重复提交。用户连点按钮、前端超时自动重发、队列重复消费,都会产生额外请求。用请求 ID 做幂等,或者在网关层做去重,比事后对账有效得多。

还要算上工程成本:日志、监控、评测、人工复核。模型调用费只是总成本的一部分,别为了省一点调用费,投入数倍的人力做手工修补。

六、怎么估算月度预算

估算分四步:统计月调用量、估算平均输入输出、估计缓存命中率、套用当前单价。如果希望把多个模型的余额和用量放在一处管理,可以在中商起航 AI 网关注册后统一查看;具体价格仍以模型价格页为准。下面的代码只是计算框架,单价请从官方定价页读取后填入。

# 预算模型:所有单价均为占位值,请替换为当前官方价格
monthly_calls = 300_000
avg_input_tokens = 1_200
avg_output_tokens = 300
cache_hit_rate = 0.35
input_rate = 0.0       # 输入单价,查官方定价页
output_rate = 0.0      # 输出单价
cache_rate = 0.0       # 缓存命中单价

uncached_input = avg_input_tokens * (1 - cache_hit_rate)
cached_input = avg_input_tokens * cache_hit_rate
per_call = (
    uncached_input * input_rate
    + cached_input * cache_rate
    + avg_output_tokens * output_rate
)
print(f"预估月成本:{monthly_calls * per_call:.2f} 元")

估算时留出余量。新业务的实际输入往往比设计时更长,重试和失败也会增加用量。建议先按小流量跑两周,用真实 usage 数据替换假设值,再决定预算。

七、预算控制清单

  1. 为每个环境、每个服务设置独立额度上限。
  2. 给所有请求设置最大输出长度和超时时间。
  3. 固定系统提示词顺序,提升缓存命中率。
  4. 长文档先检索、摘要,再决定是否送入长上下文。
  5. 只对可重试错误重试,并设置退避与次数上限。
  6. 每天看用量,每周看账单,异常增长立即定位。
  7. 离线任务优先走 Batch,实时任务再走在线接口。

八、常见问题(FAQ)

1. GLM API 具体多少钱?

价格随模型、上下文档位和活动变化,本文不列固定数字。请查看站内模型价格或智谱官方定价页,并以控制台账单为准。

2. 缓存命中是怎么计费的?

命中缓存的部分按折扣价计费,未命中的输入按标准输入价计费。具体折扣和存储费用以官方定价页为准,命中量可从 usage 字段查看。

3. 请求失败会扣费吗?

取决于失败阶段。如果已经生成了一部分内容,可能按实际用量计费;参数错误、鉴权失败通常不会产生生成费用。以账单明细为准。

4. 长上下文一定更贵吗?

通常更贵。很多模型按输入长度分档,超过阈值后单价上升。能切分或检索解决的任务,不必强行使用长上下文。

5. 怎么快速降低现有成本?

先做三件事:限制最大输出长度、压缩系统提示词、提高缓存命中率。这三项通常比换模型更快见效,也更可控。

相关阅读