快速结论:该报错不是运行时崩溃,而是 LiteLLM 的 model_prices_and_context_window.json 中 13 条 tencent/* 记录把 cache_creation_input_token_cost 显式写成 0.0,下游消费方若用 row.get("cache_creation_input_token_cost") or fallback 这类 or 回退写法,会把本应免费的缓存写入按回退价(通常是 1.25 × input)重新计价。优先排查自身代码或依赖中是否存在对价格字段的 or 回退取值。
适用环境:Issue 中明确确认的是 LiteLLM 及其价格文件 model_prices_and_context_window.json;涉及 tencent/* 模型行。未提供操作系统、Python、CUDA、显卡等版本证据,此处不补写。
最快修复方案:升级到包含 PR #49294 的 LiteLLM 版本,并把自己代码中对价格字段的回退取值从 row.get(field) or fallback 改为先判断字段是否存在(判定 rate is None 再取回退值,或使用 "field" in row 判断),让显式 0.0 保持为免费。上游同时补充了 CONTRIBUTING 规则:“test rate is None before substituting a fallback”。
注意事项:Issue 报告者说明未发现 LiteLLM 内部路径会错误计价这些行(其成本函数直接读 dict),风险主要在下游消费方;若下游仍使用 or 惯用法,即便升级也不会自动修复其回退逻辑。显式 0.0 是否代表腾讯确实按零计费,Issue 未给出账单证据,需以官方定价为准。
问题场景
用户或下游工具在消费 LiteLLM 的模型价格文件 model_prices_and_context_window.json,读取 tencent/* 模型行的缓存相关价格字段时触发计价偏差。13 条 tencent 行均发布显式的 cache_creation_input_token_cost: 0.0,同时带有非零的 cache_read_input_token_cost。问题出现在以 or 回退方式读取价格字段的消费代码中,而非 LiteLLM 自身的成本计算函数。
报错原文
model_prices: explicit 0.0 in cache_creation_input_token_cost (13 tencent/* rows) is a truthiness trap for or-fallback consumers
原因分析
最可能的原因是 Python 的真值判断:0.0 是合法的价格值,但在 Python 中为 falsy。任何写成 row.get("cache_creation_input_token_cost") or fallback 的消费者,都会把显式 0.0 当作“字段缺失”,从而替换为回退价(通常为 1.25 × input),把免费的缓存写入变成收费。Issue 指出该文件是价格的事实来源,这 13 行不是边缘个案,而是整个 provider 区块。报告中同时强调未发现 LiteLLM 内部存在误计价路径,问题在于文件对 or 惯用法消费者不安全;修复方向是文档说明或增加区分“字段存在且为 0”与“字段缺失”的辅助函数。
环境排查
- 确认 LiteLLM 版本是否已包含 PR #49294 的修复。
- 确认所用价格文件中
tencent/*行的cache_creation_input_token_cost是显式0.0还是缺失。 - 检查自己的代码或第三方依赖中,是否存在
row.get(价格字段) or 回退值形式的取值。 - 检查回退逻辑是否在回退时标记了“推断值”,以免把推断价当作源数据价使用。
解决步骤
- 将代码中对
cache_creation_input_token_cost等价格字段的 or 回退改为存在性判断:先判断rate is None(或"field" in row),只有字段缺失时才使用回退值;显式0.0直接采用。 - 若下游依赖库实施了 or 回退,可优先尝试升级 LiteLLM 至含 PR #49294 的版本,并检查该依赖是否同步更新;Issue 未说明依赖库的具体清单。
- 如果回退分支仍被触发,为回退产生的价格加上“inferred”标记,便于区分源数据价与推断价。
- 可优先尝试引入或参考 Issue 中给出的合规向量 pricing-explicit-zero.json 作为回归用例。
验证方法
按 Issue 中的合规向量验证三种情形:对显式 0.0 使用 or 回退重新计价应判为 FAIL;使用存在性检查、保留 0.0 免费应判为 PASS;字段缺失时允许回退但结果必须标记为 inferred 应判为 PASS。对 tencent/* 行逐条确认 cache_creation_input_token_cost 的取值为 0.0 而非回退价,且缓存读取价未被改动。
参考来源
pricing-explicit-zero.json(合规向量)
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。

![[Bug]: Gemini 4 Argon: CONTINUATION finish reason is mapped to "stop", so truncated output looks complete](https://www.chat-gpts.plus/wp-content/uploads/2026/10/49107-68783f3c-768x403.jpg)
![[Bug]: `WorkflowIdleEvent` is emitted while events sent from outside the run with `handler.ctx.send_event` are still undelivered, so a conte](https://www.chat-gpts.plus/wp-content/uploads/2026/10/23839-0cb4ec01-768x403.jpg)