PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 3.6.0
AI Engine – The Chatbot, AI Framework & MCP for WordPress v3.6.0
3.6.0 3.5.9 3.5.8 3.5.7 3.5.6 3.5.5 3.5.4 3.5.3 3.5.2 3.5.1 3.5.0 3.4.9 3.4.8 3.4.7 0.2.1 1.6.91 0.2.2 1.6.92 0.2.3 1.6.93 0.2.4 1.6.94 0.2.5 1.6.95 0.2.6 1.6.96 0.2.7 1.6.97 0.2.8 1.6.98 0.2.9 1.6.99 0.3.0 1.7.0 0.3.1 1.7.1 0.3.2 1.7.2 0.3.3 1.7.3 0.3.4 1.7.4 0.3.5 1.7.5 0.3.6 1.7.6 0.4.0 1.7.7 0.4.1 1.7.8 0.4.2 1.7.9 0.4.3 1.8.0 0.4.4 1.8.1 0.4.5 1.8.2 0.4.6 1.8.3 0.4.7 1.8.4 0.4.8 1.8.5 0.4.9 1.8.6 0.5.0 1.8.7 0.5.1 1.8.8 0.5.2 1.8.9 0.5.3 1.9.0 0.5.4 1.9.1 0.5.5 1.9.2 0.5.6 1.9.3 0.5.7 1.9.4 0.5.8 1.9.5 0.5.9 1.9.6 0.6.0 1.9.7 0.6.1 1.9.8 0.6.2 1.9.81 0.6.3 1.9.82 0.6.4 1.9.83 0.6.5 1.9.84 0.6.6 1.9.85 0.6.7 1.9.86 0.6.8 1.9.87 0.6.9 1.9.88 0.7.0 1.9.89 0.7.1 1.9.90 0.7.2 1.9.91 0.7.3 1.9.92 0.7.4 1.9.93 0.7.5 1.9.94 0.7.6 1.9.95 0.7.7 1.9.96 0.7.8 1.9.97 0.7.9 1.9.98 0.8.0 1.9.99 0.8.1 2.0.0 0.8.2 2.0.1 0.8.3 2.0.2 0.8.4 2.0.3 0.8.5 2.0.4 0.8.6 2.0.5 0.8.7 2.0.6 0.8.8 2.0.7 0.8.9 2.0.8 0.9.0 2.0.9 0.9.2 2.1.0 0.9.3 2.1.1 0.9.4 2.1.2 0.9.5 2.1.3 0.9.6 2.1.4 0.9.7 2.1.5 0.9.8 2.1.6 0.9.81 2.1.7 0.9.82 2.1.8 0.9.83 2.1.9 0.9.84 2.2.0 0.9.85 2.2.1 0.9.86 2.2.2 0.9.87 2.2.3 0.9.88 2.2.4 0.9.89 2.2.5 0.9.9 2.2.51 0.9.91 2.2.52 0.9.92 2.2.53 0.9.93 2.2.54 0.9.94 2.2.56 0.9.95 2.2.57 0.9.96 2.2.6 0.9.97 2.2.60 0.9.98 2.2.61 0.9.99 2.2.62 1.0.0 2.2.63 1.0.01 2.2.70 1.0.1 2.2.80 1.0.2 2.2.81 1.0.3 2.2.90 1.0.4 2.2.91 1.0.5 2.2.92 1.0.6 2.2.93 1.0.7 2.2.94 1.0.8 2.2.95 1.0.9 2.3.0 1.1.0 2.3.1 1.1.1 2.3.2 1.1.2 2.3.3 1.1.3 2.3.4 1.1.4 2.3.5 1.1.5 2.3.6 1.1.6 2.3.7 1.1.7 2.3.8 1.1.8 2.3.9 1.1.9 2.4.0 1.2.0 2.4.1 1.2.1 2.4.2 1.2.2 2.4.3 1.2.21 2.4.4 1.2.3 2.4.5 1.2.30 2.4.6 1.3.0 2.4.7 1.3.1 2.4.8 1.3.2 2.4.9 1.3.3 2.5.0 1.3.31 2.5.1 1.3.32 2.5.2 1.3.33 2.5.3 1.3.34 2.5.4 1.3.35 2.5.5 1.3.36 2.5.6 1.3.37 2.5.7 1.3.38 2.5.8 1.3.39 2.5.9 1.3.40 2.6.0 1.3.41 2.6.1 1.3.42 2.6.2 1.3.43 2.6.3 1.3.44 2.6.5 1.3.45 2.6.6 1.3.46 2.6.7 1.3.47 2.6.8 1.3.48 2.6.9 1.3.49 2.7.0 1.3.50 2.7.1 1.3.51 2.7.2 1.3.52 2.7.3 1.3.53 2.7.4 1.3.54 2.7.5 1.3.56 2.7.6 1.3.57 2.7.7 1.3.58 2.7.8 1.3.59 2.7.9 1.3.60 2.8.0 1.3.61 2.8.1 1.3.62 2.8.2 1.3.63 2.8.3 1.3.64 2.8.4 1.3.65 2.8.5 1.3.66 2.8.6 1.3.67 2.8.7 1.3.68 2.8.8 1.3.69 2.8.9 1.3.70 2.9.0 1.3.71 2.9.1 1.3.72 2.9.2 1.3.73 2.9.3 1.3.74 2.9.4 1.3.75 2.9.5 1.3.76 2.9.6 1.3.77 2.9.7 1.3.78 2.9.8 1.3.79 2.9.9 1.3.80 3.0.0 1.3.81 3.0.1 1.3.82 3.0.2 1.3.83 3.0.3 1.3.84 3.0.4 1.3.85 3.0.5 1.3.86 3.0.6 1.3.87 3.0.7 1.3.88 3.0.8 1.3.89 3.0.9 1.3.90 3.1.0 1.3.91 3.1.1 1.3.92 3.1.2 1.3.93 3.1.3 1.3.94 3.1.4 1.3.95 3.1.5 1.3.96 3.1.6 1.3.97 3.1.7 1.3.98 3.1.8 1.3.99 3.1.9 1.4.0 3.2.0 1.4.1 3.2.1 1.4.2 3.2.2 1.4.3 3.2.3 1.4.4 3.2.4 1.4.5 3.2.5 1.4.6 3.2.6 1.4.7 3.2.7 1.4.8 3.2.8 1.4.9 3.2.9 1.5.0 3.3.0 1.5.1 3.3.1 1.5.2 3.3.2 1.5.3 3.3.3 1.5.4 3.3.4 1.5.5 3.3.5 1.5.6 3.3.6 1.5.7 3.3.7 1.5.8 3.3.8 1.5.9 3.3.9 1.6.0 3.4.0 1.6.1 3.4.1 1.6.2 3.4.2 1.6.3 3.4.3 1.6.5 3.4.4 1.6.51 3.4.5 1.6.52 3.4.6 1.6.53 1.6.54 1.6.55 1.6.56 1.6.57 1.6.58 1.6.59 1.6.60 1.6.61 1.6.62 1.6.63 1.6.64 1.6.65 1.6.66 1.6.67 1.6.68 trunk 1.6.69 0.0.1 1.6.70 0.0.2 1.6.71 0.0.3 1.6.72 0.0.4 1.6.73 0.0.5 1.6.74 0.0.6 1.6.75 0.0.7 1.6.76 0.0.8 1.6.77 0.0.9 1.6.78 0.1.0 1.6.79 0.1.1 1.6.81 0.1.2 1.6.82 0.1.3 1.6.83 0.1.4 1.6.84 0.1.5 1.6.85 0.1.6 1.6.86 0.1.7 1.6.87 0.1.8 1.6.88 0.1.9 1.6.89 0.2.0 1.6.90
ai-engine / constants / models.php
ai-engine / constants Last commit date
engines.php 2 months ago init.php 5 days ago models.php 18 hours ago types.php 1 year ago
models.php
1593 lines
1 <?php
2
3 // Price as of June 2024: https://openai.com/api/pricing/
4
5 // TODO: After 2027-02 (OpenAI ends fine-tune job creation on 2027-01-06), drop the `finetune` key from every model entry below and remove 'finetune' from every model's `tags` array.
6
7 define( 'MWAI_OPENAI_MODELS', [
8 /*
9 GPT-5.6 Sol
10 Frontier tier of the GPT-5.6 family; the bare gpt-5.6 alias points here.
11 https://developers.openai.com/api/docs/models/gpt-5.6-sol
12 */
13 [
14 'model' => 'gpt-5.6-sol',
15 'name' => 'GPT-5.6 Sol',
16 'family' => 'gpt-5',
17 'features' => ['completion'],
18 'price' => [
19 'in' => 5.00,
20 'out' => 30.00,
21 'cached' => 0.50,
22 ],
23 'type' => 'token',
24 'unit' => 1 / 1000000,
25 'maxCompletionTokens' => 128000,
26 'maxContextualTokens' => 1050000,
27 'finetune' => false,
28 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity', 'latest'],
29 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
30 'params' => [
31 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
32 'verbosity' => ['low', 'medium', 'high']
33 ]
34 ],
35 /*
36 GPT-5.6 Terra
37 Balanced tier: strong intelligence at mid pricing.
38 https://developers.openai.com/api/docs/models/gpt-5.6-terra
39 */
40 [
41 'model' => 'gpt-5.6-terra',
42 'name' => 'GPT-5.6 Terra',
43 'family' => 'gpt-5',
44 'features' => ['completion'],
45 'price' => [
46 'in' => 2.50,
47 'out' => 15.00,
48 'cached' => 0.25,
49 ],
50 'type' => 'token',
51 'unit' => 1 / 1000000,
52 'maxCompletionTokens' => 128000,
53 'maxContextualTokens' => 1050000,
54 'finetune' => false,
55 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
56 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
57 'params' => [
58 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
59 'verbosity' => ['low', 'medium', 'high']
60 ]
61 ],
62 /*
63 GPT-5.6 Luna
64 Efficient, high-volume tier of the GPT-5.6 family.
65 https://developers.openai.com/api/docs/models/gpt-5.6-luna
66 */
67 [
68 'model' => 'gpt-5.6-luna',
69 'name' => 'GPT-5.6 Luna',
70 'family' => 'gpt-5',
71 'features' => ['completion'],
72 'price' => [
73 'in' => 1.00,
74 'out' => 6.00,
75 'cached' => 0.10,
76 ],
77 'type' => 'token',
78 'unit' => 1 / 1000000,
79 'maxCompletionTokens' => 128000,
80 'maxContextualTokens' => 1050000,
81 'finetune' => false,
82 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
83 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
84 'params' => [
85 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
86 'verbosity' => ['low', 'medium', 'high']
87 ]
88 ],
89 /*
90 GPT-5.5
91 Previous flagship: tool-heavy agents, grounded assistants, long-context retrieval
92 https://developers.openai.com/api/docs/models/gpt-5.5
93 */
94 [
95 'model' => 'gpt-5.5',
96 'name' => 'GPT-5.5',
97 'family' => 'gpt-5',
98 'features' => ['completion'],
99 'price' => [
100 'in' => 5.00,
101 'out' => 30.00,
102 'cached' => 0.50,
103 ],
104 'type' => 'token',
105 'unit' => 1 / 1000000,
106 'maxCompletionTokens' => 128000,
107 'maxContextualTokens' => 1050000,
108 'finetune' => false,
109 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
110 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
111 'params' => [
112 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
113 'verbosity' => ['low', 'medium', 'high']
114 ]
115 ],
116 /*
117 GPT-5.4
118 Our most capable model for professional work
119 https://platform.openai.com/docs/models/gpt-5.4
120 */
121 [
122 'model' => 'gpt-5.4',
123 'name' => 'GPT-5.4',
124 'family' => 'gpt-5',
125 'features' => ['completion'],
126 'price' => [
127 'in' => 2.50,
128 'out' => 15.00,
129 ],
130 'type' => 'token',
131 'unit' => 1 / 1000000,
132 'maxCompletionTokens' => 128000,
133 'maxContextualTokens' => 1050000,
134 'finetune' => false,
135 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
136 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
137 'params' => [
138 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
139 'verbosity' => ['low', 'medium', 'high']
140 ]
141 ],
142 /*
143 GPT-5.4 Pro
144 Most advanced model with enhanced reasoning for complex tasks
145 https://developers.openai.com/api/docs/models/gpt-5.4-pro
146 */
147 [
148 'model' => 'gpt-5.4-pro',
149 'name' => 'GPT-5.4 Pro',
150 'family' => 'gpt-5',
151 'features' => ['completion'],
152 'price' => [
153 'in' => 30.00,
154 'out' => 180.00,
155 ],
156 'type' => 'token',
157 'unit' => 1 / 1000000,
158 'maxCompletionTokens' => 128000,
159 'maxContextualTokens' => 1050000,
160 'finetune' => false,
161 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'responses', 'mcp', 'reasoning'],
162 'tools' => ['web_search', 'image_generation', 'file_search'],
163 'params' => [
164 'reasoning' => ['medium', 'high', 'xhigh'],
165 ]
166 ],
167 /*
168 GPT-5.4 Mini
169 Fast and cost-effective GPT-5.4 variant
170 https://developers.openai.com/api/docs/models/gpt-5.4-mini
171 */
172 [
173 'model' => 'gpt-5.4-mini',
174 'name' => 'GPT-5.4 Mini',
175 'family' => 'gpt-5',
176 'features' => ['completion'],
177 'price' => [
178 'in' => 0.75,
179 'out' => 4.50,
180 ],
181 'type' => 'token',
182 'unit' => 1 / 1000000,
183 'maxCompletionTokens' => 128000,
184 'maxContextualTokens' => 400000,
185 'finetune' => false,
186 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
187 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
188 'params' => [
189 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
190 'verbosity' => ['low', 'medium', 'high']
191 ]
192 ],
193 /*
194 GPT-5.4 Nano
195 Ultra-fast and lightweight GPT-5.4 model
196 https://developers.openai.com/api/docs/models/gpt-5.4-nano
197 */
198 [
199 'model' => 'gpt-5.4-nano',
200 'name' => 'GPT-5.4 Nano',
201 'family' => 'gpt-5',
202 'features' => ['completion'],
203 'price' => [
204 'in' => 0.20,
205 'out' => 1.25,
206 ],
207 'type' => 'token',
208 'unit' => 1 / 1000000,
209 'maxCompletionTokens' => 128000,
210 'maxContextualTokens' => 400000,
211 'finetune' => false,
212 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
213 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
214 'params' => [
215 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
216 'verbosity' => ['low', 'medium', 'high']
217 ]
218 ],
219 /*
220 GPT-5.3 Chat
221 GPT-5.3 model used in ChatGPT
222 https://developers.openai.com/api/docs/models/gpt-5.3-chat-latest
223 Shutdown: August 10, 2026.
224 */
225 [
226 'model' => 'gpt-5.3-chat-latest',
227 'name' => 'GPT-5.3 Chat',
228 'family' => 'gpt-5',
229 'features' => ['completion'],
230 'price' => [
231 'in' => 1.75,
232 'out' => 14.00,
233 ],
234 'type' => 'token',
235 'unit' => 1 / 1000000,
236 'maxCompletionTokens' => 16384,
237 'maxContextualTokens' => 128000,
238 'finetune' => false,
239 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'deprecated'],
240 'tools' => ['image_generation', 'code_interpreter']
241 ],
242 /*
243 GPT-5.2
244 The best model for coding and agentic tasks across industries
245 https://platform.openai.com/docs/models/gpt-5.2
246 */
247 [
248 'model' => 'gpt-5.2',
249 'name' => 'GPT-5.2',
250 'family' => 'gpt-5',
251 'features' => ['completion'],
252 'price' => [
253 'in' => 1.75,
254 'out' => 14.00,
255 ],
256 'type' => 'token',
257 'unit' => 1 / 1000000,
258 'maxCompletionTokens' => 128000,
259 'maxContextualTokens' => 400000,
260 'finetune' => false,
261 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
262 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
263 'params' => [
264 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
265 'verbosity' => ['low', 'medium', 'high']
266 ]
267 ],
268 /*
269 GPT-5.2 Chat
270 GPT-5.2 model used in ChatGPT
271 https://platform.openai.com/docs/models/gpt-5.2
272 Shutdown: August 10, 2026.
273 */
274 [
275 'model' => 'gpt-5.2-chat-latest',
276 'name' => 'GPT-5.2 Chat',
277 'family' => 'gpt-5',
278 'features' => ['completion'],
279 'price' => [
280 'in' => 1.75,
281 'out' => 14.00,
282 ],
283 'type' => 'token',
284 'unit' => 1 / 1000000,
285 'maxCompletionTokens' => 128000,
286 'maxContextualTokens' => 400000,
287 'finetune' => false,
288 'tags' => ['core', 'chat', 'vision', 'files', 'responses', 'mcp', 'deprecated'],
289 'tools' => ['web_search', 'file_search', 'code_interpreter']
290 ],
291 /*
292 GPT-5.2 Pro
293 Version of GPT-5.2 that produces smarter and more precise responses
294 https://platform.openai.com/docs/models/gpt-5.2-pro
295 */
296 [
297 'model' => 'gpt-5.2-pro',
298 'name' => 'GPT-5.2 Pro',
299 'family' => 'gpt-5',
300 'features' => ['completion'],
301 'price' => [
302 'in' => 21.00,
303 'out' => 168.00,
304 ],
305 'type' => 'token',
306 'unit' => 1 / 1000000,
307 'maxCompletionTokens' => 128000,
308 'maxContextualTokens' => 400000,
309 'finetune' => false,
310 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
311 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
312 'params' => [
313 'reasoning' => ['medium', 'high', 'xhigh'],
314 'verbosity' => ['low', 'medium', 'high']
315 ]
316 ],
317 /*
318 GPT-5.1
319 Demo model with enhanced capabilities
320 https://platform.openai.com/docs/models/gpt-5.1
321 */
322 [
323 'model' => 'gpt-5.1',
324 'name' => 'GPT-5.1',
325 'family' => 'gpt-5',
326 'features' => ['completion'],
327 'price' => [
328 'in' => 1.25,
329 'out' => 10.00,
330 ],
331 'type' => 'token',
332 'unit' => 1 / 1000000,
333 'maxCompletionTokens' => 128000,
334 'maxContextualTokens' => 400000,
335 'finetune' => false,
336 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
337 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
338 'params' => [
339 'reasoning' => ['none', 'minimal', 'low', 'medium', 'high'],
340 'verbosity' => ['low', 'medium', 'high']
341 ]
342 ],
343 /*
344 GPT-5
345 The best model for coding and agentic tasks across domains
346 https://platform.openai.com/docs/models/gpt-5
347 */
348 [
349 'model' => 'gpt-5',
350 'name' => 'GPT-5',
351 'family' => 'gpt-5',
352 'features' => ['completion'],
353 'price' => [
354 'in' => 1.25,
355 'out' => 10.00,
356 ],
357 'type' => 'token',
358 'unit' => 1 / 1000000,
359 'maxCompletionTokens' => 128000,
360 'maxContextualTokens' => 400000,
361 'finetune' => false,
362 // Shutdown: December 10, 2026.
363 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity', 'deprecated'],
364 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
365 'params' => [
366 'reasoning' => ['none', 'minimal', 'low', 'medium', 'high'],
367 'verbosity' => ['low', 'medium', 'high']
368 ]
369 ],
370 /*
371 GPT-5 Mini
372 Efficient and cost-effective GPT-5 variant
373 https://platform.openai.com/docs/models/gpt-5-mini
374 */
375 [
376 'model' => 'gpt-5-mini',
377 'name' => 'GPT-5 Mini',
378 'family' => 'gpt-5',
379 'features' => ['completion'],
380 'price' => [
381 'in' => 0.25,
382 'out' => 2.00,
383 ],
384 'type' => 'token',
385 'unit' => 1 / 1000000,
386 'maxCompletionTokens' => 128000,
387 'maxContextualTokens' => 400000,
388 'finetune' => false,
389 // Shutdown: December 10, 2026.
390 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity', 'deprecated'],
391 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
392 'params' => [
393 'reasoning' => ['none', 'minimal', 'low', 'medium', 'high'],
394 'verbosity' => ['low', 'medium', 'high']
395 ]
396 ],
397 /*
398 GPT-5 Nano
399 Ultra-fast and lightweight GPT-5 model
400 https://platform.openai.com/docs/models/gpt-5-nano
401 */
402 [
403 'model' => 'gpt-5-nano',
404 'name' => 'GPT-5 Nano',
405 'family' => 'gpt-5',
406 'features' => ['completion'],
407 'price' => [
408 'in' => 0.05,
409 'out' => 0.40,
410 ],
411 'type' => 'token',
412 'unit' => 1 / 1000000,
413 'maxCompletionTokens' => 128000,
414 'maxContextualTokens' => 400000,
415 'finetune' => false,
416 // Shutdown: December 10, 2026.
417 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity', 'deprecated'],
418 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
419 'params' => [
420 'reasoning' => ['none', 'minimal', 'low', 'medium', 'high'],
421 'verbosity' => ['low', 'medium', 'high']
422 ]
423 ],
424 /*
425 GPT-5 Chat
426 GPT-5 model used in ChatGPT
427 https://platform.openai.com/docs/models/gpt-5
428 */
429 [
430 'model' => 'gpt-5-chat-latest',
431 'name' => 'GPT-5 Chat',
432 'family' => 'gpt-5',
433 'features' => ['completion'],
434 'price' => [
435 'in' => 1.25,
436 'out' => 10.00,
437 ],
438 'type' => 'token',
439 'unit' => 1 / 1000000,
440 'maxCompletionTokens' => 16384,
441 'maxContextualTokens' => 128000,
442 'finetune' => false,
443 // Shutdown: July 23, 2026.
444 'tags' => ['core', 'chat', 'vision', 'files', 'responses', 'mcp', 'deprecated'],
445 'tools' => ['web_search', 'file_search', 'code_interpreter'],
446 'params' => [
447 'verbosity' => ['low', 'medium', 'high']
448 ]
449 ],
450 /*
451 GPT-5 Pro
452 Version of GPT-5 that produces smarter and more precise responses
453 https://platform.openai.com/docs/models/gpt-5
454 */
455 [
456 'model' => 'gpt-5-pro',
457 'name' => 'GPT-5 Pro',
458 'family' => 'gpt-5',
459 'features' => ['completion'],
460 'price' => [
461 'in' => 15.00,
462 'out' => 120.00,
463 ],
464 'type' => 'token',
465 'unit' => 1 / 1000000,
466 'maxCompletionTokens' => 272000,
467 'maxContextualTokens' => 400000,
468 'finetune' => false,
469 // Shutdown: December 10, 2026.
470 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity', 'deprecated'],
471 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
472 'params' => [
473 'reasoning' => ['none', 'minimal', 'low', 'medium', 'high'],
474 'verbosity' => ['low', 'medium', 'high']
475 ]
476 ],
477 /*
478 GPT 4.1
479 Flagship GPT model for complex tasks
480 https://platform.openai.com/docs/models/gpt-4.1
481 */
482 [
483 'model' => 'gpt-4.1',
484 'name' => 'GPT-4.1',
485 'family' => 'gpt-4',
486 'features' => ['completion'],
487 'price' => [
488 'in' => 2.00,
489 'out' => 8.00,
490 ],
491 'type' => 'token',
492 'unit' => 1 / 1000000,
493 'maxCompletionTokens' => 32768,
494 'maxContextualTokens' => 1047576,
495 'finetune' => false,
496 'tags' => ['core', 'chat', 'vision', 'functions', 'json', 'finetune', 'responses', 'mcp', 'deprecated'],
497 'tools' => ['web_search', 'image_generation', 'code_interpreter']
498 ],
499 /*
500 GPT-4.1 mini
501 Balanced for intelligence, speed, and cost
502 https://platform.openai.com/docs/models/gpt-4.1-mini
503 */
504 [
505 'model' => 'gpt-4.1-mini',
506 'name' => 'GPT-4.1 Mini',
507 'family' => 'gpt-4',
508 'features' => ['completion'],
509 'price' => [
510 'in' => 0.40,
511 'out' => 1.60,
512 ],
513 'type' => 'token',
514 'unit' => 1 / 1000000,
515 'maxCompletionTokens' => 32768,
516 'maxContextualTokens' => 1047576,
517 'finetune' => false,
518 'tags' => ['core', 'chat', 'vision', 'functions', 'json', 'finetune', 'responses', 'mcp', 'deprecated'],
519 'tools' => ['web_search', 'image_generation', 'code_interpreter']
520 ],
521 /*
522 GPT-4.1 nano
523 Fastest, most cost-effective GPT-4.1 model
524 https://platform.openai.com/docs/models/gpt-4.1-nano
525 */
526 [
527 'model' => 'gpt-4.1-nano',
528 'name' => 'GPT-4.1 Nano',
529 'family' => 'gpt-4',
530 'features' => ['completion'],
531 'price' => [
532 'in' => 0.10,
533 'out' => 0.40,
534 ],
535 'type' => 'token',
536 'unit' => 1 / 1000000,
537 'maxCompletionTokens' => 32768,
538 'maxContextualTokens' => 1047576,
539 'finetune' => false,
540 // Shutdown: October 23, 2026.
541 'tags' => ['core', 'chat', 'vision', 'functions', 'json', 'finetune', 'responses', 'mcp', 'deprecated'],
542 'tools' => ['image_generation']
543 ],
544 /*
545 GPT-4o
546 Fast, intelligent, flexible GPT model
547 https://platform.openai.com/docs/models/gpt-4o
548 */
549 [
550 'model' => 'gpt-4o',
551 'name' => 'GPT-4o',
552 'family' => 'gpt-4',
553 'features' => ['completion'],
554 'price' => [
555 'in' => 2.50,
556 'out' => 10.00,
557 ],
558 'type' => 'token',
559 'unit' => 1 / 1000000,
560 'maxCompletionTokens' => 16384,
561 'maxContextualTokens' => 128000,
562 'finetune' => false,
563 'tags' => ['core', 'chat', 'vision', 'functions', 'json', 'finetune', 'mcp', 'responses', 'deprecated'],
564 'tools' => ['web_search', 'image_generation', 'code_interpreter']
565 ],
566 /*
567 GPT-4o mini
568 Fast, affordable small model for focused tasks
569 https://platform.openai.com/docs/models/gpt-4o-mini
570 */
571 [
572 'model' => 'gpt-4o-mini',
573 'name' => 'GPT-4o Mini',
574 'family' => 'gpt-4',
575 'features' => ['completion'],
576 'price' => [
577 'in' => 0.15,
578 'out' => 0.60,
579 ],
580 'type' => 'token',
581 'unit' => 1 / 1000000,
582 'maxCompletionTokens' => 16384,
583 'maxContextualTokens' => 128000,
584 'finetune' => [
585 'in' => 0.15,
586 'out' => 0.60,
587 'train' => 3.00
588 ],
589 'tags' => ['core', 'chat', 'vision', 'functions', 'json', 'finetune', 'mcp', 'responses', 'deprecated'],
590 'tools' => ['web_search', 'image_generation', 'code_interpreter']
591 ],
592 /*
593 o3
594 Advanced reasoning model
595 https://platform.openai.com/docs/models/o3
596 */
597 [
598 'model' => 'o3',
599 'name' => 'o3',
600 'family' => 'o3',
601 'features' => ['completion'],
602 'price' => [
603 'in' => 15.00,
604 'out' => 60.00,
605 ],
606 'type' => 'token',
607 'unit' => 1 / 1000000,
608 'maxCompletionTokens' => 100000,
609 'maxContextualTokens' => 200000,
610 'tags' => ['core', 'chat', 'o1-model', 'reasoning', 'responses', 'mcp'],
611 'tools' => ['web_search', 'image_generation', 'code_interpreter']
612 ],
613 /*
614 o3-mini
615 Fast, flexible, intelligent reasoning model
616 https://platform.openai.com/docs/models/o3-mini
617 */
618 [
619 'model' => 'o3-mini',
620 'name' => 'o3 Mini',
621 'family' => 'o3',
622 'features' => ['completion'],
623 'price' => [
624 'in' => 1.10,
625 'out' => 4.40,
626 ],
627 'type' => 'token',
628 'unit' => 1 / 1000000,
629 'maxCompletionTokens' => 100000,
630 'maxContextualTokens' => 200000,
631 // Shutdown: October 23, 2026.
632 'tags' => ['core', 'chat', 'o1-model', 'reasoning', 'responses', 'mcp', 'deprecated'],
633 'tools' => ['web_search', 'image_generation', 'code_interpreter']
634 ],
635 /*
636 GPT Realtime 2
637 Voice model with GPT-5-class reasoning, stronger instruction following, and multilingual support.
638 https://platform.openai.com/docs/models/gpt-realtime-2
639 */
640 [
641 'model' => 'gpt-realtime-2',
642 'name' => 'GPT Realtime 2',
643 'family' => 'realtime',
644 'features' => ['core', 'realtime', 'functions'],
645 'price' => [
646 'text' => [
647 'in' => 4.00,
648 'cache' => 0.40,
649 'out' => 16.00,
650 ],
651 'audio' => [
652 'in' => 32.00,
653 'cache' => 0.40,
654 'out' => 64.00,
655 ],
656 'image' => [
657 'in' => 5.00,
658 'cache' => 0.50,
659 ]
660 ],
661 'type' => 'token',
662 'unit' => 1 / 1000000,
663 'maxCompletionTokens' => 4096,
664 'maxContextualTokens' => 128000,
665 'finetune' => false,
666 'tags' => ['core', 'realtime', 'functions', 'vision', 'mcp']
667 ],
668 /*
669 GPT Realtime
670 Production-ready speech-to-speech model with MCP, image input, and SIP support
671 https://platform.openai.com/docs/models/gpt-realtime
672 */
673 [
674 'model' => 'gpt-realtime',
675 'name' => 'GPT Realtime',
676 'family' => 'realtime',
677 'features' => ['core', 'realtime', 'functions'],
678 'price' => [
679 'text' => [
680 'in' => 4.00,
681 'cache' => 0.40,
682 'out' => 16.00,
683 ],
684 'audio' => [
685 'in' => 32.00,
686 'cache' => 0.40,
687 'out' => 64.00,
688 ],
689 'image' => [
690 'in' => 5.00,
691 'cache' => 0.50,
692 ]
693 ],
694 'type' => 'token',
695 'unit' => 1 / 1000000,
696 'maxCompletionTokens' => 4096,
697 'maxContextualTokens' => 128000,
698 'finetune' => false,
699 'tags' => ['core', 'realtime', 'functions', 'vision', 'mcp']
700 ],
701 /*
702 GPT Realtime Mini
703 Cost-efficient version of GPT Realtime
704 https://platform.openai.com/docs/models/gpt-realtime-mini
705 */
706 [
707 'model' => 'gpt-realtime-mini',
708 'name' => 'GPT Realtime Mini',
709 'family' => 'realtime',
710 'features' => ['core', 'realtime', 'functions'],
711 'price' => [
712 'text' => [
713 'in' => 0.60,
714 'cache' => 0.06,
715 'out' => 2.40,
716 ],
717 'audio' => [
718 'in' => 10.00,
719 'cache' => 0.06,
720 'out' => 20.00,
721 ]
722 ],
723 'type' => 'token',
724 'unit' => 1 / 1000000,
725 'maxCompletionTokens' => 4096,
726 'maxContextualTokens' => 32000,
727 'finetune' => false,
728 'tags' => ['core', 'realtime', 'functions', 'vision', 'deprecated']
729 ],
730 // TODO: gpt-realtime-translate and gpt-realtime-whisper are intentionally
731 // not exposed yet. Both run on their own OpenAI endpoints
732 // (/v1/realtime/translations/client_secrets and the realtime transcription
733 // session) with a one-way streaming contract, no tools, no conversation,
734 // and a different event prefix. They do not fit the chatbot session shape
735 // in premium/realtime.php and would warrant their own "Live Translation"
736 // and "Live Transcription" modes if a clear WordPress use case shows up.
737 /*
738 GPT Image
739 OpenAI's image generation models (token-based pricing)
740 https://platform.openai.com/docs/models/gpt-image-1
741 */
742 [
743 'model' => 'gpt-image-2',
744 'name' => 'GPT Image 2',
745 'family' => 'gpt-image',
746 'features' => ['text-to-image'],
747 'resolutions' => [
748 [
749 'name' => '1024x1024',
750 'label' => '1024x1024'
751 ],
752 [
753 'name' => '1024x1536',
754 'label' => '1024x1536'
755 ],
756 [
757 'name' => '1536x1024',
758 'label' => '1536x1024'
759 ]
760 ],
761 'qualities' => [
762 [ 'name' => 'auto', 'label' => 'Auto' ],
763 [ 'name' => 'low', 'label' => 'Low' ],
764 [ 'name' => 'medium', 'label' => 'Medium' ],
765 [ 'name' => 'high', 'label' => 'High' ]
766 ],
767 'type' => 'token',
768 'mode' => 'image',
769 'price' => [
770 'in' => 8.00,
771 'out' => 30.00,
772 'cached' => 2.00
773 ],
774 'unit' => 1 / 1000000,
775 'finetune' => false,
776 'tags' => ['core', 'image', 'image-edit', 'responses']
777 ],
778 [
779 'model' => 'gpt-image-1.5',
780 'name' => 'GPT Image 1.5',
781 'family' => 'gpt-image',
782 'features' => ['text-to-image'],
783 'resolutions' => [
784 [
785 'name' => '1024x1024',
786 'label' => '1024x1024'
787 ],
788 [
789 'name' => '1024x1536',
790 'label' => '1024x1536'
791 ],
792 [
793 'name' => '1536x1024',
794 'label' => '1536x1024'
795 ]
796 ],
797 'qualities' => [
798 [ 'name' => 'auto', 'label' => 'Auto' ],
799 [ 'name' => 'low', 'label' => 'Low' ],
800 [ 'name' => 'medium', 'label' => 'Medium' ],
801 [ 'name' => 'high', 'label' => 'High' ]
802 ],
803 'type' => 'token',
804 'mode' => 'image',
805 'price' => [
806 'in' => 8.00,
807 'out' => 32.00,
808 'cached' => 2.00
809 ],
810 'unit' => 1 / 1000000,
811 'finetune' => false,
812 // Shutdown: December 1, 2026.
813 'tags' => ['core', 'image', 'image-edit', 'responses', 'deprecated']
814 ],
815 [
816 'model' => 'gpt-image-1',
817 'name' => 'GPT Image 1',
818 'family' => 'gpt-image',
819 'features' => ['text-to-image'],
820 'resolutions' => [
821 [
822 'name' => '1024x1024',
823 'label' => '1024x1024'
824 ],
825 [
826 'name' => '1024x1536',
827 'label' => '1024x1536'
828 ],
829 [
830 'name' => '1536x1024',
831 'label' => '1536x1024'
832 ]
833 ],
834 'qualities' => [
835 [ 'name' => 'auto', 'label' => 'Auto' ],
836 [ 'name' => 'low', 'label' => 'Low' ],
837 [ 'name' => 'medium', 'label' => 'Medium' ],
838 [ 'name' => 'high', 'label' => 'High' ]
839 ],
840 'type' => 'token',
841 'mode' => 'image',
842 'price' => [
843 'in' => 10.00,
844 'out' => 40.00,
845 'cached' => 2.50
846 ],
847 'unit' => 1 / 1000000,
848 'finetune' => false,
849 // Shutdown: October 23, 2026.
850 'tags' => ['core', 'image', 'image-edit', 'responses', 'deprecated']
851 ],
852 [
853 'model' => 'gpt-image-1-mini',
854 'name' => 'GPT Image 1 Mini',
855 'family' => 'gpt-image',
856 'features' => ['text-to-image'],
857 'resolutions' => [
858 [
859 'name' => '1024x1024',
860 'label' => '1024x1024'
861 ],
862 [
863 'name' => '1024x1536',
864 'label' => '1024x1536'
865 ],
866 [
867 'name' => '1536x1024',
868 'label' => '1536x1024'
869 ]
870 ],
871 'qualities' => [
872 [ 'name' => 'auto', 'label' => 'Auto' ],
873 [ 'name' => 'low', 'label' => 'Low' ],
874 [ 'name' => 'medium', 'label' => 'Medium' ],
875 [ 'name' => 'high', 'label' => 'High' ]
876 ],
877 'type' => 'token',
878 'mode' => 'image',
879 'price' => [
880 'in' => 2.50,
881 'out' => 8.00,
882 'cached' => 0.25
883 ],
884 'unit' => 1 / 1000000,
885 'finetune' => false,
886 // Shutdown: December 1, 2026.
887 'tags' => ['core', 'image', 'image-edit', 'responses', 'deprecated']
888 ],
889 /*
890 Sora 2
891 Flagship video generation with synced audio
892 https://platform.openai.com/docs/models/sora-2
893 */
894 [
895 'model' => 'sora-2',
896 'name' => 'Sora 2',
897 'family' => 'sora',
898 'features' => ['text-to-video'],
899 'resolutions' => [
900 [
901 'name' => '720x1280',
902 'label' => 'Portrait (720x1280)',
903 'price' => 0.10
904 ],
905 [
906 'name' => '1280x720',
907 'label' => 'Landscape (1280x720)',
908 'price' => 0.10
909 ]
910 ],
911 'durations' => [ 4, 8, 12 ],
912 'type' => 'video',
913 'unit' => 'second',
914 'finetune' => false,
915 // Shutdown: September 24, 2026.
916 'tags' => ['core', 'video', 'deprecated']
917 ],
918 [
919 'model' => 'sora-2-pro',
920 'name' => 'Sora 2 Pro',
921 'family' => 'sora',
922 'features' => ['text-to-video'],
923 'resolutions' => [
924 [
925 'name' => '720x1280',
926 'label' => 'Portrait (720x1280)',
927 'price' => 0.30
928 ],
929 [
930 'name' => '1280x720',
931 'label' => 'Landscape (1280x720)',
932 'price' => 0.30
933 ],
934 [
935 'name' => '1024x1792',
936 'label' => 'Portrait High (1024x1792)',
937 'price' => 0.50
938 ],
939 [
940 'name' => '1792x1024',
941 'label' => 'Landscape High (1792x1024)',
942 'price' => 0.50
943 ]
944 ],
945 'durations' => [ 4, 8, 12 ],
946 'type' => 'video',
947 'unit' => 'second',
948 'finetune' => false,
949 // Shutdown: September 24, 2026.
950 'tags' => ['core', 'video', 'deprecated']
951 ],
952 // Embedding models:
953 // OpenAI v3 models support Matryoshka embeddings (MRL) allowing dimension truncation
954 // while preserving semantic meaning. The dimensions array lists native + recommended sizes.
955 // See: https://huggingface.co/blog/matryoshka
956 [
957 'model' => 'text-embedding-3-small',
958 'name' => 'Embedding 3-Small',
959 'family' => 'text-embedding',
960 'features' => ['embedding'],
961 'price' => 0.02,
962 'type' => 'token',
963 'unit' => 1 / 1000000,
964 'finetune' => false,
965 'dimensions' => 1536, // Native output dimension
966 'tags' => ['core', 'embedding', 'matryoshka'],
967 ],
968 [
969 'model' => 'text-embedding-3-large',
970 'name' => 'Embedding 3-Large',
971 'family' => 'text-embedding',
972 'features' => ['embedding'],
973 'price' => 0.13,
974 'type' => 'token',
975 'unit' => 1 / 1000000,
976 'finetune' => false,
977 'dimensions' => 3072, // Native output dimension
978 'tags' => ['core', 'embedding', 'matryoshka'],
979 ],
980 // Ada-002 is a legacy model with fixed dimensions (no truncation support)
981 [
982 'model' => 'text-embedding-ada-002',
983 'name' => 'Embedding Ada-002',
984 'family' => 'text-embedding',
985 'features' => ['embedding'],
986 'price' => 0.10,
987 'type' => 'token',
988 'unit' => 1 / 1000000,
989 'finetune' => false,
990 'dimensions' => 1536, // Fixed dimension (no matryoshka support)
991 'tags' => ['core', 'embedding'],
992 ],
993 // Audio Models:
994 [
995 'model' => 'gpt-4o-transcribe',
996 'name' => 'GPT-4o Transcribe',
997 'family' => 'whisper',
998 'features' => ['speech-to-text'],
999 'price' => 0.006,
1000 'type' => 'second',
1001 'unit' => 1,
1002 'finetune' => false,
1003 'tags' => ['core', 'audio', 'deprecated'],
1004 ],
1005 [
1006 'model' => 'gpt-4o-mini-transcribe',
1007 'name' => 'GPT-4o Mini Transcribe',
1008 'family' => 'whisper',
1009 'features' => ['speech-to-text'],
1010 'price' => 0.003,
1011 'type' => 'second',
1012 'unit' => 1,
1013 'finetune' => false,
1014 'tags' => ['core', 'audio', 'deprecated'],
1015 ],
1016 [
1017 'model' => 'whisper-1',
1018 'name' => 'Whisper',
1019 'family' => 'whisper',
1020 'features' => ['speech-to-text'],
1021 'price' => 0.006,
1022 'type' => 'second',
1023 'unit' => 1,
1024 'finetune' => false,
1025 'tags' => ['core', 'audio'],
1026 ],
1027 ] );
1028
1029 define( 'MWAI_ANTHROPIC_MODELS', [
1030 [
1031 'model' => 'claude-fable-5',
1032 'name' => 'Claude Fable 5',
1033 'family' => 'claude-5',
1034 'features' => ['completion'],
1035 'price' => [
1036 'in' => 10.00,
1037 'out' => 50.00,
1038 ],
1039 'type' => 'token',
1040 'unit' => 1 / 1000000,
1041 'maxCompletionTokens' => 128000,
1042 'maxContextualTokens' => 1000000,
1043 'finetune' => false,
1044 // Adaptive thinking is always on (no disabled mode, no manual budget, no
1045 // assistant prefill). Our engine never sends those, so no special handling.
1046 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature', 'latest'],
1047 'tools' => ['code_interpreter', 'thinking']
1048 ],
1049 [
1050 'model' => 'claude-opus-4-8',
1051 'name' => 'Claude Opus 4.8',
1052 'family' => 'claude-4',
1053 'features' => ['completion'],
1054 'price' => [
1055 'in' => 5.00,
1056 'out' => 25.00,
1057 ],
1058 'type' => 'token',
1059 'unit' => 1 / 1000000,
1060 'maxCompletionTokens' => 128000,
1061 'maxContextualTokens' => 1000000,
1062 'finetune' => false,
1063 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature', 'latest'],
1064 'tools' => ['code_interpreter', 'thinking']
1065 ],
1066 [
1067 'model' => 'claude-opus-4-7',
1068 'name' => 'Claude Opus 4.7',
1069 'family' => 'claude-4',
1070 'features' => ['completion'],
1071 'price' => [
1072 'in' => 5.00,
1073 'out' => 25.00,
1074 ],
1075 'type' => 'token',
1076 'unit' => 1 / 1000000,
1077 'maxCompletionTokens' => 128000,
1078 'maxContextualTokens' => 1000000,
1079 'finetune' => false,
1080 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature'],
1081 'tools' => ['code_interpreter', 'thinking']
1082 ],
1083 [
1084 'model' => 'claude-opus-4-6',
1085 'name' => 'Claude Opus 4.6',
1086 'family' => 'claude-4',
1087 'features' => ['completion'],
1088 'price' => [
1089 'in' => 5.00,
1090 'out' => 25.00,
1091 ],
1092 'type' => 'token',
1093 'unit' => 1 / 1000000,
1094 'maxCompletionTokens' => 128000,
1095 'maxContextualTokens' => 1000000,
1096 'finetune' => false,
1097 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1098 'tools' => ['code_interpreter', 'thinking']
1099 ],
1100 [
1101 'model' => 'claude-opus-4-5',
1102 'name' => 'Claude Opus 4.5',
1103 'family' => 'claude-4',
1104 'features' => ['completion'],
1105 'price' => [
1106 'in' => 5.00,
1107 'out' => 25.00,
1108 ],
1109 'type' => 'token',
1110 'unit' => 1 / 1000000,
1111 'maxCompletionTokens' => 64000,
1112 'maxContextualTokens' => 200000,
1113 'finetune' => false,
1114 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1115 'tools' => ['code_interpreter', 'thinking']
1116 ],
1117 [
1118 'model' => 'claude-sonnet-5',
1119 'name' => 'Claude Sonnet 5',
1120 'family' => 'claude-5',
1121 'features' => ['completion'],
1122 // Standard pricing ($3/$15); Anthropic runs a $2/$10 intro through 2026-08-31.
1123 'price' => [
1124 'in' => 3.00,
1125 'out' => 15.00,
1126 ],
1127 'type' => 'token',
1128 'unit' => 1 / 1000000,
1129 'maxCompletionTokens' => 128000,
1130 'maxContextualTokens' => 1000000,
1131 'finetune' => false,
1132 // Adaptive thinking is always on (no disabled mode, no manual budget, no
1133 // assistant prefill). Non-default temperature/top_p/top_k are rejected; the
1134 // 'no-temperature' tag stops us sending temperature, and we never send top_p/top_k.
1135 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature', 'latest'],
1136 'tools' => ['code_interpreter', 'thinking']
1137 ],
1138 [
1139 'model' => 'claude-sonnet-4-6',
1140 'name' => 'Claude Sonnet 4.6',
1141 'family' => 'claude-4',
1142 'features' => ['completion'],
1143 'price' => [
1144 'in' => 3.00,
1145 'out' => 15.00,
1146 ],
1147 'type' => 'token',
1148 'unit' => 1 / 1000000,
1149 'maxCompletionTokens' => 64000,
1150 'maxContextualTokens' => 1000000,
1151 'finetune' => false,
1152 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1153 'tools' => ['code_interpreter', 'thinking']
1154 ],
1155 [
1156 'model' => 'claude-sonnet-4-5-20250929',
1157 'name' => 'Claude Sonnet 4.5 (2025/09/29)',
1158 'family' => 'claude-4',
1159 'features' => ['completion'],
1160 'price' => [
1161 'in' => 3.00,
1162 'out' => 15.00,
1163 ],
1164 'type' => 'token',
1165 'unit' => 1 / 1000000,
1166 'maxCompletionTokens' => 64000,
1167 'maxContextualTokens' => 200000,
1168 'finetune' => false,
1169 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1170 'tools' => ['code_interpreter', 'thinking']
1171 ],
1172 [
1173 'model' => 'claude-sonnet-4-5',
1174 'name' => 'Claude Sonnet 4.5',
1175 'family' => 'claude-4',
1176 'features' => ['completion'],
1177 'price' => [
1178 'in' => 3.00,
1179 'out' => 15.00,
1180 ],
1181 'type' => 'token',
1182 'unit' => 1 / 1000000,
1183 'maxCompletionTokens' => 64000,
1184 'maxContextualTokens' => 200000,
1185 'finetune' => false,
1186 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1187 'tools' => ['code_interpreter', 'thinking']
1188 ],
1189 [
1190 'model' => 'claude-opus-4-1-20250805',
1191 'name' => 'Claude Opus 4.1 (2025/08/05)',
1192 'family' => 'claude-4',
1193 'features' => ['completion'],
1194 'price' => [
1195 'in' => 15.00,
1196 'out' => 75.00,
1197 ],
1198 'type' => 'token',
1199 'unit' => 1 / 1000000,
1200 'maxCompletionTokens' => 32000,
1201 'maxContextualTokens' => 200000,
1202 'finetune' => false,
1203 // Deprecated by Anthropic: retires on the Claude API on August 5, 2026.
1204 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1205 'tools' => ['code_interpreter', 'thinking']
1206 ],
1207 [
1208 'model' => 'claude-opus-4-1',
1209 'name' => 'Claude Opus 4.1',
1210 'family' => 'claude-4',
1211 'features' => ['completion'],
1212 'price' => [
1213 'in' => 15.00,
1214 'out' => 75.00,
1215 ],
1216 'type' => 'token',
1217 'unit' => 1 / 1000000,
1218 'maxCompletionTokens' => 32000,
1219 'maxContextualTokens' => 200000,
1220 'finetune' => false,
1221 // Deprecated by Anthropic: retires on the Claude API on August 5, 2026.
1222 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1223 'tools' => ['code_interpreter', 'thinking']
1224 ],
1225 [
1226 'model' => 'claude-opus-4-20250514',
1227 'name' => 'Claude Opus 4 (2025/05/14)',
1228 'family' => 'claude-4',
1229 'features' => ['completion'],
1230 'price' => [
1231 'in' => 15.00,
1232 'out' => 75.00,
1233 ],
1234 'type' => 'token',
1235 'unit' => 1 / 1000000,
1236 'maxCompletionTokens' => 32000,
1237 'maxContextualTokens' => 200000,
1238 'finetune' => false,
1239 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1240 'tools' => ['code_interpreter', 'thinking']
1241 ],
1242 [
1243 'model' => 'claude-opus-4-0',
1244 'name' => 'Claude Opus 4',
1245 'family' => 'claude-4',
1246 'features' => ['completion'],
1247 'price' => [
1248 'in' => 15.00,
1249 'out' => 75.00,
1250 ],
1251 'type' => 'token',
1252 'unit' => 1 / 1000000,
1253 'maxCompletionTokens' => 32000,
1254 'maxContextualTokens' => 200000,
1255 'finetune' => false,
1256 // Deprecated by Anthropic: retires on the Claude API on June 15, 2026.
1257 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1258 'tools' => ['code_interpreter', 'thinking']
1259 ],
1260 [
1261 'model' => 'claude-sonnet-4-20250514',
1262 'name' => 'Claude Sonnet 4 (2025/05/14)',
1263 'family' => 'claude-4',
1264 'features' => ['completion'],
1265 'price' => [
1266 'in' => 3.00,
1267 'out' => 15.00,
1268 ],
1269 'type' => 'token',
1270 'unit' => 1 / 1000000,
1271 'maxCompletionTokens' => 64000,
1272 'maxContextualTokens' => 200000,
1273 'finetune' => false,
1274 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1275 'tools' => ['code_interpreter', 'thinking']
1276 ],
1277 [
1278 'model' => 'claude-sonnet-4-0',
1279 'name' => 'Claude Sonnet 4',
1280 'family' => 'claude-4',
1281 'features' => ['completion'],
1282 'price' => [
1283 'in' => 3.00,
1284 'out' => 15.00,
1285 ],
1286 'type' => 'token',
1287 'unit' => 1 / 1000000,
1288 'maxCompletionTokens' => 64000,
1289 'maxContextualTokens' => 200000,
1290 'finetune' => false,
1291 // Deprecated by Anthropic: retires on the Claude API on June 15, 2026.
1292 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1293 'tools' => ['code_interpreter', 'thinking']
1294 ],
1295 [
1296 'model' => 'claude-haiku-4-5-20251001',
1297 'name' => 'Claude-4.5 Haiku (2025/10/01)',
1298 'family' => 'claude-4',
1299 'features' => ['completion'],
1300 'price' => [
1301 'in' => 1.00,
1302 'out' => 5.00,
1303 ],
1304 'type' => 'token',
1305 'unit' => 1 / 1000000,
1306 'maxCompletionTokens' => 64000,
1307 'maxContextualTokens' => 200000,
1308 'finetune' => false,
1309 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1310 'tools' => ['code_interpreter', 'thinking']
1311 ],
1312 [
1313 'model' => 'claude-haiku-4-5',
1314 'name' => 'Claude-4.5 Haiku',
1315 'family' => 'claude-4',
1316 'features' => ['completion'],
1317 'price' => [
1318 'in' => 1.00,
1319 'out' => 5.00,
1320 ],
1321 'type' => 'token',
1322 'unit' => 1 / 1000000,
1323 'maxCompletionTokens' => 64000,
1324 'maxContextualTokens' => 200000,
1325 'finetune' => false,
1326 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'latest'],
1327 'tools' => ['code_interpreter', 'thinking']
1328 ],
1329 [
1330 'model' => 'claude-3-7-sonnet-latest',
1331 'name' => 'Claude-3.7 Sonnet',
1332 'family' => 'claude-3',
1333 'features' => ['completion'],
1334 'price' => [
1335 'in' => 3.00,
1336 'out' => 15.00,
1337 ],
1338 'type' => 'token',
1339 'unit' => 1 / 1000000,
1340 'maxCompletionTokens' => 64000,
1341 'maxContextualTokens' => 200000,
1342 'finetune' => false,
1343 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1344 'tools' => ['code_interpreter', 'thinking']
1345 ],
1346 [
1347 'model' => 'claude-3-5-sonnet-latest',
1348 'name' => 'Claude-3.5 Sonnet',
1349 'family' => 'claude-3',
1350 'features' => ['completion'],
1351 'price' => [
1352 'in' => 3.00,
1353 'out' => 15.00,
1354 ],
1355 'type' => 'token',
1356 'unit' => 1 / 1000000,
1357 'maxCompletionTokens' => 4096,
1358 'maxContextualTokens' => 200000,
1359 'finetune' => false,
1360 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'mcp']
1361 ],
1362 [
1363 'model' => 'claude-3-5-sonnet-20241022',
1364 'name' => 'Claude-3.5 Sonnet (2024/10/22)',
1365 'family' => 'claude-3',
1366 'features' => ['completion'],
1367 'price' => [
1368 'in' => 3.00,
1369 'out' => 15.00,
1370 ],
1371 'type' => 'token',
1372 'unit' => 1 / 1000000,
1373 'maxCompletionTokens' => 4096,
1374 'maxContextualTokens' => 200000,
1375 'finetune' => false,
1376 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'mcp']
1377 ],
1378 [
1379 'model' => 'claude-3-5-sonnet-20240620',
1380 'name' => 'Claude-3.5 Sonnet (2024/06/20)',
1381 'family' => 'claude-3',
1382 'features' => ['completion'],
1383 'price' => [
1384 'in' => 3.00,
1385 'out' => 15.00,
1386 ],
1387 'type' => 'token',
1388 'unit' => 1 / 1000000,
1389 'maxCompletionTokens' => 4096,
1390 'maxContextualTokens' => 200000,
1391 'finetune' => false,
1392 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'mcp']
1393 ],
1394 [
1395 'model' => 'claude-3-sonnet-20240229',
1396 'name' => 'Claude-3 Sonnet (2024/02/29)',
1397 'family' => 'claude-3',
1398 'features' => ['completion'],
1399 'price' => [
1400 'in' => 3.00,
1401 'out' => 15.00,
1402 ],
1403 'type' => 'token',
1404 'unit' => 1 / 1000000,
1405 'maxCompletionTokens' => 4096,
1406 'maxContextualTokens' => 200000,
1407 'finetune' => false,
1408 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'deprecated']
1409 ],
1410 [
1411 // Deprecated: Anthropic retired Claude 3 Opus on January 5, 2026.
1412 'model' => 'claude-3-opus-latest',
1413 'name' => 'Claude-3 Opus (Latest)',
1414 'family' => 'claude-3',
1415 'features' => ['completion'],
1416 'price' => [
1417 'in' => 15.00,
1418 'out' => 75.00,
1419 ],
1420 'type' => 'token',
1421 'unit' => 1 / 1000000,
1422 'maxCompletionTokens' => 4096,
1423 'maxContextualTokens' => 200000,
1424 'finetune' => false,
1425 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'deprecated']
1426 ],
1427 [
1428 // Deprecated: Anthropic retired Claude 3 Opus on January 5, 2026.
1429 'model' => 'claude-3-opus-20240229',
1430 'name' => 'Claude-3 Opus (2024/02/29)',
1431 'family' => 'claude-3',
1432 'features' => ['completion'],
1433 'price' => [
1434 'in' => 15.00,
1435 'out' => 75.00,
1436 ],
1437 'type' => 'token',
1438 'unit' => 1 / 1000000,
1439 'maxCompletionTokens' => 4096,
1440 'maxContextualTokens' => 200000,
1441 'finetune' => false,
1442 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'deprecated']
1443 ],
1444 [
1445 'model' => 'claude-3-5-haiku-20241022',
1446 'name' => 'Claude-3.5 Haiku (2024/10/22)',
1447 'family' => 'claude-3',
1448 'features' => ['completion'],
1449 'price' => [
1450 'in' => 0.80,
1451 'out' => 4.00,
1452 ],
1453 'type' => 'token',
1454 'unit' => 1 / 1000000,
1455 'maxCompletionTokens' => 8192,
1456 'maxContextualTokens' => 200000,
1457 'finetune' => false,
1458 'tags' => ['core', 'chat', 'vision', 'files'],
1459 'tools' => ['code_interpreter']
1460 ],
1461 [
1462 'model' => 'claude-3-5-haiku-latest',
1463 'name' => 'Claude-3.5 Haiku',
1464 'family' => 'claude-3',
1465 'features' => ['completion'],
1466 'price' => [
1467 'in' => 0.80,
1468 'out' => 4.00,
1469 ],
1470 'type' => 'token',
1471 'unit' => 1 / 1000000,
1472 'maxCompletionTokens' => 8192,
1473 'maxContextualTokens' => 200000,
1474 'finetune' => false,
1475 'tags' => ['core', 'chat', 'vision', 'files', 'latest'],
1476 'tools' => ['code_interpreter']
1477 ],
1478 [
1479 'model' => 'claude-3-haiku-20240307',
1480 'name' => 'Claude-3 Haiku (2024/03/07)',
1481 'family' => 'claude-3',
1482 'features' => ['completion'],
1483 'price' => [
1484 'in' => 0.25,
1485 'out' => 1.25,
1486 ],
1487 'type' => 'token',
1488 'unit' => 1 / 1000000,
1489 'maxCompletionTokens' => 4096,
1490 'maxContextualTokens' => 200000,
1491 'finetune' => false,
1492 'tags' => ['core', 'chat', 'vision', 'files', 'functions']
1493 ]
1494 ] );
1495
1496 define( 'MWAI_PERPLEXITY_MODELS', [
1497 [
1498 'model' => 'sonar-pro',
1499 'name' => 'Sonar Pro',
1500 'family' => 'sonar',
1501 'features' => ['completion'],
1502 'price' => [
1503 'in' => 3.00,
1504 'out' => 15.00,
1505 'search' => 5.00,
1506 ],
1507 'type' => 'token',
1508 'unit' => 1 / 1000000,
1509 'searchUnit' => 1 / 1000,
1510 'maxCompletionTokens' => 8192,
1511 'maxContextualTokens' => 200000,
1512 'finetune' => false,
1513 'tags' => ['core', 'chat'],
1514 ],
1515 [
1516 'model' => 'sonar',
1517 'name' => 'Sonar',
1518 'family' => 'sonar',
1519 'features' => ['completion'],
1520 'price' => [
1521 'in' => 1.00,
1522 'out' => 1.00,
1523 'search' => 5.00,
1524 ],
1525 'type' => 'token',
1526 'unit' => 1 / 1000000,
1527 'searchUnit' => 1 / 1000,
1528 'maxCompletionTokens' => 4096,
1529 'maxContextualTokens' => 127000,
1530 'finetune' => false,
1531 'tags' => ['core', 'chat'],
1532 ],
1533 ] );
1534
1535 // Mistral AI Models
1536 // Models are fetched dynamically from the Mistral API
1537 define( 'MWAI_MISTRAL_MODELS', [] );
1538
1539 // xAI (Grok) Models
1540 // Models are fetched dynamically from the xAI API. The fallback list below mirrors the
1541 // chat-capable models that xAI publishes on https://docs.x.ai/docs/models, used only when
1542 // the dynamic fetch fails (e.g. invalid key during preflight).
1543 define( 'MWAI_XAI_MODELS', [
1544 [
1545 'model' => 'grok-4',
1546 'name' => 'Grok 4',
1547 'family' => 'grok',
1548 'features' => [ 'completion', 'functions' ],
1549 'price' => [ 'in' => 3.00, 'out' => 15.00 ],
1550 'type' => 'token',
1551 'unit' => 1 / 1000000,
1552 'maxCompletionTokens' => 16384,
1553 'maxContextualTokens' => 256000,
1554 'tags' => [ 'core', 'chat', 'functions', 'vision', 'reasoning' ],
1555 ],
1556 [
1557 'model' => 'grok-4-fast',
1558 'name' => 'Grok 4 Fast',
1559 'family' => 'grok',
1560 'features' => [ 'completion', 'functions' ],
1561 'price' => [ 'in' => 0.20, 'out' => 0.50 ],
1562 'type' => 'token',
1563 'unit' => 1 / 1000000,
1564 'maxCompletionTokens' => 16384,
1565 'maxContextualTokens' => 256000,
1566 'tags' => [ 'core', 'chat', 'functions', 'vision', 'reasoning' ],
1567 ],
1568 [
1569 'model' => 'grok-code-fast-1',
1570 'name' => 'Grok Code Fast',
1571 'family' => 'grok',
1572 'features' => [ 'completion', 'functions' ],
1573 'price' => [ 'in' => 0.20, 'out' => 1.50 ],
1574 'type' => 'token',
1575 'unit' => 1 / 1000000,
1576 'maxCompletionTokens' => 16384,
1577 'maxContextualTokens' => 256000,
1578 'tags' => [ 'core', 'chat', 'functions' ],
1579 ],
1580 [
1581 'model' => 'grok-3-mini',
1582 'name' => 'Grok 3 Mini',
1583 'family' => 'grok',
1584 'features' => [ 'completion', 'functions' ],
1585 'price' => [ 'in' => 0.30, 'out' => 0.50 ],
1586 'type' => 'token',
1587 'unit' => 1 / 1000000,
1588 'maxCompletionTokens' => 16384,
1589 'maxContextualTokens' => 131072,
1590 'tags' => [ 'core', 'chat', 'functions', 'reasoning' ],
1591 ],
1592 ] );
1593