Skip to content

Commit 0ddb013

Browse files
update models (#24)
1 parent c132801 commit 0ddb013

2 files changed

Lines changed: 97 additions & 31 deletions

File tree

internal/provider/anthropic/cost.go

Lines changed: 77 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,45 @@ import (
88

99
var AnthropicPerMillionTokenCost = map[string]map[string]float64{
1010
"prompt": {
11-
"claude-sonnet-4.5": 3.0,
11+
"claude-opus-4-8": 5.0,
12+
"claude-opus-4-7": 5.0,
13+
"claude-opus-4-6": 5.0,
14+
"claude-opus-4-5": 5.0,
15+
"claude-opus-4-1": 15.0,
16+
"claude-opus-4": 15.0,
17+
18+
"claude-sonnet-4-6": 3.0,
19+
"claude-sonnet-4-5": 3.0,
1220
"claude-sonnet-4": 3.0,
13-
"claude-3.7-sonnet": 3.0,
14-
"claude-opus-4.1": 15.0,
15-
"claude-opus-4": 15.0,
16-
"claude-3.5-haiku": 0.8,
17-
"claude-3-haiku": 0.25,
1821

19-
"claude-3.5-sonnet": 3.0,
22+
"claude-haiku-4-5": 1.0,
23+
24+
// old models
25+
"claude-3-7-sonnet": 3.0,
26+
"claude-3-5-haiku": 0.8,
27+
"claude-3-haiku": 0.25,
28+
"claude-3-5-sonnet": 3.0,
2029
"claude-3-opus": 15.0,
2130
},
2231
"completion": {
23-
"claude-sonnet-4.5": 15.0,
32+
"claude-opus-4-8": 25.0,
33+
"claude-opus-4-7": 25.0,
34+
"claude-opus-4-6": 25.0,
35+
"claude-opus-4-5": 25.0,
36+
"claude-opus-4-1": 75.0,
37+
"claude-opus-4": 75.0,
38+
39+
"claude-sonnet-4-6": 15.0,
40+
"claude-sonnet-4-5": 15.0,
2441
"claude-sonnet-4": 15.0,
25-
"claude-3.7-sonnet": 15.0,
26-
"claude-opus-4.1": 75.0,
27-
"claude-opus-4": 75.0,
28-
"claude-3.5-haiku": 4.0,
29-
"claude-3-haiku": 1.25,
3042

31-
"claude-3.5-sonnet": 15.0,
43+
"claude-haiku-4-5": 5.0,
44+
45+
// old models
46+
"claude-3-7-sonnet": 15.0,
47+
"claude-3-5-haiku": 4.0,
48+
"claude-3-haiku": 1.25,
49+
"claude-3-5-sonnet": 15.0,
3250
"claude-3-opus": 75.0,
3351
},
3452
}
@@ -87,26 +105,54 @@ func (ce *CostEstimator) EstimatePromptCost(model string, tks int) (float64, err
87105
}
88106

89107
func SelectModel(model string) string {
90-
if strings.HasPrefix(model, "claude-sonnet-4.5") || strings.HasPrefix(model, "claude-sonnet-4-5") {
91-
return "claude-sonnet-4.5"
92-
} else if strings.HasPrefix(model, "claude-sonnet-4") {
93-
return "claude-sonnet-4"
94-
} else if strings.HasPrefix(model, "claude-3.7-sonnet") || strings.HasPrefix(model, "claude-3-7-sonnet") {
95-
return "claude-3.7-sonnet"
96-
} else if strings.HasPrefix(model, "claude-opus-4.1") || strings.HasPrefix(model, "claude-opus-4-1") {
97-
return "claude-opus-4.1"
98-
} else if strings.HasPrefix(model, "claude-opus-4") {
108+
if strings.HasPrefix(model, "claude-opus-4-8") {
109+
return "claude-opus-4-8"
110+
}
111+
if strings.HasPrefix(model, "claude-opus-4-7") {
112+
return "claude-opus-4-7"
113+
}
114+
if strings.HasPrefix(model, "claude-opus-4-6") {
115+
return "claude-opus-4-6"
116+
}
117+
if strings.HasPrefix(model, "claude-opus-4-5") {
118+
return "claude-opus-4-5"
119+
}
120+
if strings.HasPrefix(model, "claude-opus-4-1") {
121+
return "claude-opus-4-1"
122+
}
123+
if strings.HasPrefix(model, "claude-opus-4") {
99124
return "claude-opus-4"
100-
} else if strings.HasPrefix(model, "claude-3.5-haiku") || strings.HasPrefix(model, "claude-3-5-haiku") {
101-
return "claude-3.5-haiku"
102-
} else if strings.HasPrefix(model, "claude-3-haiku") {
103-
return "claude-3-haiku"
104-
} else if strings.HasPrefix(model, "claude-3.5-sonnet") || strings.HasPrefix(model, "claude-3-5-sonnet") {
105-
return "claude-3.5-sonnet"
106-
} else if strings.HasPrefix(model, "claude-3-opus") {
125+
}
126+
if strings.HasPrefix(model, "claude-sonnet-4-6") {
127+
return "claude-sonnet-4-6"
128+
}
129+
if strings.HasPrefix(model, "claude-sonnet-4-5") {
130+
return "claude-sonnet-4-5"
131+
}
132+
if strings.HasPrefix(model, "claude-sonnet-4") {
133+
return "claude-sonnet-4"
134+
}
135+
if strings.HasPrefix(model, "claude-haiku-4-5") {
136+
return "claude-haiku-4-5"
137+
}
138+
139+
// old
140+
if strings.HasPrefix(model, "claude-3-7-sonnet") {
141+
return "claude-3-7-sonnet"
142+
}
143+
if strings.HasPrefix(model, "claude-3-5-haiku") {
144+
return "claude-3-5-haiku"
145+
}
146+
if strings.HasPrefix(model, "claude-3-5-sonnet") {
147+
return "claude-3-5-sonnet"
148+
}
149+
if strings.HasPrefix(model, "claude-3-opus") {
107150
return "claude-3-opus"
108151
}
109-
return ""
152+
if strings.HasPrefix(model, "claude-3-haiku") {
153+
return "claude-3-haiku"
154+
}
155+
return model
110156
}
111157

112158
func convertAmazonModelToAnthropicModel(model string) string {

internal/provider/openai/cost.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,13 @@ var OpenAiPerThousandTokenCost = map[string]map[string]float64{
4141
"chatgpt-image-latest": 0.005,
4242
"gpt-image-1-mini": 0.002,
4343

44+
"gpt-5.5": 0.01,
45+
"gpt-5.5~long": 0.01,
46+
"gpt-5.5~short": 0.005,
47+
"gpt-5.5-pro": 0.06,
48+
"gpt-5.5-pro~long": 0.06,
49+
"gpt-5.5-pro~short": 0.03,
50+
4451
"gpt-5.4": 0.005,
4552
"gpt-5.4~long": 0.005,
4653
"gpt-5.4~short": 0.0025,
@@ -115,6 +122,10 @@ var OpenAiPerThousandTokenCost = map[string]map[string]float64{
115122
"babbage-002": 0.000400,
116123
},
117124
"cached-prompt": {
125+
"gpt-5.5": 0.001,
126+
"gpt-5.5~long": 0.001,
127+
"gpt-5.5~short": 0.0005,
128+
118129
"gpt-5.4": 0.0005,
119130
"gpt-5.4~long": 0.0005,
120131
"gpt-5.4~short": 0.00025,
@@ -202,6 +213,13 @@ var OpenAiPerThousandTokenCost = map[string]map[string]float64{
202213
"gpt-image-1.5": 0.010,
203214
"chatgpt-image-latest": 0.010,
204215

216+
"gpt-5.5": 0.045,
217+
"gpt-5.5~long": 0.045,
218+
"gpt-5.5~short": 0.03,
219+
"gpt-5.5-pro": 0.27,
220+
"gpt-5.5-pro~long": 0.27,
221+
"gpt-5.5-pro~short": 0.18,
222+
205223
"gpt-5.4": 0.0225,
206224
"gpt-5.4~long": 0.0225,
207225
"gpt-5.4~short": 0.015,
@@ -1088,6 +1106,8 @@ func countTotalTokens(model string, r *goopenai.ChatCompletionRequest, tc tokenC
10881106
}
10891107

10901108
var modelWithLengthCtx = []string{
1109+
"gpt-5.5",
1110+
"gpt-5.5-pro",
10911111
"gpt-5.4",
10921112
"gpt-5.4-pro",
10931113
}

0 commit comments

Comments
 (0)