1package models
2
3const (
4 ProviderOpenAI ModelProvider = "openai"
5
6 GPT41 ModelID = "gpt-4.1"
7 GPT41Mini ModelID = "gpt-4.1-mini"
8 GPT41Nano ModelID = "gpt-4.1-nano"
9 GPT45Preview ModelID = "gpt-4.5-preview"
10 GPT4o ModelID = "gpt-4o"
11 GPT4oMini ModelID = "gpt-4o-mini"
12 O1 ModelID = "o1"
13 O1Pro ModelID = "o1-pro"
14 O1Mini ModelID = "o1-mini"
15 O3 ModelID = "o3"
16 O3Mini ModelID = "o3-mini"
17 O4Mini ModelID = "o4-mini"
18)
19
20var OpenAIModels = map[ModelID]Model{
21 GPT41: {
22 ID: GPT41,
23 Name: "GPT 4.1",
24 Provider: ProviderOpenAI,
25 APIModel: "gpt-4.1",
26 CostPer1MIn: 2.00,
27 CostPer1MInCached: 0.50,
28 CostPer1MOutCached: 0.0,
29 CostPer1MOut: 8.00,
30 ContextWindow: 1_047_576,
31 DefaultMaxTokens: 20000,
32 SupportsAttachments: true,
33 },
34 GPT41Mini: {
35 ID: GPT41Mini,
36 Name: "GPT 4.1 mini",
37 Provider: ProviderOpenAI,
38 APIModel: "gpt-4.1",
39 CostPer1MIn: 0.40,
40 CostPer1MInCached: 0.10,
41 CostPer1MOutCached: 0.0,
42 CostPer1MOut: 1.60,
43 ContextWindow: 200_000,
44 DefaultMaxTokens: 20000,
45 SupportsAttachments: true,
46 },
47 GPT41Nano: {
48 ID: GPT41Nano,
49 Name: "GPT 4.1 nano",
50 Provider: ProviderOpenAI,
51 APIModel: "gpt-4.1-nano",
52 CostPer1MIn: 0.10,
53 CostPer1MInCached: 0.025,
54 CostPer1MOutCached: 0.0,
55 CostPer1MOut: 0.40,
56 ContextWindow: 1_047_576,
57 DefaultMaxTokens: 20000,
58 SupportsAttachments: true,
59 },
60 GPT45Preview: {
61 ID: GPT45Preview,
62 Name: "GPT 4.5 preview",
63 Provider: ProviderOpenAI,
64 APIModel: "gpt-4.5-preview",
65 CostPer1MIn: 75.00,
66 CostPer1MInCached: 37.50,
67 CostPer1MOutCached: 0.0,
68 CostPer1MOut: 150.00,
69 ContextWindow: 128_000,
70 DefaultMaxTokens: 15000,
71 SupportsAttachments: true,
72 },
73 GPT4o: {
74 ID: GPT4o,
75 Name: "GPT 4o",
76 Provider: ProviderOpenAI,
77 APIModel: "gpt-4o",
78 CostPer1MIn: 2.50,
79 CostPer1MInCached: 1.25,
80 CostPer1MOutCached: 0.0,
81 CostPer1MOut: 10.00,
82 ContextWindow: 128_000,
83 DefaultMaxTokens: 4096,
84 SupportsAttachments: true,
85 },
86 GPT4oMini: {
87 ID: GPT4oMini,
88 Name: "GPT 4o mini",
89 Provider: ProviderOpenAI,
90 APIModel: "gpt-4o-mini",
91 CostPer1MIn: 0.15,
92 CostPer1MInCached: 0.075,
93 CostPer1MOutCached: 0.0,
94 CostPer1MOut: 0.60,
95 ContextWindow: 128_000,
96 SupportsAttachments: true,
97 },
98 O1: {
99 ID: O1,
100 Name: "O1",
101 Provider: ProviderOpenAI,
102 APIModel: "o1",
103 CostPer1MIn: 15.00,
104 CostPer1MInCached: 7.50,
105 CostPer1MOutCached: 0.0,
106 CostPer1MOut: 60.00,
107 ContextWindow: 200_000,
108 DefaultMaxTokens: 50000,
109 CanReason: true,
110 SupportsAttachments: true,
111 },
112 O1Pro: {
113 ID: O1Pro,
114 Name: "o1 pro",
115 Provider: ProviderOpenAI,
116 APIModel: "o1-pro",
117 CostPer1MIn: 150.00,
118 CostPer1MInCached: 0.0,
119 CostPer1MOutCached: 0.0,
120 CostPer1MOut: 600.00,
121 ContextWindow: 200_000,
122 DefaultMaxTokens: 50000,
123 CanReason: true,
124 SupportsAttachments: true,
125 },
126 O1Mini: {
127 ID: O1Mini,
128 Name: "o1 mini",
129 Provider: ProviderOpenAI,
130 APIModel: "o1-mini",
131 CostPer1MIn: 1.10,
132 CostPer1MInCached: 0.55,
133 CostPer1MOutCached: 0.0,
134 CostPer1MOut: 4.40,
135 ContextWindow: 128_000,
136 DefaultMaxTokens: 50000,
137 CanReason: true,
138 SupportsAttachments: true,
139 },
140 O3: {
141 ID: O3,
142 Name: "o3",
143 Provider: ProviderOpenAI,
144 APIModel: "o3",
145 CostPer1MIn: 10.00,
146 CostPer1MInCached: 2.50,
147 CostPer1MOutCached: 0.0,
148 CostPer1MOut: 40.00,
149 ContextWindow: 200_000,
150 CanReason: true,
151 SupportsAttachments: true,
152 },
153 O3Mini: {
154 ID: O3Mini,
155 Name: "o3 mini",
156 Provider: ProviderOpenAI,
157 APIModel: "o3-mini",
158 CostPer1MIn: 1.10,
159 CostPer1MInCached: 0.55,
160 CostPer1MOutCached: 0.0,
161 CostPer1MOut: 4.40,
162 ContextWindow: 200_000,
163 DefaultMaxTokens: 50000,
164 CanReason: true,
165 SupportsAttachments: false,
166 },
167 O4Mini: {
168 ID: O4Mini,
169 Name: "o4 mini",
170 Provider: ProviderOpenAI,
171 APIModel: "o4-mini",
172 CostPer1MIn: 1.10,
173 CostPer1MInCached: 0.275,
174 CostPer1MOutCached: 0.0,
175 CostPer1MOut: 4.40,
176 ContextWindow: 128_000,
177 DefaultMaxTokens: 50000,
178 CanReason: true,
179 SupportsAttachments: true,
180 },
181}