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