name
c26d3ae1b5
feat(channels): 渠道未填价时按 LiteLLM 默认价展示
「可用渠道」展示链路有两个未覆盖场景导致用户看到"未配置定价":
1. admin 在 UI 里建了 ModelPricing 条目但没填任何价格 (常见于
per_request / image 模式只填了 tier_label 没填单价): 原 fallback
只检查 Pricing == nil, 这种空条目会跳过 LiteLLM 兜底。
2. LiteLLM 把图片模型标记 mode=image_generation, 但合成器固定按
token 模式合成, 把 OutputCostPerImage / 图片 token 价丢到错误字段。
改动 (仅 backend/internal/service/channel_available.go):
- 新增 pricingNeedsFallback: 价格字段全空 (含 intervals 全空) 视为
未配置, 触发 LiteLLM 兜底。
- synthesizePricingFromLiteLLM 加 existing 参数: 优先尊重渠道已选
BillingMode (per_request / image 也按此模式合成), 没选才看 LiteLLM
mode, 仍未命中默认 token。
- image / per_request 分支用 OutputCostPerImage 填 PerRequestPrice,
OutputCostPerImageToken 填 ImageOutputPrice, 让 gpt-image / dall-e
系列展示出参考价。
仅影响展示链路, 真实计费走 BillingService / ModelPricingResolver
完全不受影响。新增 8 个单元测试覆盖 pricingNeedsFallback 各分支、
合成器三种模式选择、空条目兜底与既有价格保护。
2026-05-15 01:28:13 +08:00
..
2026-05-11 11:17:26 +08:00
2026-04-25 20:39:58 -04:00
2026-05-11 22:25:20 +08:00
2026-02-08 12:05:39 +08:00
2026-02-08 12:05:39 +08:00
2026-03-27 14:33:05 +08:00
2026-05-11 11:17:26 +08:00
2026-05-11 22:25:20 +08:00
2026-05-07 09:35:14 +08:00
2026-05-11 22:55:02 +08:00
2026-05-15 01:28:13 +08:00
2026-03-17 15:38:18 +08:00
2026-03-09 19:55:18 +08:00
2026-04-05 17:11:01 +08:00
2026-04-23 15:13:57 +00:00