PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 3.7.3
AI Engine – The Chatbot, AI Framework & MCP for WordPress v3.7.3
3.7.3 3.7.2 3.7.1 3.7.0 3.6.9 3.6.8 3.6.7 3.6.6 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 3 months ago init.php 4 days ago models.php 4 days ago types.php 1 year ago
models.php
1619 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 cut by OpenAI on 2026-08-21 (was 5.00 / 30.00 / 0.50). Announced as
19 // promotional "at least through 2026-11-21", so re-check it after that date.
20 'price' => [
21 'in' => 4.00,
22 'out' => 20.00,
23 'cached' => 0.40,
24 ],
25 'type' => 'token',
26 'unit' => 1 / 1000000,
27 'maxCompletionTokens' => 128000,
28 'maxContextualTokens' => 1050000,
29 'finetune' => false,
30 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity', 'latest'],
31 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
32 'params' => [
33 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
34 'verbosity' => ['low', 'medium', 'high']
35 ]
36 ],
37 /*
38 GPT-5.6 Terra
39 Balanced tier: strong intelligence at mid pricing.
40 https://developers.openai.com/api/docs/models/gpt-5.6-terra
41 */
42 [
43 'model' => 'gpt-5.6-terra',
44 'name' => 'GPT-5.6 Terra',
45 'family' => 'gpt-5',
46 'features' => ['completion'],
47 // Price cut by OpenAI on 2026-07-30 (was 2.50 / 15.00 / 0.25).
48 'price' => [
49 'in' => 2.00,
50 'out' => 12.00,
51 'cached' => 0.20,
52 ],
53 'type' => 'token',
54 'unit' => 1 / 1000000,
55 'maxCompletionTokens' => 128000,
56 'maxContextualTokens' => 1050000,
57 'finetune' => false,
58 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
59 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
60 'params' => [
61 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
62 'verbosity' => ['low', 'medium', 'high']
63 ]
64 ],
65 /*
66 GPT-5.6 Luna
67 Efficient, high-volume tier of the GPT-5.6 family.
68 https://developers.openai.com/api/docs/models/gpt-5.6-luna
69 */
70 [
71 'model' => 'gpt-5.6-luna',
72 'name' => 'GPT-5.6 Luna',
73 'family' => 'gpt-5',
74 'features' => ['completion'],
75 // Price cut by OpenAI on 2026-07-30 (was 1.00 / 6.00 / 0.10).
76 'price' => [
77 'in' => 0.20,
78 'out' => 1.20,
79 'cached' => 0.02,
80 ],
81 'type' => 'token',
82 'unit' => 1 / 1000000,
83 'maxCompletionTokens' => 128000,
84 'maxContextualTokens' => 1050000,
85 'finetune' => false,
86 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
87 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
88 'params' => [
89 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
90 'verbosity' => ['low', 'medium', 'high']
91 ]
92 ],
93 /*
94 GPT-5.5
95 Previous flagship: tool-heavy agents, grounded assistants, long-context retrieval
96 https://developers.openai.com/api/docs/models/gpt-5.5
97 */
98 [
99 'model' => 'gpt-5.5',
100 'name' => 'GPT-5.5',
101 'family' => 'gpt-5',
102 'features' => ['completion'],
103 'price' => [
104 'in' => 5.00,
105 'out' => 30.00,
106 'cached' => 0.50,
107 ],
108 'type' => 'token',
109 'unit' => 1 / 1000000,
110 'maxCompletionTokens' => 128000,
111 'maxContextualTokens' => 1050000,
112 'finetune' => false,
113 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
114 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
115 'params' => [
116 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
117 'verbosity' => ['low', 'medium', 'high']
118 ]
119 ],
120 /*
121 GPT-5.4
122 Our most capable model for professional work
123 https://platform.openai.com/docs/models/gpt-5.4
124 */
125 [
126 'model' => 'gpt-5.4',
127 'name' => 'GPT-5.4',
128 'family' => 'gpt-5',
129 'features' => ['completion'],
130 'price' => [
131 'in' => 2.50,
132 'out' => 15.00,
133 ],
134 'type' => 'token',
135 'unit' => 1 / 1000000,
136 'maxCompletionTokens' => 128000,
137 'maxContextualTokens' => 1050000,
138 'finetune' => false,
139 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
140 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
141 'params' => [
142 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
143 'verbosity' => ['low', 'medium', 'high']
144 ]
145 ],
146 /*
147 GPT-5.4 Pro
148 Most advanced model with enhanced reasoning for complex tasks
149 https://developers.openai.com/api/docs/models/gpt-5.4-pro
150 */
151 [
152 'model' => 'gpt-5.4-pro',
153 'name' => 'GPT-5.4 Pro',
154 'family' => 'gpt-5',
155 'features' => ['completion'],
156 'price' => [
157 'in' => 30.00,
158 'out' => 180.00,
159 ],
160 'type' => 'token',
161 'unit' => 1 / 1000000,
162 'maxCompletionTokens' => 128000,
163 'maxContextualTokens' => 1050000,
164 'finetune' => false,
165 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'responses', 'mcp', 'reasoning'],
166 'tools' => ['web_search', 'image_generation', 'file_search'],
167 'params' => [
168 'reasoning' => ['medium', 'high', 'xhigh'],
169 ]
170 ],
171 /*
172 GPT-5.4 Mini
173 Fast and cost-effective GPT-5.4 variant
174 https://developers.openai.com/api/docs/models/gpt-5.4-mini
175 */
176 [
177 'model' => 'gpt-5.4-mini',
178 'name' => 'GPT-5.4 Mini',
179 'family' => 'gpt-5',
180 'features' => ['completion'],
181 'price' => [
182 'in' => 0.75,
183 'out' => 4.50,
184 ],
185 'type' => 'token',
186 'unit' => 1 / 1000000,
187 'maxCompletionTokens' => 128000,
188 'maxContextualTokens' => 400000,
189 'finetune' => false,
190 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
191 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
192 'params' => [
193 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
194 'verbosity' => ['low', 'medium', 'high']
195 ]
196 ],
197 /*
198 GPT-5.4 Nano
199 Ultra-fast and lightweight GPT-5.4 model
200 https://developers.openai.com/api/docs/models/gpt-5.4-nano
201 */
202 [
203 'model' => 'gpt-5.4-nano',
204 'name' => 'GPT-5.4 Nano',
205 'family' => 'gpt-5',
206 'features' => ['completion'],
207 'price' => [
208 'in' => 0.20,
209 'out' => 1.25,
210 ],
211 'type' => 'token',
212 'unit' => 1 / 1000000,
213 'maxCompletionTokens' => 128000,
214 'maxContextualTokens' => 400000,
215 'finetune' => false,
216 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
217 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
218 'params' => [
219 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
220 'verbosity' => ['low', 'medium', 'high']
221 ]
222 ],
223 /*
224 GPT-5.3 Chat
225 GPT-5.3 model used in ChatGPT
226 https://developers.openai.com/api/docs/models/gpt-5.3-chat-latest
227 Shutdown: August 10, 2026.
228 */
229 [
230 'model' => 'gpt-5.3-chat-latest',
231 'name' => 'GPT-5.3 Chat',
232 'family' => 'gpt-5',
233 'features' => ['completion'],
234 'price' => [
235 'in' => 1.75,
236 'out' => 14.00,
237 ],
238 'type' => 'token',
239 'unit' => 1 / 1000000,
240 'maxCompletionTokens' => 16384,
241 'maxContextualTokens' => 128000,
242 'finetune' => false,
243 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'deprecated'],
244 'tools' => ['image_generation', 'code_interpreter']
245 ],
246 /*
247 GPT-5.2
248 The best model for coding and agentic tasks across industries
249 https://platform.openai.com/docs/models/gpt-5.2
250 */
251 [
252 'model' => 'gpt-5.2',
253 'name' => 'GPT-5.2',
254 'family' => 'gpt-5',
255 'features' => ['completion'],
256 'price' => [
257 'in' => 1.75,
258 'out' => 14.00,
259 ],
260 'type' => 'token',
261 'unit' => 1 / 1000000,
262 'maxCompletionTokens' => 128000,
263 'maxContextualTokens' => 400000,
264 'finetune' => false,
265 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
266 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
267 'params' => [
268 'reasoning' => ['none', 'low', 'medium', 'high', 'xhigh'],
269 'verbosity' => ['low', 'medium', 'high']
270 ]
271 ],
272 /*
273 GPT-5.2 Chat
274 GPT-5.2 model used in ChatGPT
275 https://platform.openai.com/docs/models/gpt-5.2
276 Shutdown: August 10, 2026.
277 */
278 [
279 'model' => 'gpt-5.2-chat-latest',
280 'name' => 'GPT-5.2 Chat',
281 'family' => 'gpt-5',
282 'features' => ['completion'],
283 'price' => [
284 'in' => 1.75,
285 'out' => 14.00,
286 ],
287 'type' => 'token',
288 'unit' => 1 / 1000000,
289 'maxCompletionTokens' => 128000,
290 'maxContextualTokens' => 400000,
291 'finetune' => false,
292 'tags' => ['core', 'chat', 'vision', 'files', 'responses', 'mcp', 'deprecated'],
293 'tools' => ['web_search', 'file_search', 'code_interpreter']
294 ],
295 /*
296 GPT-5.2 Pro
297 Version of GPT-5.2 that produces smarter and more precise responses
298 https://platform.openai.com/docs/models/gpt-5.2-pro
299 */
300 [
301 'model' => 'gpt-5.2-pro',
302 'name' => 'GPT-5.2 Pro',
303 'family' => 'gpt-5',
304 'features' => ['completion'],
305 'price' => [
306 'in' => 21.00,
307 'out' => 168.00,
308 ],
309 'type' => 'token',
310 'unit' => 1 / 1000000,
311 'maxCompletionTokens' => 128000,
312 'maxContextualTokens' => 400000,
313 'finetune' => false,
314 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
315 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
316 'params' => [
317 'reasoning' => ['medium', 'high', 'xhigh'],
318 'verbosity' => ['low', 'medium', 'high']
319 ]
320 ],
321 /*
322 GPT-5.1
323 Demo model with enhanced capabilities
324 https://platform.openai.com/docs/models/gpt-5.1
325 */
326 [
327 'model' => 'gpt-5.1',
328 'name' => 'GPT-5.1',
329 'family' => 'gpt-5',
330 'features' => ['completion'],
331 'price' => [
332 'in' => 1.25,
333 'out' => 10.00,
334 ],
335 'type' => 'token',
336 'unit' => 1 / 1000000,
337 'maxCompletionTokens' => 128000,
338 'maxContextualTokens' => 400000,
339 'finetune' => false,
340 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity'],
341 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
342 'params' => [
343 'reasoning' => ['none', 'minimal', 'low', 'medium', 'high'],
344 'verbosity' => ['low', 'medium', 'high']
345 ]
346 ],
347 /*
348 GPT-5
349 The best model for coding and agentic tasks across domains
350 https://platform.openai.com/docs/models/gpt-5
351 */
352 [
353 'model' => 'gpt-5',
354 'name' => 'GPT-5',
355 'family' => 'gpt-5',
356 'features' => ['completion'],
357 'price' => [
358 'in' => 1.25,
359 'out' => 10.00,
360 ],
361 'type' => 'token',
362 'unit' => 1 / 1000000,
363 'maxCompletionTokens' => 128000,
364 'maxContextualTokens' => 400000,
365 'finetune' => false,
366 // Shutdown: December 10, 2026.
367 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity', 'deprecated'],
368 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
369 'params' => [
370 'reasoning' => ['none', 'minimal', 'low', 'medium', 'high'],
371 'verbosity' => ['low', 'medium', 'high']
372 ]
373 ],
374 /*
375 GPT-5 Mini
376 Efficient and cost-effective GPT-5 variant
377 https://platform.openai.com/docs/models/gpt-5-mini
378 */
379 [
380 'model' => 'gpt-5-mini',
381 'name' => 'GPT-5 Mini',
382 'family' => 'gpt-5',
383 'features' => ['completion'],
384 'price' => [
385 'in' => 0.25,
386 'out' => 2.00,
387 ],
388 'type' => 'token',
389 'unit' => 1 / 1000000,
390 'maxCompletionTokens' => 128000,
391 'maxContextualTokens' => 400000,
392 'finetune' => false,
393 // Shutdown: December 10, 2026.
394 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity', 'deprecated'],
395 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
396 'params' => [
397 'reasoning' => ['none', 'minimal', 'low', 'medium', 'high'],
398 'verbosity' => ['low', 'medium', 'high']
399 ]
400 ],
401 /*
402 GPT-5 Nano
403 Ultra-fast and lightweight GPT-5 model
404 https://platform.openai.com/docs/models/gpt-5-nano
405 */
406 [
407 'model' => 'gpt-5-nano',
408 'name' => 'GPT-5 Nano',
409 'family' => 'gpt-5',
410 'features' => ['completion'],
411 'price' => [
412 'in' => 0.05,
413 'out' => 0.40,
414 ],
415 'type' => 'token',
416 'unit' => 1 / 1000000,
417 'maxCompletionTokens' => 128000,
418 'maxContextualTokens' => 400000,
419 'finetune' => false,
420 // Shutdown: December 10, 2026.
421 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity', 'deprecated'],
422 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
423 'params' => [
424 'reasoning' => ['none', 'minimal', 'low', 'medium', 'high'],
425 'verbosity' => ['low', 'medium', 'high']
426 ]
427 ],
428 /*
429 GPT-5 Chat
430 GPT-5 model used in ChatGPT
431 https://platform.openai.com/docs/models/gpt-5
432 */
433 [
434 'model' => 'gpt-5-chat-latest',
435 'name' => 'GPT-5 Chat',
436 'family' => 'gpt-5',
437 'features' => ['completion'],
438 'price' => [
439 'in' => 1.25,
440 'out' => 10.00,
441 ],
442 'type' => 'token',
443 'unit' => 1 / 1000000,
444 'maxCompletionTokens' => 16384,
445 'maxContextualTokens' => 128000,
446 'finetune' => false,
447 // Shutdown: July 23, 2026.
448 'tags' => ['core', 'chat', 'vision', 'files', 'responses', 'mcp', 'deprecated'],
449 'tools' => ['web_search', 'file_search', 'code_interpreter'],
450 'params' => [
451 'verbosity' => ['low', 'medium', 'high']
452 ]
453 ],
454 /*
455 GPT-5 Pro
456 Version of GPT-5 that produces smarter and more precise responses
457 https://platform.openai.com/docs/models/gpt-5
458 */
459 [
460 'model' => 'gpt-5-pro',
461 'name' => 'GPT-5 Pro',
462 'family' => 'gpt-5',
463 'features' => ['completion'],
464 'price' => [
465 'in' => 15.00,
466 'out' => 120.00,
467 ],
468 'type' => 'token',
469 'unit' => 1 / 1000000,
470 'maxCompletionTokens' => 272000,
471 'maxContextualTokens' => 400000,
472 'finetune' => false,
473 // Shutdown: December 10, 2026.
474 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'json', 'responses', 'mcp', 'reasoning', 'verbosity', 'deprecated'],
475 'tools' => ['web_search', 'image_generation', 'file_search', 'code_interpreter'],
476 'params' => [
477 'reasoning' => ['none', 'minimal', 'low', 'medium', 'high'],
478 'verbosity' => ['low', 'medium', 'high']
479 ]
480 ],
481 /*
482 GPT 4.1
483 Flagship GPT model for complex tasks
484 https://platform.openai.com/docs/models/gpt-4.1
485 */
486 [
487 'model' => 'gpt-4.1',
488 'name' => 'GPT-4.1',
489 'family' => 'gpt-4',
490 'features' => ['completion'],
491 'price' => [
492 'in' => 2.00,
493 'out' => 8.00,
494 ],
495 'type' => 'token',
496 'unit' => 1 / 1000000,
497 'maxCompletionTokens' => 32768,
498 'maxContextualTokens' => 1047576,
499 'finetune' => false,
500 'tags' => ['core', 'chat', 'vision', 'functions', 'json', 'finetune', 'responses', 'mcp', 'deprecated'],
501 'tools' => ['web_search', 'image_generation', 'code_interpreter']
502 ],
503 /*
504 GPT-4.1 mini
505 Balanced for intelligence, speed, and cost
506 https://platform.openai.com/docs/models/gpt-4.1-mini
507 */
508 [
509 'model' => 'gpt-4.1-mini',
510 'name' => 'GPT-4.1 Mini',
511 'family' => 'gpt-4',
512 'features' => ['completion'],
513 'price' => [
514 'in' => 0.40,
515 'out' => 1.60,
516 ],
517 'type' => 'token',
518 'unit' => 1 / 1000000,
519 'maxCompletionTokens' => 32768,
520 'maxContextualTokens' => 1047576,
521 'finetune' => false,
522 'tags' => ['core', 'chat', 'vision', 'functions', 'json', 'finetune', 'responses', 'mcp', 'deprecated'],
523 'tools' => ['web_search', 'image_generation', 'code_interpreter']
524 ],
525 /*
526 GPT-4.1 nano
527 Fastest, most cost-effective GPT-4.1 model
528 https://platform.openai.com/docs/models/gpt-4.1-nano
529 */
530 [
531 'model' => 'gpt-4.1-nano',
532 'name' => 'GPT-4.1 Nano',
533 'family' => 'gpt-4',
534 'features' => ['completion'],
535 'price' => [
536 'in' => 0.10,
537 'out' => 0.40,
538 ],
539 'type' => 'token',
540 'unit' => 1 / 1000000,
541 'maxCompletionTokens' => 32768,
542 'maxContextualTokens' => 1047576,
543 'finetune' => false,
544 // Shutdown: October 23, 2026.
545 'tags' => ['core', 'chat', 'vision', 'functions', 'json', 'finetune', 'responses', 'mcp', 'deprecated'],
546 'tools' => ['image_generation']
547 ],
548 /*
549 GPT-4o
550 Fast, intelligent, flexible GPT model
551 https://platform.openai.com/docs/models/gpt-4o
552 */
553 [
554 'model' => 'gpt-4o',
555 'name' => 'GPT-4o',
556 'family' => 'gpt-4',
557 'features' => ['completion'],
558 'price' => [
559 'in' => 2.50,
560 'out' => 10.00,
561 ],
562 'type' => 'token',
563 'unit' => 1 / 1000000,
564 'maxCompletionTokens' => 16384,
565 'maxContextualTokens' => 128000,
566 'finetune' => false,
567 'tags' => ['core', 'chat', 'vision', 'functions', 'json', 'finetune', 'mcp', 'responses', 'deprecated'],
568 'tools' => ['web_search', 'image_generation', 'code_interpreter']
569 ],
570 /*
571 GPT-4o mini
572 Fast, affordable small model for focused tasks
573 https://platform.openai.com/docs/models/gpt-4o-mini
574 */
575 [
576 'model' => 'gpt-4o-mini',
577 'name' => 'GPT-4o Mini',
578 'family' => 'gpt-4',
579 'features' => ['completion'],
580 'price' => [
581 'in' => 0.15,
582 'out' => 0.60,
583 ],
584 'type' => 'token',
585 'unit' => 1 / 1000000,
586 'maxCompletionTokens' => 16384,
587 'maxContextualTokens' => 128000,
588 'finetune' => [
589 'in' => 0.15,
590 'out' => 0.60,
591 'train' => 3.00
592 ],
593 'tags' => ['core', 'chat', 'vision', 'functions', 'json', 'finetune', 'mcp', 'responses', 'deprecated'],
594 'tools' => ['web_search', 'image_generation', 'code_interpreter']
595 ],
596 /*
597 o3
598 Advanced reasoning model
599 https://platform.openai.com/docs/models/o3
600 */
601 [
602 'model' => 'o3',
603 'name' => 'o3',
604 'family' => 'o3',
605 'features' => ['completion'],
606 // We were still on o3's launch-era pricing, so every o3 query was costed 7.5x too high.
607 'price' => [
608 'in' => 2.00,
609 'out' => 8.00,
610 ],
611 'type' => 'token',
612 'unit' => 1 / 1000000,
613 'maxCompletionTokens' => 100000,
614 'maxContextualTokens' => 200000,
615 'tags' => ['core', 'chat', 'o1-model', 'reasoning', 'responses', 'mcp'],
616 'tools' => ['web_search', 'image_generation', 'code_interpreter']
617 ],
618 /*
619 o3-mini
620 Fast, flexible, intelligent reasoning model
621 https://platform.openai.com/docs/models/o3-mini
622 */
623 [
624 'model' => 'o3-mini',
625 'name' => 'o3 Mini',
626 'family' => 'o3',
627 'features' => ['completion'],
628 'price' => [
629 'in' => 1.10,
630 'out' => 4.40,
631 ],
632 'type' => 'token',
633 'unit' => 1 / 1000000,
634 'maxCompletionTokens' => 100000,
635 'maxContextualTokens' => 200000,
636 // Shutdown: October 23, 2026.
637 'tags' => ['core', 'chat', 'o1-model', 'reasoning', 'responses', 'mcp', 'deprecated'],
638 'tools' => ['web_search', 'image_generation', 'code_interpreter']
639 ],
640 /*
641 GPT Realtime 2
642 Voice model with GPT-5-class reasoning, stronger instruction following, and multilingual support.
643 https://platform.openai.com/docs/models/gpt-realtime-2
644 */
645 [
646 'model' => 'gpt-realtime-2',
647 'name' => 'GPT Realtime 2',
648 'family' => 'realtime',
649 'features' => ['core', 'realtime', 'functions'],
650 'price' => [
651 'text' => [
652 'in' => 4.00,
653 'cache' => 0.40,
654 'out' => 16.00,
655 ],
656 'audio' => [
657 'in' => 32.00,
658 'cache' => 0.40,
659 'out' => 64.00,
660 ],
661 'image' => [
662 'in' => 5.00,
663 'cache' => 0.50,
664 ]
665 ],
666 'type' => 'token',
667 'unit' => 1 / 1000000,
668 'maxCompletionTokens' => 4096,
669 'maxContextualTokens' => 128000,
670 'finetune' => false,
671 'tags' => ['core', 'realtime', 'functions', 'vision', 'mcp']
672 ],
673 /*
674 GPT Realtime
675 Production-ready speech-to-speech model with MCP, image input, and SIP support
676 https://platform.openai.com/docs/models/gpt-realtime
677 */
678 [
679 'model' => 'gpt-realtime',
680 'name' => 'GPT Realtime',
681 'family' => 'realtime',
682 'features' => ['core', 'realtime', 'functions'],
683 'price' => [
684 'text' => [
685 'in' => 4.00,
686 'cache' => 0.40,
687 'out' => 16.00,
688 ],
689 'audio' => [
690 'in' => 32.00,
691 'cache' => 0.40,
692 'out' => 64.00,
693 ],
694 'image' => [
695 'in' => 5.00,
696 'cache' => 0.50,
697 ]
698 ],
699 'type' => 'token',
700 'unit' => 1 / 1000000,
701 'maxCompletionTokens' => 4096,
702 'maxContextualTokens' => 128000,
703 'finetune' => false,
704 'tags' => ['core', 'realtime', 'functions', 'vision', 'mcp']
705 ],
706 /*
707 GPT Realtime Mini
708 Cost-efficient version of GPT Realtime
709 https://platform.openai.com/docs/models/gpt-realtime-mini
710 */
711 [
712 'model' => 'gpt-realtime-mini',
713 'name' => 'GPT Realtime Mini',
714 'family' => 'realtime',
715 'features' => ['core', 'realtime', 'functions'],
716 'price' => [
717 'text' => [
718 'in' => 0.60,
719 'cache' => 0.06,
720 'out' => 2.40,
721 ],
722 'audio' => [
723 'in' => 10.00,
724 'cache' => 0.06,
725 'out' => 20.00,
726 ]
727 ],
728 'type' => 'token',
729 'unit' => 1 / 1000000,
730 'maxCompletionTokens' => 4096,
731 'maxContextualTokens' => 32000,
732 'finetune' => false,
733 'tags' => ['core', 'realtime', 'functions', 'vision', 'deprecated']
734 ],
735 // TODO: gpt-realtime-translate and gpt-realtime-whisper are intentionally
736 // not exposed yet. Both run on their own OpenAI endpoints
737 // (/v1/realtime/translations/client_secrets and the realtime transcription
738 // session) with a one-way streaming contract, no tools, no conversation,
739 // and a different event prefix. They do not fit the chatbot session shape
740 // in premium/realtime.php and would warrant their own "Live Translation"
741 // and "Live Transcription" modes if a clear WordPress use case shows up.
742 /*
743 GPT Image
744 OpenAI's image generation models (token-based pricing)
745 https://platform.openai.com/docs/models/gpt-image-1
746 */
747 [
748 'model' => 'gpt-image-2',
749 'name' => 'GPT Image 2',
750 'family' => 'gpt-image',
751 'features' => ['text-to-image'],
752 'resolutions' => [
753 [
754 'name' => '1024x1024',
755 'label' => '1024x1024'
756 ],
757 [
758 'name' => '1024x1536',
759 'label' => '1024x1536'
760 ],
761 [
762 'name' => '1536x1024',
763 'label' => '1536x1024'
764 ]
765 ],
766 'qualities' => [
767 [ 'name' => 'auto', 'label' => 'Auto' ],
768 [ 'name' => 'low', 'label' => 'Low' ],
769 [ 'name' => 'medium', 'label' => 'Medium' ],
770 [ 'name' => 'high', 'label' => 'High' ]
771 ],
772 'type' => 'token',
773 'mode' => 'image',
774 'price' => [
775 'in' => 8.00,
776 'out' => 30.00,
777 'cached' => 2.00
778 ],
779 'unit' => 1 / 1000000,
780 'finetune' => false,
781 'tags' => ['core', 'image', 'image-edit', 'responses']
782 ],
783 [
784 'model' => 'gpt-image-1.5',
785 'name' => 'GPT Image 1.5',
786 'family' => 'gpt-image',
787 'features' => ['text-to-image'],
788 'resolutions' => [
789 [
790 'name' => '1024x1024',
791 'label' => '1024x1024'
792 ],
793 [
794 'name' => '1024x1536',
795 'label' => '1024x1536'
796 ],
797 [
798 'name' => '1536x1024',
799 'label' => '1536x1024'
800 ]
801 ],
802 'qualities' => [
803 [ 'name' => 'auto', 'label' => 'Auto' ],
804 [ 'name' => 'low', 'label' => 'Low' ],
805 [ 'name' => 'medium', 'label' => 'Medium' ],
806 [ 'name' => 'high', 'label' => 'High' ]
807 ],
808 'type' => 'token',
809 'mode' => 'image',
810 'price' => [
811 'in' => 8.00,
812 'out' => 32.00,
813 'cached' => 2.00
814 ],
815 'unit' => 1 / 1000000,
816 'finetune' => false,
817 // Shutdown: December 1, 2026.
818 'tags' => ['core', 'image', 'image-edit', 'responses', 'deprecated']
819 ],
820 [
821 'model' => 'gpt-image-1',
822 'name' => 'GPT Image 1',
823 'family' => 'gpt-image',
824 'features' => ['text-to-image'],
825 'resolutions' => [
826 [
827 'name' => '1024x1024',
828 'label' => '1024x1024'
829 ],
830 [
831 'name' => '1024x1536',
832 'label' => '1024x1536'
833 ],
834 [
835 'name' => '1536x1024',
836 'label' => '1536x1024'
837 ]
838 ],
839 'qualities' => [
840 [ 'name' => 'auto', 'label' => 'Auto' ],
841 [ 'name' => 'low', 'label' => 'Low' ],
842 [ 'name' => 'medium', 'label' => 'Medium' ],
843 [ 'name' => 'high', 'label' => 'High' ]
844 ],
845 'type' => 'token',
846 'mode' => 'image',
847 'price' => [
848 'in' => 10.00,
849 'out' => 40.00,
850 'cached' => 2.50
851 ],
852 'unit' => 1 / 1000000,
853 'finetune' => false,
854 // Shutdown: October 23, 2026.
855 'tags' => ['core', 'image', 'image-edit', 'responses', 'deprecated']
856 ],
857 [
858 'model' => 'gpt-image-1-mini',
859 'name' => 'GPT Image 1 Mini',
860 'family' => 'gpt-image',
861 'features' => ['text-to-image'],
862 'resolutions' => [
863 [
864 'name' => '1024x1024',
865 'label' => '1024x1024'
866 ],
867 [
868 'name' => '1024x1536',
869 'label' => '1024x1536'
870 ],
871 [
872 'name' => '1536x1024',
873 'label' => '1536x1024'
874 ]
875 ],
876 'qualities' => [
877 [ 'name' => 'auto', 'label' => 'Auto' ],
878 [ 'name' => 'low', 'label' => 'Low' ],
879 [ 'name' => 'medium', 'label' => 'Medium' ],
880 [ 'name' => 'high', 'label' => 'High' ]
881 ],
882 'type' => 'token',
883 'mode' => 'image',
884 'price' => [
885 'in' => 2.50,
886 'out' => 8.00,
887 'cached' => 0.25
888 ],
889 'unit' => 1 / 1000000,
890 'finetune' => false,
891 // Shutdown: December 1, 2026.
892 'tags' => ['core', 'image', 'image-edit', 'responses', 'deprecated']
893 ],
894 /*
895 Sora 2
896 Flagship video generation with synced audio
897 https://platform.openai.com/docs/models/sora-2
898 */
899 [
900 'model' => 'sora-2',
901 'name' => 'Sora 2',
902 'family' => 'sora',
903 'features' => ['text-to-video'],
904 'resolutions' => [
905 [
906 'name' => '720x1280',
907 'label' => 'Portrait (720x1280)',
908 'price' => 0.10
909 ],
910 [
911 'name' => '1280x720',
912 'label' => 'Landscape (1280x720)',
913 'price' => 0.10
914 ]
915 ],
916 'durations' => [ 4, 8, 12 ],
917 'type' => 'video',
918 'unit' => 'second',
919 'finetune' => false,
920 // Shutdown: September 24, 2026.
921 'tags' => ['core', 'video', 'deprecated']
922 ],
923 [
924 'model' => 'sora-2-pro',
925 'name' => 'Sora 2 Pro',
926 'family' => 'sora',
927 'features' => ['text-to-video'],
928 'resolutions' => [
929 [
930 'name' => '720x1280',
931 'label' => 'Portrait (720x1280)',
932 'price' => 0.30
933 ],
934 [
935 'name' => '1280x720',
936 'label' => 'Landscape (1280x720)',
937 'price' => 0.30
938 ],
939 [
940 'name' => '1024x1792',
941 'label' => 'Portrait High (1024x1792)',
942 'price' => 0.50
943 ],
944 [
945 'name' => '1792x1024',
946 'label' => 'Landscape High (1792x1024)',
947 'price' => 0.50
948 ]
949 ],
950 'durations' => [ 4, 8, 12 ],
951 'type' => 'video',
952 'unit' => 'second',
953 'finetune' => false,
954 // Shutdown: September 24, 2026.
955 'tags' => ['core', 'video', 'deprecated']
956 ],
957 // Embedding models:
958 // OpenAI v3 models support Matryoshka embeddings (MRL) allowing dimension truncation
959 // while preserving semantic meaning. The dimensions array lists native + recommended sizes.
960 // See: https://huggingface.co/blog/matryoshka
961 [
962 'model' => 'text-embedding-3-small',
963 'name' => 'Embedding 3-Small',
964 'family' => 'text-embedding',
965 'features' => ['embedding'],
966 'price' => 0.02,
967 'type' => 'token',
968 'unit' => 1 / 1000000,
969 'finetune' => false,
970 'dimensions' => 1536, // Native output dimension
971 'tags' => ['core', 'embedding', 'matryoshka'],
972 ],
973 [
974 'model' => 'text-embedding-3-large',
975 'name' => 'Embedding 3-Large',
976 'family' => 'text-embedding',
977 'features' => ['embedding'],
978 'price' => 0.13,
979 'type' => 'token',
980 'unit' => 1 / 1000000,
981 'finetune' => false,
982 'dimensions' => 3072, // Native output dimension
983 'tags' => ['core', 'embedding', 'matryoshka'],
984 ],
985 // Ada-002 is a legacy model with fixed dimensions (no truncation support)
986 [
987 'model' => 'text-embedding-ada-002',
988 'name' => 'Embedding Ada-002',
989 'family' => 'text-embedding',
990 'features' => ['embedding'],
991 'price' => 0.10,
992 'type' => 'token',
993 'unit' => 1 / 1000000,
994 'finetune' => false,
995 'dimensions' => 1536, // Fixed dimension (no matryoshka support)
996 'tags' => ['core', 'embedding'],
997 ],
998 // Audio Models:
999 [
1000 'model' => 'gpt-4o-transcribe',
1001 'name' => 'GPT-4o Transcribe',
1002 'family' => 'whisper',
1003 'features' => ['speech-to-text'],
1004 'price' => 0.006,
1005 'type' => 'second',
1006 'unit' => 1,
1007 'finetune' => false,
1008 'tags' => ['core', 'audio', 'deprecated'],
1009 ],
1010 [
1011 'model' => 'gpt-4o-mini-transcribe',
1012 'name' => 'GPT-4o Mini Transcribe',
1013 'family' => 'whisper',
1014 'features' => ['speech-to-text'],
1015 'price' => 0.003,
1016 'type' => 'second',
1017 'unit' => 1,
1018 'finetune' => false,
1019 'tags' => ['core', 'audio', 'deprecated'],
1020 ],
1021 [
1022 'model' => 'whisper-1',
1023 'name' => 'Whisper',
1024 'family' => 'whisper',
1025 'features' => ['speech-to-text'],
1026 'price' => 0.006,
1027 'type' => 'second',
1028 'unit' => 1,
1029 'finetune' => false,
1030 'tags' => ['core', 'audio'],
1031 ],
1032 ] );
1033
1034 define( 'MWAI_ANTHROPIC_MODELS', [
1035 [
1036 'model' => 'claude-fable-5',
1037 'name' => 'Claude Fable 5',
1038 'family' => 'claude-5',
1039 'features' => ['completion'],
1040 'price' => [
1041 'in' => 10.00,
1042 'out' => 50.00,
1043 ],
1044 'type' => 'token',
1045 'unit' => 1 / 1000000,
1046 'maxCompletionTokens' => 128000,
1047 'maxContextualTokens' => 1000000,
1048 'finetune' => false,
1049 // Adaptive thinking is always on (no disabled mode, no manual budget, no
1050 // assistant prefill). Our engine never sends those, so no special handling.
1051 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature', 'latest'],
1052 'tools' => ['code_interpreter', 'thinking', 'web_search']
1053 ],
1054 [
1055 'model' => 'claude-opus-5',
1056 'name' => 'Claude Opus 5',
1057 'family' => 'claude-5',
1058 'features' => ['completion'],
1059 'price' => [
1060 'in' => 5.00,
1061 'out' => 25.00,
1062 ],
1063 'type' => 'token',
1064 'unit' => 1 / 1000000,
1065 'maxCompletionTokens' => 128000,
1066 'maxContextualTokens' => 1000000,
1067 'finetune' => false,
1068 // Adaptive thinking (no extended-thinking param). Non-default temperature/
1069 // top_p/top_k are rejected, same as the other Claude 5 models.
1070 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature', 'latest'],
1071 'tools' => ['code_interpreter', 'thinking', 'web_search']
1072 ],
1073 [
1074 'model' => 'claude-opus-4-8',
1075 'name' => 'Claude Opus 4.8',
1076 'family' => 'claude-4',
1077 'features' => ['completion'],
1078 'price' => [
1079 'in' => 5.00,
1080 'out' => 25.00,
1081 ],
1082 'type' => 'token',
1083 'unit' => 1 / 1000000,
1084 'maxCompletionTokens' => 128000,
1085 'maxContextualTokens' => 1000000,
1086 'finetune' => false,
1087 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature'],
1088 'tools' => ['code_interpreter', 'thinking', 'web_search']
1089 ],
1090 [
1091 'model' => 'claude-opus-4-7',
1092 'name' => 'Claude Opus 4.7',
1093 'family' => 'claude-4',
1094 'features' => ['completion'],
1095 'price' => [
1096 'in' => 5.00,
1097 'out' => 25.00,
1098 ],
1099 'type' => 'token',
1100 'unit' => 1 / 1000000,
1101 'maxCompletionTokens' => 128000,
1102 'maxContextualTokens' => 1000000,
1103 'finetune' => false,
1104 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature'],
1105 'tools' => ['code_interpreter', 'thinking', 'web_search']
1106 ],
1107 [
1108 'model' => 'claude-opus-4-6',
1109 'name' => 'Claude Opus 4.6',
1110 'family' => 'claude-4',
1111 'features' => ['completion'],
1112 'price' => [
1113 'in' => 5.00,
1114 'out' => 25.00,
1115 ],
1116 'type' => 'token',
1117 'unit' => 1 / 1000000,
1118 'maxCompletionTokens' => 128000,
1119 'maxContextualTokens' => 1000000,
1120 'finetune' => false,
1121 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1122 'tools' => ['code_interpreter', 'thinking', 'web_search']
1123 ],
1124 [
1125 'model' => 'claude-opus-4-5',
1126 'name' => 'Claude Opus 4.5',
1127 'family' => 'claude-4',
1128 'features' => ['completion'],
1129 'price' => [
1130 'in' => 5.00,
1131 'out' => 25.00,
1132 ],
1133 'type' => 'token',
1134 'unit' => 1 / 1000000,
1135 'maxCompletionTokens' => 64000,
1136 'maxContextualTokens' => 200000,
1137 'finetune' => false,
1138 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1139 'tools' => ['code_interpreter', 'thinking', 'web_search']
1140 ],
1141 [
1142 'model' => 'claude-sonnet-5',
1143 'name' => 'Claude Sonnet 5',
1144 'family' => 'claude-5',
1145 'features' => ['completion'],
1146 // Anthropic made the $2/$10 introductory pricing permanent in August 2026.
1147 'price' => [
1148 'in' => 2.00,
1149 'out' => 10.00,
1150 ],
1151 'type' => 'token',
1152 'unit' => 1 / 1000000,
1153 'maxCompletionTokens' => 128000,
1154 'maxContextualTokens' => 1000000,
1155 'finetune' => false,
1156 // Adaptive thinking is always on (no disabled mode, no manual budget, no
1157 // assistant prefill). Non-default temperature/top_p/top_k are rejected; the
1158 // 'no-temperature' tag stops us sending temperature, and we never send top_p/top_k.
1159 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'no-temperature', 'latest'],
1160 'tools' => ['code_interpreter', 'thinking', 'web_search']
1161 ],
1162 [
1163 'model' => 'claude-sonnet-4-6',
1164 'name' => 'Claude Sonnet 4.6',
1165 'family' => 'claude-4',
1166 'features' => ['completion'],
1167 'price' => [
1168 'in' => 3.00,
1169 'out' => 15.00,
1170 ],
1171 'type' => 'token',
1172 'unit' => 1 / 1000000,
1173 'maxCompletionTokens' => 64000,
1174 'maxContextualTokens' => 1000000,
1175 'finetune' => false,
1176 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1177 'tools' => ['code_interpreter', 'thinking', 'web_search']
1178 ],
1179 [
1180 'model' => 'claude-sonnet-4-5-20250929',
1181 'name' => 'Claude Sonnet 4.5 (2025/09/29)',
1182 'family' => 'claude-4',
1183 'features' => ['completion'],
1184 'price' => [
1185 'in' => 3.00,
1186 'out' => 15.00,
1187 ],
1188 'type' => 'token',
1189 'unit' => 1 / 1000000,
1190 'maxCompletionTokens' => 64000,
1191 'maxContextualTokens' => 200000,
1192 'finetune' => false,
1193 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1194 'tools' => ['code_interpreter', 'thinking', 'web_search']
1195 ],
1196 [
1197 'model' => 'claude-sonnet-4-5',
1198 'name' => 'Claude Sonnet 4.5',
1199 'family' => 'claude-4',
1200 'features' => ['completion'],
1201 'price' => [
1202 'in' => 3.00,
1203 'out' => 15.00,
1204 ],
1205 'type' => 'token',
1206 'unit' => 1 / 1000000,
1207 'maxCompletionTokens' => 64000,
1208 'maxContextualTokens' => 200000,
1209 'finetune' => false,
1210 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1211 'tools' => ['code_interpreter', 'thinking', 'web_search']
1212 ],
1213 [
1214 'model' => 'claude-opus-4-1-20250805',
1215 'name' => 'Claude Opus 4.1 (2025/08/05)',
1216 'family' => 'claude-4',
1217 'features' => ['completion'],
1218 'price' => [
1219 'in' => 15.00,
1220 'out' => 75.00,
1221 ],
1222 'type' => 'token',
1223 'unit' => 1 / 1000000,
1224 'maxCompletionTokens' => 32000,
1225 'maxContextualTokens' => 200000,
1226 'finetune' => false,
1227 // Retired by Anthropic on 2026-08-05: the Claude API now errors on this model.
1228 // Kept listed and tagged 'deprecated' so existing configurations still show what they point at.
1229 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1230 'tools' => ['code_interpreter', 'thinking', 'web_search']
1231 ],
1232 [
1233 'model' => 'claude-opus-4-1',
1234 'name' => 'Claude Opus 4.1',
1235 'family' => 'claude-4',
1236 'features' => ['completion'],
1237 'price' => [
1238 'in' => 15.00,
1239 'out' => 75.00,
1240 ],
1241 'type' => 'token',
1242 'unit' => 1 / 1000000,
1243 'maxCompletionTokens' => 32000,
1244 'maxContextualTokens' => 200000,
1245 'finetune' => false,
1246 // Retired by Anthropic on 2026-08-05: the Claude API now errors on this model.
1247 // Kept listed and tagged 'deprecated' so existing configurations still show what they point at.
1248 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1249 'tools' => ['code_interpreter', 'thinking', 'web_search']
1250 ],
1251 [
1252 'model' => 'claude-opus-4-20250514',
1253 'name' => 'Claude Opus 4 (2025/05/14)',
1254 'family' => 'claude-4',
1255 'features' => ['completion'],
1256 'price' => [
1257 'in' => 15.00,
1258 'out' => 75.00,
1259 ],
1260 'type' => 'token',
1261 'unit' => 1 / 1000000,
1262 'maxCompletionTokens' => 32000,
1263 'maxContextualTokens' => 200000,
1264 'finetune' => false,
1265 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1266 'tools' => ['code_interpreter', 'thinking', 'web_search']
1267 ],
1268 [
1269 'model' => 'claude-opus-4-0',
1270 'name' => 'Claude Opus 4',
1271 'family' => 'claude-4',
1272 'features' => ['completion'],
1273 'price' => [
1274 'in' => 15.00,
1275 'out' => 75.00,
1276 ],
1277 'type' => 'token',
1278 'unit' => 1 / 1000000,
1279 'maxCompletionTokens' => 32000,
1280 'maxContextualTokens' => 200000,
1281 'finetune' => false,
1282 // Deprecated by Anthropic: retires on the Claude API on June 15, 2026.
1283 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1284 'tools' => ['code_interpreter', 'thinking', 'web_search']
1285 ],
1286 [
1287 'model' => 'claude-sonnet-4-20250514',
1288 'name' => 'Claude Sonnet 4 (2025/05/14)',
1289 'family' => 'claude-4',
1290 'features' => ['completion'],
1291 'price' => [
1292 'in' => 3.00,
1293 'out' => 15.00,
1294 ],
1295 'type' => 'token',
1296 'unit' => 1 / 1000000,
1297 'maxCompletionTokens' => 64000,
1298 'maxContextualTokens' => 200000,
1299 'finetune' => false,
1300 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1301 'tools' => ['code_interpreter', 'thinking', 'web_search']
1302 ],
1303 [
1304 'model' => 'claude-sonnet-4-0',
1305 'name' => 'Claude Sonnet 4',
1306 'family' => 'claude-4',
1307 'features' => ['completion'],
1308 'price' => [
1309 'in' => 3.00,
1310 'out' => 15.00,
1311 ],
1312 'type' => 'token',
1313 'unit' => 1 / 1000000,
1314 'maxCompletionTokens' => 64000,
1315 'maxContextualTokens' => 200000,
1316 'finetune' => false,
1317 // Deprecated by Anthropic: retires on the Claude API on June 15, 2026.
1318 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'deprecated'],
1319 'tools' => ['code_interpreter', 'thinking', 'web_search']
1320 ],
1321 [
1322 'model' => 'claude-haiku-4-5-20251001',
1323 'name' => 'Claude-4.5 Haiku (2025/10/01)',
1324 'family' => 'claude-4',
1325 'features' => ['completion'],
1326 'price' => [
1327 'in' => 1.00,
1328 'out' => 5.00,
1329 ],
1330 'type' => 'token',
1331 'unit' => 1 / 1000000,
1332 'maxCompletionTokens' => 64000,
1333 'maxContextualTokens' => 200000,
1334 'finetune' => false,
1335 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1336 'tools' => ['code_interpreter', 'thinking', 'web_search']
1337 ],
1338 [
1339 'model' => 'claude-haiku-4-5',
1340 'name' => 'Claude-4.5 Haiku',
1341 'family' => 'claude-4',
1342 'features' => ['completion'],
1343 'price' => [
1344 'in' => 1.00,
1345 'out' => 5.00,
1346 ],
1347 'type' => 'token',
1348 'unit' => 1 / 1000000,
1349 'maxCompletionTokens' => 64000,
1350 'maxContextualTokens' => 200000,
1351 'finetune' => false,
1352 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp', 'latest'],
1353 'tools' => ['code_interpreter', 'thinking', 'web_search']
1354 ],
1355 [
1356 'model' => 'claude-3-7-sonnet-latest',
1357 'name' => 'Claude-3.7 Sonnet',
1358 'family' => 'claude-3',
1359 'features' => ['completion'],
1360 'price' => [
1361 'in' => 3.00,
1362 'out' => 15.00,
1363 ],
1364 'type' => 'token',
1365 'unit' => 1 / 1000000,
1366 'maxCompletionTokens' => 64000,
1367 'maxContextualTokens' => 200000,
1368 'finetune' => false,
1369 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'reasoning', 'mcp'],
1370 'tools' => ['code_interpreter', 'thinking', 'web_search']
1371 ],
1372 [
1373 'model' => 'claude-3-5-sonnet-latest',
1374 'name' => 'Claude-3.5 Sonnet',
1375 'family' => 'claude-3',
1376 'features' => ['completion'],
1377 'price' => [
1378 'in' => 3.00,
1379 'out' => 15.00,
1380 ],
1381 'type' => 'token',
1382 'unit' => 1 / 1000000,
1383 'maxCompletionTokens' => 4096,
1384 'maxContextualTokens' => 200000,
1385 'finetune' => false,
1386 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'mcp']
1387 ],
1388 [
1389 'model' => 'claude-3-5-sonnet-20241022',
1390 'name' => 'Claude-3.5 Sonnet (2024/10/22)',
1391 'family' => 'claude-3',
1392 'features' => ['completion'],
1393 'price' => [
1394 'in' => 3.00,
1395 'out' => 15.00,
1396 ],
1397 'type' => 'token',
1398 'unit' => 1 / 1000000,
1399 'maxCompletionTokens' => 4096,
1400 'maxContextualTokens' => 200000,
1401 'finetune' => false,
1402 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'mcp']
1403 ],
1404 [
1405 'model' => 'claude-3-5-sonnet-20240620',
1406 'name' => 'Claude-3.5 Sonnet (2024/06/20)',
1407 'family' => 'claude-3',
1408 'features' => ['completion'],
1409 'price' => [
1410 'in' => 3.00,
1411 'out' => 15.00,
1412 ],
1413 'type' => 'token',
1414 'unit' => 1 / 1000000,
1415 'maxCompletionTokens' => 4096,
1416 'maxContextualTokens' => 200000,
1417 'finetune' => false,
1418 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'mcp']
1419 ],
1420 [
1421 'model' => 'claude-3-sonnet-20240229',
1422 'name' => 'Claude-3 Sonnet (2024/02/29)',
1423 'family' => 'claude-3',
1424 'features' => ['completion'],
1425 'price' => [
1426 'in' => 3.00,
1427 'out' => 15.00,
1428 ],
1429 'type' => 'token',
1430 'unit' => 1 / 1000000,
1431 'maxCompletionTokens' => 4096,
1432 'maxContextualTokens' => 200000,
1433 'finetune' => false,
1434 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'deprecated']
1435 ],
1436 [
1437 // Deprecated: Anthropic retired Claude 3 Opus on January 5, 2026.
1438 'model' => 'claude-3-opus-latest',
1439 'name' => 'Claude-3 Opus (Latest)',
1440 'family' => 'claude-3',
1441 'features' => ['completion'],
1442 'price' => [
1443 'in' => 15.00,
1444 'out' => 75.00,
1445 ],
1446 'type' => 'token',
1447 'unit' => 1 / 1000000,
1448 'maxCompletionTokens' => 4096,
1449 'maxContextualTokens' => 200000,
1450 'finetune' => false,
1451 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'deprecated']
1452 ],
1453 [
1454 // Deprecated: Anthropic retired Claude 3 Opus on January 5, 2026.
1455 'model' => 'claude-3-opus-20240229',
1456 'name' => 'Claude-3 Opus (2024/02/29)',
1457 'family' => 'claude-3',
1458 'features' => ['completion'],
1459 'price' => [
1460 'in' => 15.00,
1461 'out' => 75.00,
1462 ],
1463 'type' => 'token',
1464 'unit' => 1 / 1000000,
1465 'maxCompletionTokens' => 4096,
1466 'maxContextualTokens' => 200000,
1467 'finetune' => false,
1468 'tags' => ['core', 'chat', 'vision', 'files', 'functions', 'deprecated']
1469 ],
1470 [
1471 'model' => 'claude-3-5-haiku-20241022',
1472 'name' => 'Claude-3.5 Haiku (2024/10/22)',
1473 'family' => 'claude-3',
1474 'features' => ['completion'],
1475 'price' => [
1476 'in' => 0.80,
1477 'out' => 4.00,
1478 ],
1479 'type' => 'token',
1480 'unit' => 1 / 1000000,
1481 'maxCompletionTokens' => 8192,
1482 'maxContextualTokens' => 200000,
1483 'finetune' => false,
1484 'tags' => ['core', 'chat', 'vision', 'files'],
1485 'tools' => ['code_interpreter']
1486 ],
1487 [
1488 'model' => 'claude-3-5-haiku-latest',
1489 'name' => 'Claude-3.5 Haiku',
1490 'family' => 'claude-3',
1491 'features' => ['completion'],
1492 'price' => [
1493 'in' => 0.80,
1494 'out' => 4.00,
1495 ],
1496 'type' => 'token',
1497 'unit' => 1 / 1000000,
1498 'maxCompletionTokens' => 8192,
1499 'maxContextualTokens' => 200000,
1500 'finetune' => false,
1501 'tags' => ['core', 'chat', 'vision', 'files', 'latest'],
1502 'tools' => ['code_interpreter']
1503 ],
1504 [
1505 'model' => 'claude-3-haiku-20240307',
1506 'name' => 'Claude-3 Haiku (2024/03/07)',
1507 'family' => 'claude-3',
1508 'features' => ['completion'],
1509 'price' => [
1510 'in' => 0.25,
1511 'out' => 1.25,
1512 ],
1513 'type' => 'token',
1514 'unit' => 1 / 1000000,
1515 'maxCompletionTokens' => 4096,
1516 'maxContextualTokens' => 200000,
1517 'finetune' => false,
1518 'tags' => ['core', 'chat', 'vision', 'files', 'functions']
1519 ]
1520 ] );
1521
1522 define( 'MWAI_PERPLEXITY_MODELS', [
1523 [
1524 'model' => 'sonar-pro',
1525 'name' => 'Sonar Pro',
1526 'family' => 'sonar',
1527 'features' => ['completion'],
1528 'price' => [
1529 'in' => 3.00,
1530 'out' => 15.00,
1531 'search' => 5.00,
1532 ],
1533 'type' => 'token',
1534 'unit' => 1 / 1000000,
1535 'searchUnit' => 1 / 1000,
1536 'maxCompletionTokens' => 8192,
1537 'maxContextualTokens' => 200000,
1538 'finetune' => false,
1539 'tags' => ['core', 'chat'],
1540 ],
1541 [
1542 'model' => 'sonar',
1543 'name' => 'Sonar',
1544 'family' => 'sonar',
1545 'features' => ['completion'],
1546 'price' => [
1547 'in' => 1.00,
1548 'out' => 1.00,
1549 'search' => 5.00,
1550 ],
1551 'type' => 'token',
1552 'unit' => 1 / 1000000,
1553 'searchUnit' => 1 / 1000,
1554 'maxCompletionTokens' => 4096,
1555 'maxContextualTokens' => 127000,
1556 'finetune' => false,
1557 'tags' => ['core', 'chat'],
1558 ],
1559 ] );
1560
1561 // Mistral AI Models
1562 // Models are fetched dynamically from the Mistral API
1563 define( 'MWAI_MISTRAL_MODELS', [] );
1564
1565 // xAI (Grok) Models
1566 // Models are fetched dynamically from the xAI API. The fallback list below mirrors the
1567 // chat-capable models that xAI publishes on https://docs.x.ai/docs/models, used only when
1568 // the dynamic fetch fails (e.g. invalid key during preflight).
1569 define( 'MWAI_XAI_MODELS', [
1570 [
1571 'model' => 'grok-4',
1572 'name' => 'Grok 4',
1573 'family' => 'grok',
1574 'features' => [ 'completion', 'functions' ],
1575 'price' => [ 'in' => 3.00, 'out' => 15.00 ],
1576 'type' => 'token',
1577 'unit' => 1 / 1000000,
1578 'maxCompletionTokens' => 16384,
1579 'maxContextualTokens' => 256000,
1580 'tags' => [ 'core', 'chat', 'functions', 'vision', 'reasoning' ],
1581 ],
1582 [
1583 'model' => 'grok-4-fast',
1584 'name' => 'Grok 4 Fast',
1585 'family' => 'grok',
1586 'features' => [ 'completion', 'functions' ],
1587 'price' => [ 'in' => 0.20, 'out' => 0.50 ],
1588 'type' => 'token',
1589 'unit' => 1 / 1000000,
1590 'maxCompletionTokens' => 16384,
1591 'maxContextualTokens' => 256000,
1592 'tags' => [ 'core', 'chat', 'functions', 'vision', 'reasoning' ],
1593 ],
1594 [
1595 'model' => 'grok-code-fast-1',
1596 'name' => 'Grok Code Fast',
1597 'family' => 'grok',
1598 'features' => [ 'completion', 'functions' ],
1599 'price' => [ 'in' => 0.20, 'out' => 1.50 ],
1600 'type' => 'token',
1601 'unit' => 1 / 1000000,
1602 'maxCompletionTokens' => 16384,
1603 'maxContextualTokens' => 256000,
1604 'tags' => [ 'core', 'chat', 'functions' ],
1605 ],
1606 [
1607 'model' => 'grok-3-mini',
1608 'name' => 'Grok 3 Mini',
1609 'family' => 'grok',
1610 'features' => [ 'completion', 'functions' ],
1611 'price' => [ 'in' => 0.30, 'out' => 0.50 ],
1612 'type' => 'token',
1613 'unit' => 1 / 1000000,
1614 'maxCompletionTokens' => 16384,
1615 'maxContextualTokens' => 131072,
1616 'tags' => [ 'core', 'chat', 'functions', 'reasoning' ],
1617 ],
1618 ] );
1619