feat(openai): 增加 gpt-5.4-mini/nano 模型支持与定价配置

- 接入 gpt-5.4-mini/nano 模型识别与规范化,补充默认模型列表
- 增加 gpt-5.4-mini/nano 输入/缓存命中/输出价格与计费兜底逻辑
- 同步前端模型白名单与 OpenCode 配置
- 补充 service tier(priority/flex) 计费回归测试
This commit is contained in:
Remx
2026-03-19 19:00:22 +08:00
committed by InCerry
parent 4f7629a4cb
commit c810cad7c8
12 changed files with 310 additions and 1 deletions

View File

@@ -34,6 +34,22 @@ var (
Mode: "chat",
SupportsPromptCaching: true,
}
openAIGPT54MiniFallbackPricing = &LiteLLMModelPricing{
InputCostPerToken: 7.5e-07,
OutputCostPerToken: 4.5e-06,
CacheReadInputTokenCost: 7.5e-08,
LiteLLMProvider: "openai",
Mode: "chat",
SupportsPromptCaching: true,
}
openAIGPT54NanoFallbackPricing = &LiteLLMModelPricing{
InputCostPerToken: 2e-07,
OutputCostPerToken: 1.25e-06,
CacheReadInputTokenCost: 2e-08,
LiteLLMProvider: "openai",
Mode: "chat",
SupportsPromptCaching: true,
}
)
// LiteLLMModelPricing LiteLLM价格数据结构
@@ -723,6 +739,18 @@ func (s *PricingService) matchOpenAIModel(model string) *LiteLLMModelPricing {
}
}
if strings.HasPrefix(model, "gpt-5.4-mini") {
logger.With(zap.String("component", "service.pricing")).
Info(fmt.Sprintf("[Pricing] OpenAI fallback matched %s -> %s", model, "gpt-5.4-mini(static)"))
return openAIGPT54MiniFallbackPricing
}
if strings.HasPrefix(model, "gpt-5.4-nano") {
logger.With(zap.String("component", "service.pricing")).
Info(fmt.Sprintf("[Pricing] OpenAI fallback matched %s -> %s", model, "gpt-5.4-nano(static)"))
return openAIGPT54NanoFallbackPricing
}
if strings.HasPrefix(model, "gpt-5.4") {
logger.With(zap.String("component", "service.pricing")).
Info(fmt.Sprintf("[Pricing] OpenAI fallback matched %s -> %s", model, "gpt-5.4(static)"))