fix: 管理员自定义价格的任务模型自动按次计费,不再乘 OtherRatios
当管理员为任务模型(如 sora_video2)设置了固定价格时, 之前会错误地将价格乘以 seconds/size 等 OtherRatios, 导致设置 $2/次 实际收费 $8($2 × 4秒)。 新增 IsTaskPerCallBilling() 判断逻辑: - 模型在 TASK_PRICE_PATCH 环境变量中 → 按次(兼容旧逻辑) - 模型有管理员配置的价格且不在默认价格表中 → 自动按次 默认价格表中的模型(如 sora-2: $0.3)仍按原逻辑乘 OtherRatios。 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -22,6 +22,7 @@ import (
|
||||
"github.com/QuantumNous/new-api/service"
|
||||
"github.com/QuantumNous/new-api/setting"
|
||||
"github.com/QuantumNous/new-api/setting/operation_setting"
|
||||
"github.com/QuantumNous/new-api/setting/ratio_setting"
|
||||
"github.com/QuantumNous/new-api/types"
|
||||
|
||||
"github.com/bytedance/gopkg/util/gopool"
|
||||
@@ -581,7 +582,7 @@ func RelayTask(c *gin.Context) {
|
||||
ModelRatio: relayInfo.PriceData.ModelRatio,
|
||||
OtherRatios: relayInfo.PriceData.OtherRatios,
|
||||
OriginModelName: relayInfo.OriginModelName,
|
||||
PerCallBilling: common.StringsContains(constant.TaskPricePatches, relayInfo.OriginModelName),
|
||||
PerCallBilling: ratio_setting.IsTaskPerCallBilling(relayInfo.OriginModelName),
|
||||
}
|
||||
task.Quota = result.Quota
|
||||
task.Data = result.TaskData
|
||||
|
||||
Reference in New Issue
Block a user