@@ -8,27 +8,45 @@ import (
88
99var 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
89107func 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
112158func convertAmazonModelToAnthropicModel (model string ) string {
0 commit comments