llm.rb 8.1.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +196 -6
  3. data/README.md +233 -518
  4. data/data/anthropic.json +278 -258
  5. data/data/bedrock.json +1288 -1561
  6. data/data/deepseek.json +38 -38
  7. data/data/google.json +656 -579
  8. data/data/openai.json +860 -818
  9. data/data/xai.json +243 -552
  10. data/data/zai.json +168 -168
  11. data/lib/llm/active_record/acts_as_agent.rb +5 -0
  12. data/lib/llm/active_record/acts_as_llm.rb +7 -8
  13. data/lib/llm/active_record.rb +1 -6
  14. data/lib/llm/agent.rb +121 -82
  15. data/lib/llm/context.rb +79 -74
  16. data/lib/llm/contract/completion.rb +45 -0
  17. data/lib/llm/cost.rb +81 -4
  18. data/lib/llm/error.rb +1 -1
  19. data/lib/llm/function/array.rb +8 -5
  20. data/lib/llm/function/call_group.rb +39 -0
  21. data/lib/llm/function/call_task.rb +46 -0
  22. data/lib/llm/function/fork/task.rb +6 -0
  23. data/lib/llm/function/ractor/task.rb +6 -0
  24. data/lib/llm/function/task.rb +10 -0
  25. data/lib/llm/function.rb +28 -1
  26. data/lib/llm/mcp/transport/http.rb +26 -46
  27. data/lib/llm/mcp/transport/stdio.rb +0 -8
  28. data/lib/llm/mcp.rb +6 -23
  29. data/lib/llm/provider.rb +30 -20
  30. data/lib/llm/providers/anthropic/error_handler.rb +6 -7
  31. data/lib/llm/providers/anthropic/files.rb +2 -2
  32. data/lib/llm/providers/anthropic/response_adapter/completion.rb +30 -0
  33. data/lib/llm/providers/anthropic/stream_parser.rb +2 -2
  34. data/lib/llm/providers/anthropic.rb +1 -1
  35. data/lib/llm/providers/bedrock/error_handler.rb +8 -9
  36. data/lib/llm/providers/bedrock/models.rb +13 -13
  37. data/lib/llm/providers/bedrock/response_adapter/completion.rb +30 -0
  38. data/lib/llm/providers/bedrock/stream_parser.rb +2 -2
  39. data/lib/llm/providers/bedrock.rb +1 -1
  40. data/lib/llm/providers/google/error_handler.rb +6 -7
  41. data/lib/llm/providers/google/files.rb +2 -4
  42. data/lib/llm/providers/google/images.rb +1 -1
  43. data/lib/llm/providers/google/models.rb +0 -2
  44. data/lib/llm/providers/google/response_adapter/completion.rb +30 -0
  45. data/lib/llm/providers/google/stream_parser.rb +2 -2
  46. data/lib/llm/providers/google.rb +1 -1
  47. data/lib/llm/providers/ollama/error_handler.rb +6 -7
  48. data/lib/llm/providers/ollama/models.rb +0 -2
  49. data/lib/llm/providers/ollama/response_adapter/completion.rb +30 -0
  50. data/lib/llm/providers/ollama.rb +1 -1
  51. data/lib/llm/providers/openai/audio.rb +3 -3
  52. data/lib/llm/providers/openai/error_handler.rb +6 -7
  53. data/lib/llm/providers/openai/files.rb +2 -2
  54. data/lib/llm/providers/openai/images.rb +3 -3
  55. data/lib/llm/providers/openai/models.rb +1 -1
  56. data/lib/llm/providers/openai/response_adapter/completion.rb +42 -0
  57. data/lib/llm/providers/openai/response_adapter/responds.rb +39 -0
  58. data/lib/llm/providers/openai/responses/stream_parser.rb +2 -2
  59. data/lib/llm/providers/openai/responses.rb +2 -2
  60. data/lib/llm/providers/openai/stream_parser.rb +2 -2
  61. data/lib/llm/providers/openai/vector_stores.rb +1 -1
  62. data/lib/llm/providers/openai.rb +1 -1
  63. data/lib/llm/response.rb +10 -8
  64. data/lib/llm/schema.rb +11 -0
  65. data/lib/llm/sequel/agent.rb +5 -0
  66. data/lib/llm/sequel/plugin.rb +8 -14
  67. data/lib/llm/stream/queue.rb +15 -42
  68. data/lib/llm/stream.rb +15 -40
  69. data/lib/llm/tool/param.rb +1 -8
  70. data/lib/llm/transport/execution.rb +67 -0
  71. data/lib/llm/transport/http.rb +134 -0
  72. data/lib/llm/transport/persistent_http.rb +152 -0
  73. data/lib/llm/transport/response/http.rb +113 -0
  74. data/lib/llm/transport/response.rb +112 -0
  75. data/lib/llm/{provider/transport/http → transport}/stream_decoder.rb +8 -4
  76. data/lib/llm/transport.rb +139 -0
  77. data/lib/llm/usage.rb +14 -5
  78. data/lib/llm/utils.rb +24 -14
  79. data/lib/llm/version.rb +1 -1
  80. data/lib/llm.rb +3 -12
  81. data/llm.gemspec +2 -16
  82. metadata +13 -20
  83. data/lib/llm/bot.rb +0 -3
  84. data/lib/llm/provider/transport/http/execution.rb +0 -115
  85. data/lib/llm/provider/transport/http/interruptible.rb +0 -114
  86. data/lib/llm/provider/transport/http.rb +0 -145
data/data/xai.json CHANGED
@@ -7,233 +7,14 @@
7
7
  "name": "xAI",
8
8
  "doc": "https://docs.x.ai/docs/models",
9
9
  "models": {
10
- "grok-2-1212": {
11
- "id": "grok-2-1212",
12
- "name": "Grok 2 (1212)",
13
- "family": "grok",
14
- "attachment": false,
15
- "reasoning": false,
16
- "tool_call": true,
17
- "temperature": true,
18
- "knowledge": "2024-08",
19
- "release_date": "2024-12-12",
20
- "last_updated": "2024-12-12",
21
- "modalities": {
22
- "input": [
23
- "text"
24
- ],
25
- "output": [
26
- "text"
27
- ]
28
- },
29
- "open_weights": false,
30
- "cost": {
31
- "input": 2,
32
- "output": 10,
33
- "cache_read": 2
34
- },
35
- "limit": {
36
- "context": 131072,
37
- "output": 8192
38
- }
39
- },
40
- "grok-vision-beta": {
41
- "id": "grok-vision-beta",
42
- "name": "Grok Vision Beta",
43
- "family": "grok-vision",
44
- "attachment": true,
45
- "reasoning": false,
46
- "tool_call": true,
47
- "temperature": true,
48
- "knowledge": "2024-08",
49
- "release_date": "2024-11-01",
50
- "last_updated": "2024-11-01",
51
- "modalities": {
52
- "input": [
53
- "text",
54
- "image"
55
- ],
56
- "output": [
57
- "text"
58
- ]
59
- },
60
- "open_weights": false,
61
- "cost": {
62
- "input": 5,
63
- "output": 15,
64
- "cache_read": 5
65
- },
66
- "limit": {
67
- "context": 8192,
68
- "output": 4096
69
- }
70
- },
71
- "grok-4.3": {
72
- "id": "grok-4.3",
73
- "name": "Grok 4.3",
74
- "family": "grok",
75
- "attachment": true,
76
- "reasoning": true,
77
- "tool_call": true,
78
- "temperature": true,
79
- "release_date": "2026-05-01",
80
- "last_updated": "2026-05-01",
81
- "modalities": {
82
- "input": [
83
- "text",
84
- "image"
85
- ],
86
- "output": [
87
- "text"
88
- ]
89
- },
90
- "open_weights": false,
91
- "cost": {
92
- "input": 1.25,
93
- "output": 2.5,
94
- "cache_read": 0.2,
95
- "context_over_200k": {
96
- "input": 2.5,
97
- "output": 5,
98
- "cache_read": 0.4
99
- }
100
- },
101
- "limit": {
102
- "context": 1000000,
103
- "output": 30000
104
- }
105
- },
106
- "grok-3-mini-fast": {
107
- "id": "grok-3-mini-fast",
108
- "name": "Grok 3 Mini Fast",
109
- "family": "grok",
110
- "attachment": false,
111
- "reasoning": true,
112
- "tool_call": true,
113
- "temperature": true,
114
- "knowledge": "2024-11",
115
- "release_date": "2025-02-17",
116
- "last_updated": "2025-02-17",
117
- "modalities": {
118
- "input": [
119
- "text"
120
- ],
121
- "output": [
122
- "text"
123
- ]
124
- },
125
- "open_weights": false,
126
- "cost": {
127
- "input": 0.6,
128
- "output": 4,
129
- "reasoning": 4,
130
- "cache_read": 0.15
131
- },
132
- "limit": {
133
- "context": 131072,
134
- "output": 8192
135
- }
136
- },
137
- "grok-3-mini-latest": {
138
- "id": "grok-3-mini-latest",
139
- "name": "Grok 3 Mini Latest",
140
- "family": "grok",
141
- "attachment": false,
142
- "reasoning": true,
143
- "tool_call": true,
144
- "temperature": true,
145
- "knowledge": "2024-11",
146
- "release_date": "2025-02-17",
147
- "last_updated": "2025-02-17",
148
- "modalities": {
149
- "input": [
150
- "text"
151
- ],
152
- "output": [
153
- "text"
154
- ]
155
- },
156
- "open_weights": false,
157
- "cost": {
158
- "input": 0.3,
159
- "output": 0.5,
160
- "reasoning": 0.5,
161
- "cache_read": 0.075
162
- },
163
- "limit": {
164
- "context": 131072,
165
- "output": 8192
166
- }
167
- },
168
- "grok-3-fast": {
169
- "id": "grok-3-fast",
170
- "name": "Grok 3 Fast",
171
- "family": "grok",
172
- "attachment": false,
173
- "reasoning": false,
174
- "tool_call": true,
175
- "temperature": true,
176
- "knowledge": "2024-11",
177
- "release_date": "2025-02-17",
178
- "last_updated": "2025-02-17",
179
- "modalities": {
180
- "input": [
181
- "text"
182
- ],
183
- "output": [
184
- "text"
185
- ]
186
- },
187
- "open_weights": false,
188
- "cost": {
189
- "input": 5,
190
- "output": 25,
191
- "cache_read": 1.25
192
- },
193
- "limit": {
194
- "context": 131072,
195
- "output": 8192
196
- }
197
- },
198
- "grok-2-vision-latest": {
199
- "id": "grok-2-vision-latest",
200
- "name": "Grok 2 Vision Latest",
10
+ "grok-4.20-0309-non-reasoning": {
11
+ "id": "grok-4.20-0309-non-reasoning",
12
+ "name": "Grok 4.20 (Non-Reasoning)",
201
13
  "family": "grok",
202
14
  "attachment": true,
203
15
  "reasoning": false,
204
16
  "tool_call": true,
205
17
  "temperature": true,
206
- "knowledge": "2024-08",
207
- "release_date": "2024-08-20",
208
- "last_updated": "2024-12-12",
209
- "modalities": {
210
- "input": [
211
- "text",
212
- "image"
213
- ],
214
- "output": [
215
- "text"
216
- ]
217
- },
218
- "open_weights": false,
219
- "cost": {
220
- "input": 2,
221
- "output": 10,
222
- "cache_read": 2
223
- },
224
- "limit": {
225
- "context": 8192,
226
- "output": 4096
227
- }
228
- },
229
- "grok-4.20-0309-reasoning": {
230
- "id": "grok-4.20-0309-reasoning",
231
- "name": "Grok 4.20 (Reasoning)",
232
- "family": "grok",
233
- "attachment": true,
234
- "reasoning": true,
235
- "tool_call": true,
236
- "temperature": true,
237
18
  "release_date": "2026-03-09",
238
19
  "last_updated": "2026-03-09",
239
20
  "modalities": {
@@ -246,210 +27,38 @@
246
27
  ]
247
28
  },
248
29
  "open_weights": false,
249
- "cost": {
250
- "input": 2,
251
- "output": 6,
252
- "cache_read": 0.2,
253
- "context_over_200k": {
254
- "input": 4,
255
- "output": 12,
256
- "cache_read": 0.4
257
- }
258
- },
259
- "limit": {
260
- "context": 2000000,
261
- "output": 30000
262
- }
263
- },
264
- "grok-4-1-fast-non-reasoning": {
265
- "id": "grok-4-1-fast-non-reasoning",
266
- "name": "Grok 4.1 Fast (Non-Reasoning)",
267
- "family": "grok",
268
- "attachment": true,
269
- "reasoning": false,
270
- "tool_call": true,
271
- "temperature": true,
272
- "knowledge": "2025-07",
273
- "release_date": "2025-11-19",
274
- "last_updated": "2025-11-19",
275
- "modalities": {
276
- "input": [
277
- "text",
278
- "image"
279
- ],
280
- "output": [
281
- "text"
282
- ]
283
- },
284
- "open_weights": false,
285
- "cost": {
286
- "input": 0.2,
287
- "output": 0.5,
288
- "cache_read": 0.05
289
- },
290
30
  "limit": {
291
31
  "context": 2000000,
292
32
  "output": 30000
293
- }
294
- },
295
- "grok-3-mini-fast-latest": {
296
- "id": "grok-3-mini-fast-latest",
297
- "name": "Grok 3 Mini Fast Latest",
298
- "family": "grok",
299
- "attachment": false,
300
- "reasoning": true,
301
- "tool_call": true,
302
- "temperature": true,
303
- "knowledge": "2024-11",
304
- "release_date": "2025-02-17",
305
- "last_updated": "2025-02-17",
306
- "modalities": {
307
- "input": [
308
- "text"
309
- ],
310
- "output": [
311
- "text"
312
- ]
313
33
  },
314
- "open_weights": false,
315
- "cost": {
316
- "input": 0.6,
317
- "output": 4,
318
- "reasoning": 4,
319
- "cache_read": 0.15
320
- },
321
- "limit": {
322
- "context": 131072,
323
- "output": 8192
324
- }
325
- },
326
- "grok-4-fast": {
327
- "id": "grok-4-fast",
328
- "name": "Grok 4 Fast",
329
- "family": "grok",
330
- "attachment": true,
331
- "reasoning": true,
332
- "tool_call": true,
333
- "temperature": true,
334
- "knowledge": "2025-07",
335
- "release_date": "2025-09-19",
336
- "last_updated": "2025-09-19",
337
- "modalities": {
338
- "input": [
339
- "text",
340
- "image"
341
- ],
342
- "output": [
343
- "text"
344
- ]
345
- },
346
- "open_weights": false,
347
- "cost": {
348
- "input": 0.2,
349
- "output": 0.5,
350
- "cache_read": 0.05
351
- },
352
- "limit": {
353
- "context": 2000000,
354
- "output": 30000
355
- }
356
- },
357
- "grok-3-latest": {
358
- "id": "grok-3-latest",
359
- "name": "Grok 3 Latest",
360
- "family": "grok",
361
- "attachment": false,
362
- "reasoning": false,
363
- "tool_call": true,
364
- "temperature": true,
365
- "knowledge": "2024-11",
366
- "release_date": "2025-02-17",
367
- "last_updated": "2025-02-17",
368
- "modalities": {
369
- "input": [
370
- "text"
371
- ],
372
- "output": [
373
- "text"
374
- ]
375
- },
376
- "open_weights": false,
377
- "cost": {
378
- "input": 3,
379
- "output": 15,
380
- "cache_read": 0.75
381
- },
382
- "limit": {
383
- "context": 131072,
384
- "output": 8192
385
- }
386
- },
387
- "grok-2": {
388
- "id": "grok-2",
389
- "name": "Grok 2",
390
- "family": "grok",
391
- "attachment": false,
392
- "reasoning": false,
393
- "tool_call": true,
394
- "temperature": true,
395
- "knowledge": "2024-08",
396
- "release_date": "2024-08-20",
397
- "last_updated": "2024-08-20",
398
- "modalities": {
399
- "input": [
400
- "text"
401
- ],
402
- "output": [
403
- "text"
404
- ]
405
- },
406
- "open_weights": false,
407
34
  "cost": {
408
35
  "input": 2,
409
- "output": 10,
410
- "cache_read": 2
411
- },
412
- "limit": {
413
- "context": 131072,
414
- "output": 8192
415
- }
416
- },
417
- "grok-code-fast-1": {
418
- "id": "grok-code-fast-1",
419
- "name": "Grok Code Fast 1",
420
- "family": "grok",
421
- "attachment": false,
422
- "reasoning": true,
423
- "tool_call": true,
424
- "temperature": true,
425
- "knowledge": "2023-10",
426
- "release_date": "2025-08-28",
427
- "last_updated": "2025-08-28",
428
- "modalities": {
429
- "input": [
430
- "text"
36
+ "output": 6,
37
+ "cache_read": 0.2,
38
+ "tiers": [
39
+ {
40
+ "input": 4,
41
+ "output": 12,
42
+ "cache_read": 0.4,
43
+ "tier": {
44
+ "type": "context",
45
+ "size": 200000
46
+ }
47
+ }
431
48
  ],
432
- "output": [
433
- "text"
434
- ]
435
- },
436
- "open_weights": false,
437
- "cost": {
438
- "input": 0.2,
439
- "output": 1.5,
440
- "cache_read": 0.02
441
- },
442
- "limit": {
443
- "context": 256000,
444
- "output": 10000
49
+ "context_over_200k": {
50
+ "input": 4,
51
+ "output": 12,
52
+ "cache_read": 0.4
53
+ }
445
54
  }
446
55
  },
447
- "grok-4.20-0309-non-reasoning": {
448
- "id": "grok-4.20-0309-non-reasoning",
449
- "name": "Grok 4.20 (Non-Reasoning)",
56
+ "grok-4.20-0309-reasoning": {
57
+ "id": "grok-4.20-0309-reasoning",
58
+ "name": "Grok 4.20 (Reasoning)",
450
59
  "family": "grok",
451
60
  "attachment": true,
452
- "reasoning": false,
61
+ "reasoning": true,
453
62
  "tool_call": true,
454
63
  "temperature": true,
455
64
  "release_date": "2026-03-09",
@@ -464,61 +73,74 @@
464
73
  ]
465
74
  },
466
75
  "open_weights": false,
76
+ "limit": {
77
+ "context": 2000000,
78
+ "output": 30000
79
+ },
467
80
  "cost": {
468
81
  "input": 2,
469
82
  "output": 6,
470
83
  "cache_read": 0.2,
84
+ "tiers": [
85
+ {
86
+ "input": 4,
87
+ "output": 12,
88
+ "cache_read": 0.4,
89
+ "tier": {
90
+ "type": "context",
91
+ "size": 200000
92
+ }
93
+ }
94
+ ],
471
95
  "context_over_200k": {
472
96
  "input": 4,
473
97
  "output": 12,
474
98
  "cache_read": 0.4
475
99
  }
476
- },
477
- "limit": {
478
- "context": 2000000,
479
- "output": 30000
480
100
  }
481
101
  },
482
- "grok-3-fast-latest": {
483
- "id": "grok-3-fast-latest",
484
- "name": "Grok 3 Fast Latest",
485
- "family": "grok",
486
- "attachment": false,
102
+ "grok-vision-beta": {
103
+ "id": "grok-vision-beta",
104
+ "name": "Grok Vision Beta",
105
+ "family": "grok-vision",
106
+ "attachment": true,
487
107
  "reasoning": false,
488
108
  "tool_call": true,
489
109
  "temperature": true,
490
- "knowledge": "2024-11",
491
- "release_date": "2025-02-17",
492
- "last_updated": "2025-02-17",
110
+ "knowledge": "2024-08",
111
+ "release_date": "2024-11-01",
112
+ "last_updated": "2024-11-01",
493
113
  "modalities": {
494
114
  "input": [
495
- "text"
115
+ "text",
116
+ "image"
496
117
  ],
497
118
  "output": [
498
119
  "text"
499
120
  ]
500
121
  },
501
122
  "open_weights": false,
123
+ "limit": {
124
+ "context": 8192,
125
+ "output": 4096
126
+ },
502
127
  "cost": {
503
128
  "input": 5,
504
- "output": 25,
505
- "cache_read": 1.25
506
- },
507
- "limit": {
508
- "context": 131072,
509
- "output": 8192
129
+ "output": 15,
130
+ "cache_read": 5
510
131
  }
511
132
  },
512
- "grok-4.20-multi-agent-0309": {
513
- "id": "grok-4.20-multi-agent-0309",
514
- "name": "Grok 4.20 Multi-Agent",
133
+ "grok-2-vision-1212": {
134
+ "id": "grok-2-vision-1212",
135
+ "name": "Grok 2 Vision (1212)",
515
136
  "family": "grok",
516
137
  "attachment": true,
517
- "reasoning": true,
518
- "tool_call": false,
138
+ "reasoning": false,
139
+ "tool_call": true,
519
140
  "temperature": true,
520
- "release_date": "2026-03-09",
521
- "last_updated": "2026-03-09",
141
+ "knowledge": "2024-08",
142
+ "release_date": "2024-08-20",
143
+ "last_updated": "2024-12-12",
522
144
  "modalities": {
523
145
  "input": [
524
146
  "text",
@@ -529,62 +151,51 @@
529
151
  ]
530
152
  },
531
153
  "open_weights": false,
154
+ "limit": {
155
+ "context": 8192,
156
+ "output": 4096
157
+ },
532
158
  "cost": {
533
159
  "input": 2,
534
- "output": 6,
535
- "cache_read": 0.2,
536
- "context_over_200k": {
537
- "input": 4,
538
- "output": 12,
539
- "cache_read": 0.4
540
- }
541
- },
542
- "limit": {
543
- "context": 2000000,
544
- "output": 30000
160
+ "output": 10,
161
+ "cache_read": 2
545
162
  }
546
163
  },
547
- "grok-4": {
548
- "id": "grok-4",
549
- "name": "Grok 4",
164
+ "grok-imagine-image-quality": {
165
+ "id": "grok-imagine-image-quality",
166
+ "name": "Grok Imagine Image Quality",
550
167
  "family": "grok",
551
- "attachment": false,
552
- "reasoning": true,
553
- "tool_call": true,
554
- "temperature": true,
555
- "knowledge": "2025-07",
556
- "release_date": "2025-07-09",
557
- "last_updated": "2025-07-09",
168
+ "attachment": true,
169
+ "reasoning": false,
170
+ "tool_call": false,
171
+ "temperature": false,
172
+ "release_date": "2026-04",
173
+ "last_updated": "2026-05-16",
558
174
  "modalities": {
559
175
  "input": [
560
- "text"
176
+ "text",
177
+ "image"
561
178
  ],
562
179
  "output": [
563
- "text"
180
+ "image"
564
181
  ]
565
182
  },
566
183
  "open_weights": false,
567
- "cost": {
568
- "input": 3,
569
- "output": 15,
570
- "reasoning": 15,
571
- "cache_read": 0.75
572
- },
573
184
  "limit": {
574
- "context": 256000,
575
- "output": 64000
185
+ "context": 1024,
186
+ "output": 0
576
187
  }
577
188
  },
578
- "grok-2-latest": {
579
- "id": "grok-2-latest",
580
- "name": "Grok 2 Latest",
189
+ "grok-2-1212": {
190
+ "id": "grok-2-1212",
191
+ "name": "Grok 2 (1212)",
581
192
  "family": "grok",
582
193
  "attachment": false,
583
194
  "reasoning": false,
584
195
  "tool_call": true,
585
196
  "temperature": true,
586
197
  "knowledge": "2024-08",
587
- "release_date": "2024-08-20",
198
+ "release_date": "2024-12-12",
588
199
  "last_updated": "2024-12-12",
589
200
  "modalities": {
590
201
  "input": [
@@ -595,14 +206,14 @@
595
206
  ]
596
207
  },
597
208
  "open_weights": false,
209
+ "limit": {
210
+ "context": 131072,
211
+ "output": 8192
212
+ },
598
213
  "cost": {
599
214
  "input": 2,
600
215
  "output": 10,
601
216
  "cache_read": 2
602
- },
603
- "limit": {
604
- "context": 131072,
605
- "output": 8192
606
217
  }
607
218
  },
608
219
  "grok-beta": {
@@ -625,21 +236,47 @@
625
236
  ]
626
237
  },
627
238
  "open_weights": false,
239
+ "limit": {
240
+ "context": 131072,
241
+ "output": 4096
242
+ },
628
243
  "cost": {
629
244
  "input": 5,
630
245
  "output": 15,
631
246
  "cache_read": 5
247
+ }
248
+ },
249
+ "grok-imagine-video": {
250
+ "id": "grok-imagine-video",
251
+ "name": "Grok Imagine Video",
252
+ "family": "grok",
253
+ "attachment": true,
254
+ "reasoning": false,
255
+ "tool_call": false,
256
+ "temperature": false,
257
+ "release_date": "2026-03",
258
+ "last_updated": "2026-05-16",
259
+ "modalities": {
260
+ "input": [
261
+ "text",
262
+ "image",
263
+ "video"
264
+ ],
265
+ "output": [
266
+ "video"
267
+ ]
632
268
  },
269
+ "open_weights": false,
633
270
  "limit": {
634
- "context": 131072,
635
- "output": 4096
271
+ "context": 1024,
272
+ "output": 0
636
273
  }
637
274
  },
638
- "grok-2-vision": {
639
- "id": "grok-2-vision",
640
- "name": "Grok 2 Vision",
275
+ "grok-2": {
276
+ "id": "grok-2",
277
+ "name": "Grok 2",
641
278
  "family": "grok",
642
- "attachment": true,
279
+ "attachment": false,
643
280
  "reasoning": false,
644
281
  "tool_call": true,
645
282
  "temperature": true,
@@ -648,35 +285,34 @@
648
285
  "last_updated": "2024-08-20",
649
286
  "modalities": {
650
287
  "input": [
651
- "text",
652
- "image"
288
+ "text"
653
289
  ],
654
290
  "output": [
655
291
  "text"
656
292
  ]
657
293
  },
658
294
  "open_weights": false,
295
+ "limit": {
296
+ "context": 131072,
297
+ "output": 8192
298
+ },
659
299
  "cost": {
660
300
  "input": 2,
661
301
  "output": 10,
662
302
  "cache_read": 2
663
- },
664
- "limit": {
665
- "context": 8192,
666
- "output": 4096
667
303
  }
668
304
  },
669
- "grok-4-1-fast": {
670
- "id": "grok-4-1-fast",
671
- "name": "Grok 4.1 Fast",
305
+ "grok-2-vision-latest": {
306
+ "id": "grok-2-vision-latest",
307
+ "name": "Grok 2 Vision Latest",
672
308
  "family": "grok",
673
309
  "attachment": true,
674
- "reasoning": true,
310
+ "reasoning": false,
675
311
  "tool_call": true,
676
312
  "temperature": true,
677
- "knowledge": "2025-07",
678
- "release_date": "2025-11-19",
679
- "last_updated": "2025-11-19",
313
+ "knowledge": "2024-08",
314
+ "release_date": "2024-08-20",
315
+ "last_updated": "2024-12-12",
680
316
  "modalities": {
681
317
  "input": [
682
318
  "text",
@@ -687,50 +323,90 @@
687
323
  ]
688
324
  },
689
325
  "open_weights": false,
326
+ "limit": {
327
+ "context": 8192,
328
+ "output": 4096
329
+ },
690
330
  "cost": {
691
- "input": 0.2,
692
- "output": 0.5,
693
- "cache_read": 0.05
331
+ "input": 2,
332
+ "output": 10,
333
+ "cache_read": 2
334
+ }
335
+ },
336
+ "grok-imagine-image": {
337
+ "id": "grok-imagine-image",
338
+ "name": "Grok Imagine Image",
339
+ "family": "grok",
340
+ "attachment": true,
341
+ "reasoning": false,
342
+ "tool_call": false,
343
+ "temperature": false,
344
+ "release_date": "2026-03",
345
+ "last_updated": "2026-05-16",
346
+ "modalities": {
347
+ "input": [
348
+ "text",
349
+ "image"
350
+ ],
351
+ "output": [
352
+ "image"
353
+ ]
694
354
  },
355
+ "open_weights": false,
695
356
  "limit": {
696
- "context": 2000000,
697
- "output": 30000
357
+ "context": 1024,
358
+ "output": 0
698
359
  }
699
360
  },
700
- "grok-3-mini": {
701
- "id": "grok-3-mini",
702
- "name": "Grok 3 Mini",
361
+ "grok-4.3": {
362
+ "id": "grok-4.3",
363
+ "name": "Grok 4.3",
703
364
  "family": "grok",
704
- "attachment": false,
365
+ "attachment": true,
705
366
  "reasoning": true,
706
367
  "tool_call": true,
707
368
  "temperature": true,
708
- "knowledge": "2024-11",
709
- "release_date": "2025-02-17",
710
- "last_updated": "2025-02-17",
369
+ "release_date": "2026-05-01",
370
+ "last_updated": "2026-05-01",
711
371
  "modalities": {
712
372
  "input": [
713
- "text"
373
+ "text",
374
+ "image"
714
375
  ],
715
376
  "output": [
716
377
  "text"
717
378
  ]
718
379
  },
719
380
  "open_weights": false,
720
- "cost": {
721
- "input": 0.3,
722
- "output": 0.5,
723
- "reasoning": 0.5,
724
- "cache_read": 0.075
725
- },
726
381
  "limit": {
727
- "context": 131072,
728
- "output": 8192
382
+ "context": 1000000,
383
+ "output": 30000
384
+ },
385
+ "cost": {
386
+ "input": 1.25,
387
+ "output": 2.5,
388
+ "cache_read": 0.2,
389
+ "tiers": [
390
+ {
391
+ "input": 2.5,
392
+ "output": 5,
393
+ "cache_read": 0.4,
394
+ "tier": {
395
+ "type": "context",
396
+ "size": 200000
397
+ }
398
+ }
399
+ ],
400
+ "context_over_200k": {
401
+ "input": 2.5,
402
+ "output": 5,
403
+ "cache_read": 0.4
404
+ }
729
405
  }
730
406
  },
731
- "grok-2-vision-1212": {
732
- "id": "grok-2-vision-1212",
733
- "name": "Grok 2 Vision (1212)",
407
+ "grok-2-vision": {
408
+ "id": "grok-2-vision",
409
+ "name": "Grok 2 Vision",
734
410
  "family": "grok",
735
411
  "attachment": true,
736
412
  "reasoning": false,
@@ -738,7 +414,7 @@
738
414
  "temperature": true,
739
415
  "knowledge": "2024-08",
740
416
  "release_date": "2024-08-20",
741
- "last_updated": "2024-12-12",
417
+ "last_updated": "2024-08-20",
742
418
  "modalities": {
743
419
  "input": [
744
420
  "text",
@@ -749,27 +425,27 @@
749
425
  ]
750
426
  },
751
427
  "open_weights": false,
428
+ "limit": {
429
+ "context": 8192,
430
+ "output": 4096
431
+ },
752
432
  "cost": {
753
433
  "input": 2,
754
434
  "output": 10,
755
435
  "cache_read": 2
756
- },
757
- "limit": {
758
- "context": 8192,
759
- "output": 4096
760
436
  }
761
437
  },
762
- "grok-3": {
763
- "id": "grok-3",
764
- "name": "Grok 3",
438
+ "grok-2-latest": {
439
+ "id": "grok-2-latest",
440
+ "name": "Grok 2 Latest",
765
441
  "family": "grok",
766
442
  "attachment": false,
767
443
  "reasoning": false,
768
444
  "tool_call": true,
769
445
  "temperature": true,
770
- "knowledge": "2024-11",
771
- "release_date": "2025-02-17",
772
- "last_updated": "2025-02-17",
446
+ "knowledge": "2024-08",
447
+ "release_date": "2024-08-20",
448
+ "last_updated": "2024-12-12",
773
449
  "modalities": {
774
450
  "input": [
775
451
  "text"
@@ -779,27 +455,26 @@
779
455
  ]
780
456
  },
781
457
  "open_weights": false,
782
- "cost": {
783
- "input": 3,
784
- "output": 15,
785
- "cache_read": 0.75
786
- },
787
458
  "limit": {
788
459
  "context": 131072,
789
460
  "output": 8192
461
+ },
462
+ "cost": {
463
+ "input": 2,
464
+ "output": 10,
465
+ "cache_read": 2
790
466
  }
791
467
  },
792
- "grok-4-fast-non-reasoning": {
793
- "id": "grok-4-fast-non-reasoning",
794
- "name": "Grok 4 Fast (Non-Reasoning)",
468
+ "grok-4.20-multi-agent-0309": {
469
+ "id": "grok-4.20-multi-agent-0309",
470
+ "name": "Grok 4.20 Multi-Agent",
795
471
  "family": "grok",
796
472
  "attachment": true,
797
- "reasoning": false,
798
- "tool_call": true,
473
+ "reasoning": true,
474
+ "tool_call": false,
799
475
  "temperature": true,
800
- "knowledge": "2025-07",
801
- "release_date": "2025-09-19",
802
- "last_updated": "2025-09-19",
476
+ "release_date": "2026-03-09",
477
+ "last_updated": "2026-03-09",
803
478
  "modalities": {
804
479
  "input": [
805
480
  "text",
@@ -810,14 +485,30 @@
810
485
  ]
811
486
  },
812
487
  "open_weights": false,
813
- "cost": {
814
- "input": 0.2,
815
- "output": 0.5,
816
- "cache_read": 0.05
817
- },
818
488
  "limit": {
819
489
  "context": 2000000,
820
490
  "output": 30000
491
+ },
492
+ "cost": {
493
+ "input": 2,
494
+ "output": 6,
495
+ "cache_read": 0.2,
496
+ "tiers": [
497
+ {
498
+ "input": 4,
499
+ "output": 12,
500
+ "cache_read": 0.4,
501
+ "tier": {
502
+ "type": "context",
503
+ "size": 200000
504
+ }
505
+ }
506
+ ],
507
+ "context_over_200k": {
508
+ "input": 4,
509
+ "output": 12,
510
+ "cache_read": 0.4
511
+ }
821
512
  }
822
513
  }
823
514
  }