PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 3.6.5
AI Engine – The Chatbot, AI Framework & MCP for WordPress v3.6.5
3.6.4 3.6.5 3.6.3 3.6.2 3.6.1 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 1 day ago models.php 2 days ago types.php 1 year ago
models.php
1612 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', 'web_search']
1048 ],
1049 [
1050 'model' => 'claude-opus-5',
1051 'name' => 'Claude Opus 5',
1052 'family' => 'claude-5',
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 // Adaptive thinking (no extended-thinking param). Non-default temperature/
1064 // top_p/top_k are rejected, same as the other Claude 5 models.
1065 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature', 'latest'],
1066 'tools' => ['code_interpreter', 'thinking', 'web_search']
1067 ],
1068 [
1069 'model' => 'claude-opus-4-8',
1070 'name' => 'Claude Opus 4.8',
1071 'family' => 'claude-4',
1072 'features' => ['completion'],
1073 'price' => [
1074 'in' => 5.00,
1075 'out' => 25.00,
1076 ],
1077 'type' => 'token',
1078 'unit' => 1 / 1000000,
1079 'maxCompletionTokens' => 128000,
1080 'maxContextualTokens' => 1000000,
1081 'finetune' => false,
1082 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature'],
1083 'tools' => ['code_interpreter', 'thinking', 'web_search']
1084 ],
1085 [
1086 'model' => 'claude-opus-4-7',
1087 'name' => 'Claude Opus 4.7',
1088 'family' => 'claude-4',
1089 'features' => ['completion'],
1090 'price' => [
1091 'in' => 5.00,
1092 'out' => 25.00,
1093 ],
1094 'type' => 'token',
1095 'unit' => 1 / 1000000,
1096 'maxCompletionTokens' => 128000,
1097 'maxContextualTokens' => 1000000,
1098 'finetune' => false,
1099 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature'],
1100 'tools' => ['code_interpreter', 'thinking', 'web_search']
1101 ],
1102 [
1103 'model' => 'claude-opus-4-6',
1104 'name' => 'Claude Opus 4.6',
1105 'family' => 'claude-4',
1106 'features' => ['completion'],
1107 'price' => [
1108 'in' => 5.00,
1109 'out' => 25.00,
1110 ],
1111 'type' => 'token',
1112 'unit' => 1 / 1000000,
1113 'maxCompletionTokens' => 128000,
1114 'maxContextualTokens' => 1000000,
1115 'finetune' => false,
1116 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1117 'tools' => ['code_interpreter', 'thinking', 'web_search']
1118 ],
1119 [
1120 'model' => 'claude-opus-4-5',
1121 'name' => 'Claude Opus 4.5',
1122 'family' => 'claude-4',
1123 'features' => ['completion'],
1124 'price' => [
1125 'in' => 5.00,
1126 'out' => 25.00,
1127 ],
1128 'type' => 'token',
1129 'unit' => 1 / 1000000,
1130 'maxCompletionTokens' => 64000,
1131 'maxContextualTokens' => 200000,
1132 'finetune' => false,
1133 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1134 'tools' => ['code_interpreter', 'thinking', 'web_search']
1135 ],
1136 [
1137 'model' => 'claude-sonnet-5',
1138 'name' => 'Claude Sonnet 5',
1139 'family' => 'claude-5',
1140 'features' => ['completion'],
1141 // Standard pricing ($3/$15); Anthropic runs a $2/$10 intro through 2026-08-31.
1142 'price' => [
1143 'in' => 3.00,
1144 'out' => 15.00,
1145 ],
1146 'type' => 'token',
1147 'unit' => 1 / 1000000,
1148 'maxCompletionTokens' => 128000,
1149 'maxContextualTokens' => 1000000,
1150 'finetune' => false,
1151 // Adaptive thinking is always on (no disabled mode, no manual budget, no
1152 // assistant prefill). Non-default temperature/top_p/top_k are rejected; the
1153 // 'no-temperature' tag stops us sending temperature, and we never send top_p/top_k.
1154 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature', 'latest'],
1155 'tools' => ['code_interpreter', 'thinking', 'web_search']
1156 ],
1157 [
1158 'model' => 'claude-sonnet-4-6',
1159 'name' => 'Claude Sonnet 4.6',
1160 'family' => 'claude-4',
1161 'features' => ['completion'],
1162 'price' => [
1163 'in' => 3.00,
1164 'out' => 15.00,
1165 ],
1166 'type' => 'token',
1167 'unit' => 1 / 1000000,
1168 'maxCompletionTokens' => 64000,
1169 'maxContextualTokens' => 1000000,
1170 'finetune' => false,
1171 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1172 'tools' => ['code_interpreter', 'thinking', 'web_search']
1173 ],
1174 [
1175 'model' => 'claude-sonnet-4-5-20250929',
1176 'name' => 'Claude Sonnet 4.5 (2025/09/29)',
1177 'family' => 'claude-4',
1178 'features' => ['completion'],
1179 'price' => [
1180 'in' => 3.00,
1181 'out' => 15.00,
1182 ],
1183 'type' => 'token',
1184 'unit' => 1 / 1000000,
1185 'maxCompletionTokens' => 64000,
1186 'maxContextualTokens' => 200000,
1187 'finetune' => false,
1188 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1189 'tools' => ['code_interpreter', 'thinking', 'web_search']
1190 ],
1191 [
1192 'model' => 'claude-sonnet-4-5',
1193 'name' => 'Claude Sonnet 4.5',
1194 'family' => 'claude-4',
1195 'features' => ['completion'],
1196 'price' => [
1197 'in' => 3.00,
1198 'out' => 15.00,
1199 ],
1200 'type' => 'token',
1201 'unit' => 1 / 1000000,
1202 'maxCompletionTokens' => 64000,
1203 'maxContextualTokens' => 200000,
1204 'finetune' => false,
1205 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1206 'tools' => ['code_interpreter', 'thinking', 'web_search']
1207 ],
1208 [
1209 'model' => 'claude-opus-4-1-20250805',
1210 'name' => 'Claude Opus 4.1 (2025/08/05)',
1211 'family' => 'claude-4',
1212 'features' => ['completion'],
1213 'price' => [
1214 'in' => 15.00,
1215 'out' => 75.00,
1216 ],
1217 'type' => 'token',
1218 'unit' => 1 / 1000000,
1219 'maxCompletionTokens' => 32000,
1220 'maxContextualTokens' => 200000,
1221 'finetune' => false,
1222 // Deprecated by Anthropic: retires on the Claude API on August 5, 2026.
1223 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1224 'tools' => ['code_interpreter', 'thinking', 'web_search']
1225 ],
1226 [
1227 'model' => 'claude-opus-4-1',
1228 'name' => 'Claude Opus 4.1',
1229 'family' => 'claude-4',
1230 'features' => ['completion'],
1231 'price' => [
1232 'in' => 15.00,
1233 'out' => 75.00,
1234 ],
1235 'type' => 'token',
1236 'unit' => 1 / 1000000,
1237 'maxCompletionTokens' => 32000,
1238 'maxContextualTokens' => 200000,
1239 'finetune' => false,
1240 // Deprecated by Anthropic: retires on the Claude API on August 5, 2026.
1241 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1242 'tools' => ['code_interpreter', 'thinking', 'web_search']
1243 ],
1244 [
1245 'model' => 'claude-opus-4-20250514',
1246 'name' => 'Claude Opus 4 (2025/05/14)',
1247 'family' => 'claude-4',
1248 'features' => ['completion'],
1249 'price' => [
1250 'in' => 15.00,
1251 'out' => 75.00,
1252 ],
1253 'type' => 'token',
1254 'unit' => 1 / 1000000,
1255 'maxCompletionTokens' => 32000,
1256 'maxContextualTokens' => 200000,
1257 'finetune' => false,
1258 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1259 'tools' => ['code_interpreter', 'thinking', 'web_search']
1260 ],
1261 [
1262 'model' => 'claude-opus-4-0',
1263 'name' => 'Claude Opus 4',
1264 'family' => 'claude-4',
1265 'features' => ['completion'],
1266 'price' => [
1267 'in' => 15.00,
1268 'out' => 75.00,
1269 ],
1270 'type' => 'token',
1271 'unit' => 1 / 1000000,
1272 'maxCompletionTokens' => 32000,
1273 'maxContextualTokens' => 200000,
1274 'finetune' => false,
1275 // Deprecated by Anthropic: retires on the Claude API on June 15, 2026.
1276 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1277 'tools' => ['code_interpreter', 'thinking', 'web_search']
1278 ],
1279 [
1280 'model' => 'claude-sonnet-4-20250514',
1281 'name' => 'Claude Sonnet 4 (2025/05/14)',
1282 'family' => 'claude-4',
1283 'features' => ['completion'],
1284 'price' => [
1285 'in' => 3.00,
1286 'out' => 15.00,
1287 ],
1288 'type' => 'token',
1289 'unit' => 1 / 1000000,
1290 'maxCompletionTokens' => 64000,
1291 'maxContextualTokens' => 200000,
1292 'finetune' => false,
1293 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1294 'tools' => ['code_interpreter', 'thinking', 'web_search']
1295 ],
1296 [
1297 'model' => 'claude-sonnet-4-0',
1298 'name' => 'Claude Sonnet 4',
1299 'family' => 'claude-4',
1300 'features' => ['completion'],
1301 'price' => [
1302 'in' => 3.00,
1303 'out' => 15.00,
1304 ],
1305 'type' => 'token',
1306 'unit' => 1 / 1000000,
1307 'maxCompletionTokens' => 64000,
1308 'maxContextualTokens' => 200000,
1309 'finetune' => false,
1310 // Deprecated by Anthropic: retires on the Claude API on June 15, 2026.
1311 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1312 'tools' => ['code_interpreter', 'thinking', 'web_search']
1313 ],
1314 [
1315 'model' => 'claude-haiku-4-5-20251001',
1316 'name' => 'Claude-4.5 Haiku (2025/10/01)',
1317 'family' => 'claude-4',
1318 'features' => ['completion'],
1319 'price' => [
1320 'in' => 1.00,
1321 'out' => 5.00,
1322 ],
1323 'type' => 'token',
1324 'unit' => 1 / 1000000,
1325 'maxCompletionTokens' => 64000,
1326 'maxContextualTokens' => 200000,
1327 'finetune' => false,
1328 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1329 'tools' => ['code_interpreter', 'thinking', 'web_search']
1330 ],
1331 [
1332 'model' => 'claude-haiku-4-5',
1333 'name' => 'Claude-4.5 Haiku',
1334 'family' => 'claude-4',
1335 'features' => ['completion'],
1336 'price' => [
1337 'in' => 1.00,
1338 'out' => 5.00,
1339 ],
1340 'type' => 'token',
1341 'unit' => 1 / 1000000,
1342 'maxCompletionTokens' => 64000,
1343 'maxContextualTokens' => 200000,
1344 'finetune' => false,
1345 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'latest'],
1346 'tools' => ['code_interpreter', 'thinking', 'web_search']
1347 ],
1348 [
1349 'model' => 'claude-3-7-sonnet-latest',
1350 'name' => 'Claude-3.7 Sonnet',
1351 'family' => 'claude-3',
1352 'features' => ['completion'],
1353 'price' => [
1354 'in' => 3.00,
1355 'out' => 15.00,
1356 ],
1357 'type' => 'token',
1358 'unit' => 1 / 1000000,
1359 'maxCompletionTokens' => 64000,
1360 'maxContextualTokens' => 200000,
1361 'finetune' => false,
1362 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1363 'tools' => ['code_interpreter', 'thinking', 'web_search']
1364 ],
1365 [
1366 'model' => 'claude-3-5-sonnet-latest',
1367 'name' => 'Claude-3.5 Sonnet',
1368 'family' => 'claude-3',
1369 'features' => ['completion'],
1370 'price' => [
1371 'in' => 3.00,
1372 'out' => 15.00,
1373 ],
1374 'type' => 'token',
1375 'unit' => 1 / 1000000,
1376 'maxCompletionTokens' => 4096,
1377 'maxContextualTokens' => 200000,
1378 'finetune' => false,
1379 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'mcp']
1380 ],
1381 [
1382 'model' => 'claude-3-5-sonnet-20241022',
1383 'name' => 'Claude-3.5 Sonnet (2024/10/22)',
1384 'family' => 'claude-3',
1385 'features' => ['completion'],
1386 'price' => [
1387 'in' => 3.00,
1388 'out' => 15.00,
1389 ],
1390 'type' => 'token',
1391 'unit' => 1 / 1000000,
1392 'maxCompletionTokens' => 4096,
1393 'maxContextualTokens' => 200000,
1394 'finetune' => false,
1395 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'mcp']
1396 ],
1397 [
1398 'model' => 'claude-3-5-sonnet-20240620',
1399 'name' => 'Claude-3.5 Sonnet (2024/06/20)',
1400 'family' => 'claude-3',
1401 'features' => ['completion'],
1402 'price' => [
1403 'in' => 3.00,
1404 'out' => 15.00,
1405 ],
1406 'type' => 'token',
1407 'unit' => 1 / 1000000,
1408 'maxCompletionTokens' => 4096,
1409 'maxContextualTokens' => 200000,
1410 'finetune' => false,
1411 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'mcp']
1412 ],
1413 [
1414 'model' => 'claude-3-sonnet-20240229',
1415 'name' => 'Claude-3 Sonnet (2024/02/29)',
1416 'family' => 'claude-3',
1417 'features' => ['completion'],
1418 'price' => [
1419 'in' => 3.00,
1420 'out' => 15.00,
1421 ],
1422 'type' => 'token',
1423 'unit' => 1 / 1000000,
1424 'maxCompletionTokens' => 4096,
1425 'maxContextualTokens' => 200000,
1426 'finetune' => false,
1427 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'deprecated']
1428 ],
1429 [
1430 // Deprecated: Anthropic retired Claude 3 Opus on January 5, 2026.
1431 'model' => 'claude-3-opus-latest',
1432 'name' => 'Claude-3 Opus (Latest)',
1433 'family' => 'claude-3',
1434 'features' => ['completion'],
1435 'price' => [
1436 'in' => 15.00,
1437 'out' => 75.00,
1438 ],
1439 'type' => 'token',
1440 'unit' => 1 / 1000000,
1441 'maxCompletionTokens' => 4096,
1442 'maxContextualTokens' => 200000,
1443 'finetune' => false,
1444 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'deprecated']
1445 ],
1446 [
1447 // Deprecated: Anthropic retired Claude 3 Opus on January 5, 2026.
1448 'model' => 'claude-3-opus-20240229',
1449 'name' => 'Claude-3 Opus (2024/02/29)',
1450 'family' => 'claude-3',
1451 'features' => ['completion'],
1452 'price' => [
1453 'in' => 15.00,
1454 'out' => 75.00,
1455 ],
1456 'type' => 'token',
1457 'unit' => 1 / 1000000,
1458 'maxCompletionTokens' => 4096,
1459 'maxContextualTokens' => 200000,
1460 'finetune' => false,
1461 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'deprecated']
1462 ],
1463 [
1464 'model' => 'claude-3-5-haiku-20241022',
1465 'name' => 'Claude-3.5 Haiku (2024/10/22)',
1466 'family' => 'claude-3',
1467 'features' => ['completion'],
1468 'price' => [
1469 'in' => 0.80,
1470 'out' => 4.00,
1471 ],
1472 'type' => 'token',
1473 'unit' => 1 / 1000000,
1474 'maxCompletionTokens' => 8192,
1475 'maxContextualTokens' => 200000,
1476 'finetune' => false,
1477 'tags' => ['core', 'chat', 'vision', 'files'],
1478 'tools' => ['code_interpreter']
1479 ],
1480 [
1481 'model' => 'claude-3-5-haiku-latest',
1482 'name' => 'Claude-3.5 Haiku',
1483 'family' => 'claude-3',
1484 'features' => ['completion'],
1485 'price' => [
1486 'in' => 0.80,
1487 'out' => 4.00,
1488 ],
1489 'type' => 'token',
1490 'unit' => 1 / 1000000,
1491 'maxCompletionTokens' => 8192,
1492 'maxContextualTokens' => 200000,
1493 'finetune' => false,
1494 'tags' => ['core', 'chat', 'vision', 'files', 'latest'],
1495 'tools' => ['code_interpreter']
1496 ],
1497 [
1498 'model' => 'claude-3-haiku-20240307',
1499 'name' => 'Claude-3 Haiku (2024/03/07)',
1500 'family' => 'claude-3',
1501 'features' => ['completion'],
1502 'price' => [
1503 'in' => 0.25,
1504 'out' => 1.25,
1505 ],
1506 'type' => 'token',
1507 'unit' => 1 / 1000000,
1508 'maxCompletionTokens' => 4096,
1509 'maxContextualTokens' => 200000,
1510 'finetune' => false,
1511 'tags' => ['core', 'chat', 'vision', 'files', 'functions']
1512 ]
1513 ] );
1514
1515 define( 'MWAI_PERPLEXITY_MODELS', [
1516 [
1517 'model' => 'sonar-pro',
1518 'name' => 'Sonar Pro',
1519 'family' => 'sonar',
1520 'features' => ['completion'],
1521 'price' => [
1522 'in' => 3.00,
1523 'out' => 15.00,
1524 'search' => 5.00,
1525 ],
1526 'type' => 'token',
1527 'unit' => 1 / 1000000,
1528 'searchUnit' => 1 / 1000,
1529 'maxCompletionTokens' => 8192,
1530 'maxContextualTokens' => 200000,
1531 'finetune' => false,
1532 'tags' => ['core', 'chat'],
1533 ],
1534 [
1535 'model' => 'sonar',
1536 'name' => 'Sonar',
1537 'family' => 'sonar',
1538 'features' => ['completion'],
1539 'price' => [
1540 'in' => 1.00,
1541 'out' => 1.00,
1542 'search' => 5.00,
1543 ],
1544 'type' => 'token',
1545 'unit' => 1 / 1000000,
1546 'searchUnit' => 1 / 1000,
1547 'maxCompletionTokens' => 4096,
1548 'maxContextualTokens' => 127000,
1549 'finetune' => false,
1550 'tags' => ['core', 'chat'],
1551 ],
1552 ] );
1553
1554 // Mistral AI Models
1555 // Models are fetched dynamically from the Mistral API
1556 define( 'MWAI_MISTRAL_MODELS', [] );
1557
1558 // xAI (Grok) Models
1559 // Models are fetched dynamically from the xAI API. The fallback list below mirrors the
1560 // chat-capable models that xAI publishes on https://docs.x.ai/docs/models, used only when
1561 // the dynamic fetch fails (e.g. invalid key during preflight).
1562 define( 'MWAI_XAI_MODELS', [
1563 [
1564 'model' => 'grok-4',
1565 'name' => 'Grok 4',
1566 'family' => 'grok',
1567 'features' => [ 'completion', 'functions' ],
1568 'price' => [ 'in' => 3.00, 'out' => 15.00 ],
1569 'type' => 'token',
1570 'unit' => 1 / 1000000,
1571 'maxCompletionTokens' => 16384,
1572 'maxContextualTokens' => 256000,
1573 'tags' => [ 'core', 'chat', 'functions', 'vision', 'reasoning' ],
1574 ],
1575 [
1576 'model' => 'grok-4-fast',
1577 'name' => 'Grok 4 Fast',
1578 'family' => 'grok',
1579 'features' => [ 'completion', 'functions' ],
1580 'price' => [ 'in' => 0.20, 'out' => 0.50 ],
1581 'type' => 'token',
1582 'unit' => 1 / 1000000,
1583 'maxCompletionTokens' => 16384,
1584 'maxContextualTokens' => 256000,
1585 'tags' => [ 'core', 'chat', 'functions', 'vision', 'reasoning' ],
1586 ],
1587 [
1588 'model' => 'grok-code-fast-1',
1589 'name' => 'Grok Code Fast',
1590 'family' => 'grok',
1591 'features' => [ 'completion', 'functions' ],
1592 'price' => [ 'in' => 0.20, 'out' => 1.50 ],
1593 'type' => 'token',
1594 'unit' => 1 / 1000000,
1595 'maxCompletionTokens' => 16384,
1596 'maxContextualTokens' => 256000,
1597 'tags' => [ 'core', 'chat', 'functions' ],
1598 ],
1599 [
1600 'model' => 'grok-3-mini',
1601 'name' => 'Grok 3 Mini',
1602 'family' => 'grok',
1603 'features' => [ 'completion', 'functions' ],
1604 'price' => [ 'in' => 0.30, 'out' => 0.50 ],
1605 'type' => 'token',
1606 'unit' => 1 / 1000000,
1607 'maxCompletionTokens' => 16384,
1608 'maxContextualTokens' => 131072,
1609 'tags' => [ 'core', 'chat', 'functions', 'reasoning' ],
1610 ],
1611 ] );
1612