feat: add support for gpt-4.5-preview model and update billing ratios

This commit is contained in:
Laisky.Cai 2025-03-03 03:52:09 +00:00
parent 453ec8165b
commit fc828e407b
3 changed files with 32 additions and 24 deletions

View File

@ -24,4 +24,5 @@ var ModelList = []string{
"o1-preview", "o1-preview-2024-09-12", "o1-preview", "o1-preview-2024-09-12",
"o1-mini", "o1-mini-2024-09-12", "o1-mini", "o1-mini-2024-09-12",
"o3-mini", "o3-mini-2025-01-31", "o3-mini", "o3-mini-2025-01-31",
"gpt-4.5-preview", "gpt-4.5-preview-2025-02-27",
} }

View File

@ -179,6 +179,7 @@ var ModelList = []string{
"openai/gpt-4o-mini", "openai/gpt-4o-mini",
"openai/gpt-4o-mini-2024-07-18", "openai/gpt-4o-mini-2024-07-18",
"openai/gpt-4o:extended", "openai/gpt-4o:extended",
"openai/gpt-4.5-preview",
"openai/o1", "openai/o1",
"openai/o1-mini", "openai/o1-mini",
"openai/o1-mini-2024-09-12", "openai/o1-mini-2024-09-12",

View File

@ -26,6 +26,8 @@ var modelRatioLock sync.RWMutex
// 1 === ¥0.014 / 1k tokens // 1 === ¥0.014 / 1k tokens
var ModelRatio = map[string]float64{ var ModelRatio = map[string]float64{
// https://openai.com/pricing // https://openai.com/pricing
"gpt-4.5-preview": 75 * MILLI_USD,
"gpt-4.5-preview-2025-02-27": 75 * MILLI_USD,
"gpt-4": 15, "gpt-4": 15,
"gpt-4-0314": 15, "gpt-4-0314": 15,
"gpt-4-0613": 15, "gpt-4-0613": 15,
@ -578,6 +580,7 @@ var ModelRatio = map[string]float64{
"openai/gpt-4o-mini": 0.3, "openai/gpt-4o-mini": 0.3,
"openai/gpt-4o-mini-2024-07-18": 0.3, "openai/gpt-4o-mini-2024-07-18": 0.3,
"openai/gpt-4o:extended": 9.0, "openai/gpt-4o:extended": 9.0,
"openai/gpt-4.5-preview": 75 * MILLI_USD,
"openai/o1": 30.0, "openai/o1": 30.0,
"openai/o1-mini": 2.2, "openai/o1-mini": 2.2,
"openai/o1-mini-2024-09-12": 2.2, "openai/o1-mini-2024-09-12": 2.2,
@ -815,6 +818,8 @@ func GetCompletionRatio(name string, channelType int) float64 {
} }
model := fmt.Sprintf("%s(%d)", name, channelType) model := fmt.Sprintf("%s(%d)", name, channelType)
name = strings.TrimPrefix(name, "openai/")
for _, targetName := range []string{model, name} { for _, targetName := range []string{model, name} {
for _, ratioMap := range []map[string]float64{ for _, ratioMap := range []map[string]float64{
CompletionRatio, CompletionRatio,
@ -839,18 +844,19 @@ func GetCompletionRatio(name string, channelType int) float64 {
return 4.0 / 3.0 return 4.0 / 3.0
} }
if strings.HasPrefix(name, "gpt-4") { if strings.HasPrefix(name, "gpt-4") {
if strings.HasPrefix(name, "gpt-4o") { switch {
case strings.HasPrefix(name, "gpt-4o"):
if name == "gpt-4o-2024-05-13" { if name == "gpt-4o-2024-05-13" {
return 3 return 3
} }
return 4 return 4
} case strings.HasPrefix(name, "gpt-4-turbo") ||
if strings.HasPrefix(name, "gpt-4-turbo") || strings.HasSuffix(name, "preview"):
strings.HasSuffix(name, "preview") {
return 3 return 3
} default:
return 2 return 2
} }
}
// including o1/o1-preview/o1-mini // including o1/o1-preview/o1-mini
if strings.HasPrefix(name, "o1") || if strings.HasPrefix(name, "o1") ||
strings.HasPrefix(name, "o3") { strings.HasPrefix(name, "o3") {