mirror of
https://github.com/linux-do/new-api.git
synced 2025-09-18 00:16:37 +08:00
fix: 模型固定价格为空时错误使用默认价格
This commit is contained in:
parent
d0acecb2ab
commit
67332bc8df
@ -6,7 +6,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ModelRatio
|
// modelRatio
|
||||||
// https://platform.openai.com/docs/models/model-endpoint-compatibility
|
// https://platform.openai.com/docs/models/model-endpoint-compatibility
|
||||||
// https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Blfmc9dlf
|
// https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Blfmc9dlf
|
||||||
// https://openai.com/pricing
|
// https://openai.com/pricing
|
||||||
@ -114,14 +114,14 @@ var DefaultModelPrice = map[string]float64{
|
|||||||
"swap_face": 0.05,
|
"swap_face": 0.05,
|
||||||
}
|
}
|
||||||
|
|
||||||
var ModelPrice = map[string]float64{}
|
var modelPrice map[string]float64 = nil
|
||||||
var ModelRatio = map[string]float64{}
|
var modelRatio map[string]float64 = nil
|
||||||
|
|
||||||
func ModelPrice2JSONString() string {
|
func ModelPrice2JSONString() string {
|
||||||
if len(ModelPrice) == 0 {
|
if modelPrice == nil {
|
||||||
ModelPrice = DefaultModelPrice
|
modelPrice = DefaultModelPrice
|
||||||
}
|
}
|
||||||
jsonBytes, err := json.Marshal(ModelPrice)
|
jsonBytes, err := json.Marshal(modelPrice)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
SysError("error marshalling model price: " + err.Error())
|
SysError("error marshalling model price: " + err.Error())
|
||||||
}
|
}
|
||||||
@ -129,18 +129,18 @@ func ModelPrice2JSONString() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func UpdateModelPriceByJSONString(jsonStr string) error {
|
func UpdateModelPriceByJSONString(jsonStr string) error {
|
||||||
ModelPrice = make(map[string]float64)
|
modelPrice = make(map[string]float64)
|
||||||
return json.Unmarshal([]byte(jsonStr), &ModelPrice)
|
return json.Unmarshal([]byte(jsonStr), &modelPrice)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetModelPrice(name string, printErr bool) float64 {
|
func GetModelPrice(name string, printErr bool) float64 {
|
||||||
if len(ModelPrice) == 0 {
|
if modelPrice == nil {
|
||||||
ModelPrice = DefaultModelPrice
|
modelPrice = DefaultModelPrice
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(name, "gpt-4-gizmo") {
|
if strings.HasPrefix(name, "gpt-4-gizmo") {
|
||||||
name = "gpt-4-gizmo-*"
|
name = "gpt-4-gizmo-*"
|
||||||
}
|
}
|
||||||
price, ok := ModelPrice[name]
|
price, ok := modelPrice[name]
|
||||||
if !ok {
|
if !ok {
|
||||||
if printErr {
|
if printErr {
|
||||||
SysError("model price not found: " + name)
|
SysError("model price not found: " + name)
|
||||||
@ -151,10 +151,10 @@ func GetModelPrice(name string, printErr bool) float64 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ModelRatio2JSONString() string {
|
func ModelRatio2JSONString() string {
|
||||||
if len(ModelRatio) == 0 {
|
if modelRatio == nil {
|
||||||
ModelRatio = DefaultModelRatio
|
modelRatio = DefaultModelRatio
|
||||||
}
|
}
|
||||||
jsonBytes, err := json.Marshal(ModelRatio)
|
jsonBytes, err := json.Marshal(modelRatio)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
SysError("error marshalling model ratio: " + err.Error())
|
SysError("error marshalling model ratio: " + err.Error())
|
||||||
}
|
}
|
||||||
@ -162,18 +162,18 @@ func ModelRatio2JSONString() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func UpdateModelRatioByJSONString(jsonStr string) error {
|
func UpdateModelRatioByJSONString(jsonStr string) error {
|
||||||
ModelRatio = make(map[string]float64)
|
modelRatio = make(map[string]float64)
|
||||||
return json.Unmarshal([]byte(jsonStr), &ModelRatio)
|
return json.Unmarshal([]byte(jsonStr), &modelRatio)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetModelRatio(name string) float64 {
|
func GetModelRatio(name string) float64 {
|
||||||
if len(ModelRatio) == 0 {
|
if modelRatio == nil {
|
||||||
ModelRatio = DefaultModelRatio
|
modelRatio = DefaultModelRatio
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(name, "gpt-4-gizmo") {
|
if strings.HasPrefix(name, "gpt-4-gizmo") {
|
||||||
name = "gpt-4-gizmo-*"
|
name = "gpt-4-gizmo-*"
|
||||||
}
|
}
|
||||||
ratio, ok := ModelRatio[name]
|
ratio, ok := modelRatio[name]
|
||||||
if !ok {
|
if !ok {
|
||||||
SysError("model ratio not found: " + name)
|
SysError("model ratio not found: " + name)
|
||||||
return 30
|
return 30
|
||||||
|
@ -78,8 +78,8 @@ func InitOptionMap() {
|
|||||||
common.OptionMap["QuotaForInvitee"] = strconv.Itoa(common.QuotaForInvitee)
|
common.OptionMap["QuotaForInvitee"] = strconv.Itoa(common.QuotaForInvitee)
|
||||||
common.OptionMap["QuotaRemindThreshold"] = strconv.Itoa(common.QuotaRemindThreshold)
|
common.OptionMap["QuotaRemindThreshold"] = strconv.Itoa(common.QuotaRemindThreshold)
|
||||||
common.OptionMap["PreConsumedQuota"] = strconv.Itoa(common.PreConsumedQuota)
|
common.OptionMap["PreConsumedQuota"] = strconv.Itoa(common.PreConsumedQuota)
|
||||||
common.OptionMap["ModelRatio"] = common.ModelRatio2JSONString()
|
common.OptionMap["modelRatio"] = common.ModelRatio2JSONString()
|
||||||
common.OptionMap["ModelPrice"] = common.ModelPrice2JSONString()
|
common.OptionMap["modelPrice"] = common.ModelPrice2JSONString()
|
||||||
common.OptionMap["GroupRatio"] = common.GroupRatio2JSONString()
|
common.OptionMap["GroupRatio"] = common.GroupRatio2JSONString()
|
||||||
common.OptionMap["TopUpLink"] = common.TopUpLink
|
common.OptionMap["TopUpLink"] = common.TopUpLink
|
||||||
common.OptionMap["ChatLink"] = common.ChatLink
|
common.OptionMap["ChatLink"] = common.ChatLink
|
||||||
@ -271,11 +271,11 @@ func updateOptionMap(key string, value string) (err error) {
|
|||||||
common.DataExportInterval, _ = strconv.Atoi(value)
|
common.DataExportInterval, _ = strconv.Atoi(value)
|
||||||
case "DataExportDefaultTime":
|
case "DataExportDefaultTime":
|
||||||
common.DataExportDefaultTime = value
|
common.DataExportDefaultTime = value
|
||||||
case "ModelRatio":
|
case "modelRatio":
|
||||||
err = common.UpdateModelRatioByJSONString(value)
|
err = common.UpdateModelRatioByJSONString(value)
|
||||||
case "GroupRatio":
|
case "GroupRatio":
|
||||||
err = common.UpdateGroupRatioByJSONString(value)
|
err = common.UpdateGroupRatioByJSONString(value)
|
||||||
case "ModelPrice":
|
case "modelPrice":
|
||||||
err = common.UpdateModelPriceByJSONString(value)
|
err = common.UpdateModelPriceByJSONString(value)
|
||||||
case "TopUpLink":
|
case "TopUpLink":
|
||||||
common.TopUpLink = value
|
common.TopUpLink = value
|
||||||
|
@ -29,7 +29,7 @@ func InitTokenEncoders() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
common.FatalLog(fmt.Sprintf("failed to get gpt-4 token encoder: %s", err.Error()))
|
common.FatalLog(fmt.Sprintf("failed to get gpt-4 token encoder: %s", err.Error()))
|
||||||
}
|
}
|
||||||
for model, _ := range common.ModelRatio {
|
for model, _ := range common.DefaultModelRatio {
|
||||||
if strings.HasPrefix(model, "gpt-3.5") {
|
if strings.HasPrefix(model, "gpt-3.5") {
|
||||||
tokenEncoderMap[model] = gpt35TokenEncoder
|
tokenEncoderMap[model] = gpt35TokenEncoder
|
||||||
} else if strings.HasPrefix(model, "gpt-4") {
|
} else if strings.HasPrefix(model, "gpt-4") {
|
||||||
|
Loading…
Reference in New Issue
Block a user