ask-llm-providers 0.1.2 → 0.8.2

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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +181 -0
  3. data/lib/ask/llm/aliases.json +11 -0
  4. data/lib/ask/llm/aliases.rb +62 -0
  5. data/lib/ask/llm/catalog.rb +221 -0
  6. data/lib/ask/llm/cost_calculator.rb +114 -0
  7. data/lib/ask/llm/http.rb +68 -12
  8. data/lib/ask/llm/models/anthropic.json +872 -0
  9. data/lib/ask/llm/models/bedrock.json +3769 -0
  10. data/lib/ask/llm/models/deepseek.json +340 -0
  11. data/lib/ask/llm/models/gemini.json +1211 -0
  12. data/lib/ask/llm/models/meta.json +299 -0
  13. data/lib/ask/llm/models/mistral.json +1303 -0
  14. data/lib/ask/llm/models/moonshot.json +198 -0
  15. data/lib/ask/llm/models/nvidia_nim.json +289 -0
  16. data/lib/ask/llm/models/openai.json +2521 -0
  17. data/lib/ask/llm/models/opencode.json +552 -0
  18. data/lib/ask/llm/models/perplexity.json +148 -0
  19. data/lib/ask/llm/models/vertex_ai.json +1347 -0
  20. data/lib/ask/llm/models/xai.json +326 -0
  21. data/lib/ask/llm/models_schema.json +74 -0
  22. data/lib/ask/llm/openai_compatible.rb +100 -0
  23. data/lib/ask/llm/provider_config.rb +65 -0
  24. data/lib/ask/llm/sources/models_dev.rb +154 -0
  25. data/lib/ask/llm/sources/openrouter.rb +176 -0
  26. data/lib/ask/llm/sse_buffer.rb +43 -0
  27. data/lib/ask/llm/version.rb +1 -1
  28. data/lib/ask/provider/anthropic.rb +106 -103
  29. data/lib/ask/provider/bedrock.rb +84 -52
  30. data/lib/ask/provider/cloudflare.rb +62 -40
  31. data/lib/ask/provider/google.rb +112 -74
  32. data/lib/ask/provider/mistral.rb +156 -6
  33. data/lib/ask/provider/ollama.rb +83 -29
  34. data/lib/ask/provider/openai.rb +141 -68
  35. data/lib/ask/provider/openai_compatible.rb +91 -0
  36. data/lib/ask/skills/providers.model_select/SKILL.md +164 -0
  37. data/lib/ask-llm-providers.rb +22 -18
  38. metadata +35 -7
  39. data/lib/ask/llm/models/openai.rb +0 -69
@@ -0,0 +1,872 @@
1
+ [
2
+ {
3
+ "id": "claude-3-haiku",
4
+ "name": "Anthropic: Claude 3 Haiku",
5
+ "provider": "anthropic",
6
+ "context_window": 200000,
7
+ "max_output_tokens": 4096,
8
+ "capabilities": [
9
+ "vision"
10
+ ],
11
+ "modalities": {
12
+ "input": [
13
+ "text",
14
+ "image"
15
+ ],
16
+ "output": [
17
+ "text"
18
+ ]
19
+ },
20
+ "pricing": {
21
+ "text_tokens": {
22
+ "standard": {
23
+ "input_per_million": 0.25,
24
+ "output_per_million": 1.25,
25
+ "cache_read_input_per_million": 0.03,
26
+ "cache_write_input_per_million": 0.3
27
+ }
28
+ }
29
+ },
30
+ "architecture": "text+image->text",
31
+ "source": "openrouter"
32
+ },
33
+ {
34
+ "id": "claude-haiku-4.5",
35
+ "name": "Anthropic: Claude Haiku 4.5",
36
+ "provider": "anthropic",
37
+ "context_window": 200000,
38
+ "max_output_tokens": 64000,
39
+ "capabilities": [],
40
+ "modalities": {
41
+ "input": [
42
+ "text"
43
+ ],
44
+ "output": [
45
+ "text"
46
+ ]
47
+ },
48
+ "pricing": {
49
+ "text_tokens": {
50
+ "standard": {
51
+ "input_per_million": 1.0,
52
+ "output_per_million": 5.0,
53
+ "cache_read_input_per_million": 0.1,
54
+ "cache_write_input_per_million": 1.25
55
+ }
56
+ }
57
+ },
58
+ "architecture": "text+image+file->text",
59
+ "source": "openrouter"
60
+ },
61
+ {
62
+ "id": "claude-opus-4",
63
+ "name": "Anthropic: Claude Opus 4",
64
+ "provider": "anthropic",
65
+ "context_window": 200000,
66
+ "max_output_tokens": 32000,
67
+ "capabilities": [],
68
+ "modalities": {
69
+ "input": [
70
+ "text"
71
+ ],
72
+ "output": [
73
+ "text"
74
+ ]
75
+ },
76
+ "pricing": {
77
+ "text_tokens": {
78
+ "standard": {
79
+ "input_per_million": 15.0,
80
+ "output_per_million": 75.0,
81
+ "cache_read_input_per_million": 1.5,
82
+ "cache_write_input_per_million": 18.75
83
+ }
84
+ }
85
+ },
86
+ "architecture": "text+image+file->text",
87
+ "source": "openrouter"
88
+ },
89
+ {
90
+ "id": "claude-opus-4.1",
91
+ "name": "Anthropic: Claude Opus 4.1",
92
+ "provider": "anthropic",
93
+ "context_window": 200000,
94
+ "max_output_tokens": 32000,
95
+ "capabilities": [],
96
+ "modalities": {
97
+ "input": [
98
+ "text"
99
+ ],
100
+ "output": [
101
+ "text"
102
+ ]
103
+ },
104
+ "pricing": {
105
+ "text_tokens": {
106
+ "standard": {
107
+ "input_per_million": 15.0,
108
+ "output_per_million": 75.0,
109
+ "cache_read_input_per_million": 1.5,
110
+ "cache_write_input_per_million": 18.75
111
+ }
112
+ }
113
+ },
114
+ "architecture": "text+image+file->text",
115
+ "source": "openrouter"
116
+ },
117
+ {
118
+ "id": "claude-opus-4.5",
119
+ "name": "Anthropic: Claude Opus 4.5",
120
+ "provider": "anthropic",
121
+ "context_window": 200000,
122
+ "max_output_tokens": 64000,
123
+ "capabilities": [],
124
+ "modalities": {
125
+ "input": [
126
+ "text"
127
+ ],
128
+ "output": [
129
+ "text"
130
+ ]
131
+ },
132
+ "pricing": {
133
+ "text_tokens": {
134
+ "standard": {
135
+ "input_per_million": 5.0,
136
+ "output_per_million": 25.0,
137
+ "cache_read_input_per_million": 0.5,
138
+ "cache_write_input_per_million": 6.25
139
+ }
140
+ }
141
+ },
142
+ "architecture": "text+image+file->text",
143
+ "source": "openrouter"
144
+ },
145
+ {
146
+ "id": "claude-opus-4.6",
147
+ "name": "Anthropic: Claude Opus 4.6",
148
+ "provider": "anthropic",
149
+ "context_window": 1000000,
150
+ "max_output_tokens": 128000,
151
+ "capabilities": [],
152
+ "modalities": {
153
+ "input": [
154
+ "text"
155
+ ],
156
+ "output": [
157
+ "text"
158
+ ]
159
+ },
160
+ "pricing": {
161
+ "text_tokens": {
162
+ "standard": {
163
+ "input_per_million": 5.0,
164
+ "output_per_million": 25.0,
165
+ "cache_read_input_per_million": 0.5,
166
+ "cache_write_input_per_million": 6.25
167
+ }
168
+ }
169
+ },
170
+ "architecture": "text+image+file->text",
171
+ "source": "openrouter"
172
+ },
173
+ {
174
+ "id": "claude-opus-4.7",
175
+ "name": "Anthropic: Claude Opus 4.7",
176
+ "provider": "anthropic",
177
+ "context_window": 1000000,
178
+ "max_output_tokens": 128000,
179
+ "capabilities": [],
180
+ "modalities": {
181
+ "input": [
182
+ "text"
183
+ ],
184
+ "output": [
185
+ "text"
186
+ ]
187
+ },
188
+ "pricing": {
189
+ "text_tokens": {
190
+ "standard": {
191
+ "input_per_million": 5.0,
192
+ "output_per_million": 25.0,
193
+ "cache_read_input_per_million": 0.5,
194
+ "cache_write_input_per_million": 6.25
195
+ }
196
+ }
197
+ },
198
+ "architecture": "text+image+file->text",
199
+ "source": "openrouter"
200
+ },
201
+ {
202
+ "id": "claude-opus-4.7-fast",
203
+ "name": "Anthropic: Claude Opus 4.7 (Fast)",
204
+ "provider": "anthropic",
205
+ "context_window": 1000000,
206
+ "max_output_tokens": 128000,
207
+ "capabilities": [],
208
+ "modalities": {
209
+ "input": [
210
+ "text"
211
+ ],
212
+ "output": [
213
+ "text"
214
+ ]
215
+ },
216
+ "pricing": {
217
+ "text_tokens": {
218
+ "standard": {
219
+ "input_per_million": 30.0,
220
+ "output_per_million": 150.0,
221
+ "cache_read_input_per_million": 3.0,
222
+ "cache_write_input_per_million": 37.5
223
+ }
224
+ }
225
+ },
226
+ "architecture": "text+image+file->text",
227
+ "source": "openrouter"
228
+ },
229
+ {
230
+ "id": "claude-opus-4.8",
231
+ "name": "Anthropic: Claude Opus 4.8",
232
+ "provider": "anthropic",
233
+ "context_window": 1000000,
234
+ "max_output_tokens": 128000,
235
+ "capabilities": [],
236
+ "modalities": {
237
+ "input": [
238
+ "text"
239
+ ],
240
+ "output": [
241
+ "text"
242
+ ]
243
+ },
244
+ "pricing": {
245
+ "text_tokens": {
246
+ "standard": {
247
+ "input_per_million": 5.0,
248
+ "output_per_million": 25.0,
249
+ "cache_read_input_per_million": 0.5,
250
+ "cache_write_input_per_million": 6.25
251
+ }
252
+ }
253
+ },
254
+ "architecture": "text+image+file->text",
255
+ "source": "openrouter"
256
+ },
257
+ {
258
+ "id": "claude-opus-4.8-fast",
259
+ "name": "Anthropic: Claude Opus 4.8 (Fast)",
260
+ "provider": "anthropic",
261
+ "context_window": 1000000,
262
+ "max_output_tokens": 128000,
263
+ "capabilities": [],
264
+ "modalities": {
265
+ "input": [
266
+ "text"
267
+ ],
268
+ "output": [
269
+ "text"
270
+ ]
271
+ },
272
+ "pricing": {
273
+ "text_tokens": {
274
+ "standard": {
275
+ "input_per_million": 10.0,
276
+ "output_per_million": 50.0,
277
+ "cache_read_input_per_million": 1.0,
278
+ "cache_write_input_per_million": 12.5
279
+ }
280
+ }
281
+ },
282
+ "architecture": "text+image+file->text",
283
+ "source": "openrouter"
284
+ },
285
+ {
286
+ "id": "claude-sonnet-4",
287
+ "name": "Anthropic: Claude Sonnet 4",
288
+ "provider": "anthropic",
289
+ "context_window": 1000000,
290
+ "max_output_tokens": 64000,
291
+ "capabilities": [],
292
+ "modalities": {
293
+ "input": [
294
+ "text"
295
+ ],
296
+ "output": [
297
+ "text"
298
+ ]
299
+ },
300
+ "pricing": {
301
+ "text_tokens": {
302
+ "standard": {
303
+ "input_per_million": 3.0,
304
+ "output_per_million": 15.0,
305
+ "cache_read_input_per_million": 0.3,
306
+ "cache_write_input_per_million": 3.75
307
+ }
308
+ }
309
+ },
310
+ "architecture": "text+image+file->text",
311
+ "source": "openrouter"
312
+ },
313
+ {
314
+ "id": "claude-sonnet-4.5",
315
+ "name": "Anthropic: Claude Sonnet 4.5",
316
+ "provider": "anthropic",
317
+ "context_window": 1000000,
318
+ "max_output_tokens": 64000,
319
+ "capabilities": [],
320
+ "modalities": {
321
+ "input": [
322
+ "text"
323
+ ],
324
+ "output": [
325
+ "text"
326
+ ]
327
+ },
328
+ "pricing": {
329
+ "text_tokens": {
330
+ "standard": {
331
+ "input_per_million": 3.0,
332
+ "output_per_million": 15.0,
333
+ "cache_read_input_per_million": 0.3,
334
+ "cache_write_input_per_million": 3.75
335
+ }
336
+ }
337
+ },
338
+ "architecture": "text+image+file->text",
339
+ "source": "openrouter"
340
+ },
341
+ {
342
+ "id": "claude-sonnet-4.6",
343
+ "name": "Anthropic: Claude Sonnet 4.6",
344
+ "provider": "anthropic",
345
+ "context_window": 1000000,
346
+ "max_output_tokens": 128000,
347
+ "capabilities": [],
348
+ "modalities": {
349
+ "input": [
350
+ "text"
351
+ ],
352
+ "output": [
353
+ "text"
354
+ ]
355
+ },
356
+ "pricing": {
357
+ "text_tokens": {
358
+ "standard": {
359
+ "input_per_million": 3.0,
360
+ "output_per_million": 15.0,
361
+ "cache_read_input_per_million": 0.3,
362
+ "cache_write_input_per_million": 3.75
363
+ }
364
+ }
365
+ },
366
+ "architecture": "text+image+file->text",
367
+ "source": "openrouter"
368
+ },
369
+ {
370
+ "id": "claude-fable-5",
371
+ "name": "Claude Fable 5",
372
+ "provider": "anthropic",
373
+ "family": "claude-fable",
374
+ "context_window": 1000000,
375
+ "max_output_tokens": 128000,
376
+ "capabilities": [
377
+ "function_calling",
378
+ "structured_output",
379
+ "reasoning",
380
+ "vision"
381
+ ],
382
+ "modalities": {
383
+ "input": [
384
+ "text",
385
+ "image",
386
+ "pdf"
387
+ ],
388
+ "output": [
389
+ "text"
390
+ ]
391
+ },
392
+ "pricing": {
393
+ "text_tokens": {
394
+ "standard": {
395
+ "input_per_million": 10,
396
+ "output_per_million": 50,
397
+ "cache_read_input_per_million": 1,
398
+ "cache_write_input_per_million": 12.5
399
+ }
400
+ }
401
+ },
402
+ "created_at": "2026-06-07"
403
+ },
404
+ {
405
+ "id": "claude-haiku-4-5-20251001",
406
+ "name": "Claude Haiku 4.5",
407
+ "provider": "anthropic",
408
+ "family": "claude-haiku",
409
+ "context_window": 200000,
410
+ "max_output_tokens": 64000,
411
+ "capabilities": [
412
+ "function_calling",
413
+ "structured_output",
414
+ "reasoning",
415
+ "vision"
416
+ ],
417
+ "modalities": {
418
+ "input": [
419
+ "text",
420
+ "image",
421
+ "pdf"
422
+ ],
423
+ "output": [
424
+ "text"
425
+ ]
426
+ },
427
+ "pricing": {
428
+ "text_tokens": {
429
+ "standard": {
430
+ "input_per_million": 1,
431
+ "output_per_million": 5,
432
+ "cache_read_input_per_million": 0.1,
433
+ "cache_write_input_per_million": 1.25
434
+ }
435
+ }
436
+ },
437
+ "knowledge_cutoff": "2025-02-28",
438
+ "created_at": "2025-10-15"
439
+ },
440
+ {
441
+ "id": "claude-haiku-4-5",
442
+ "name": "Claude Haiku 4.5 (latest)",
443
+ "provider": "anthropic",
444
+ "family": "claude-haiku",
445
+ "context_window": 200000,
446
+ "max_output_tokens": 64000,
447
+ "capabilities": [
448
+ "function_calling",
449
+ "structured_output",
450
+ "reasoning",
451
+ "vision"
452
+ ],
453
+ "modalities": {
454
+ "input": [
455
+ "text",
456
+ "image",
457
+ "pdf"
458
+ ],
459
+ "output": [
460
+ "text"
461
+ ]
462
+ },
463
+ "pricing": {
464
+ "text_tokens": {
465
+ "standard": {
466
+ "input_per_million": 1,
467
+ "output_per_million": 5,
468
+ "cache_read_input_per_million": 0.1,
469
+ "cache_write_input_per_million": 1.25
470
+ }
471
+ }
472
+ },
473
+ "knowledge_cutoff": "2025-02-28",
474
+ "created_at": "2025-10-15"
475
+ },
476
+ {
477
+ "id": "claude-opus-4-1-20250805",
478
+ "name": "Claude Opus 4.1",
479
+ "provider": "anthropic",
480
+ "family": "claude-opus",
481
+ "context_window": 200000,
482
+ "max_output_tokens": 32000,
483
+ "capabilities": [
484
+ "function_calling",
485
+ "structured_output",
486
+ "reasoning",
487
+ "vision"
488
+ ],
489
+ "modalities": {
490
+ "input": [
491
+ "text",
492
+ "image",
493
+ "pdf"
494
+ ],
495
+ "output": [
496
+ "text"
497
+ ]
498
+ },
499
+ "pricing": {
500
+ "text_tokens": {
501
+ "standard": {
502
+ "input_per_million": 15,
503
+ "output_per_million": 75,
504
+ "cache_read_input_per_million": 1.5,
505
+ "cache_write_input_per_million": 18.75
506
+ }
507
+ }
508
+ },
509
+ "knowledge_cutoff": "2025-03-31",
510
+ "created_at": "2025-08-05"
511
+ },
512
+ {
513
+ "id": "claude-opus-4-1",
514
+ "name": "Claude Opus 4.1 (latest)",
515
+ "provider": "anthropic",
516
+ "family": "claude-opus",
517
+ "context_window": 200000,
518
+ "max_output_tokens": 32000,
519
+ "capabilities": [
520
+ "function_calling",
521
+ "structured_output",
522
+ "reasoning",
523
+ "vision"
524
+ ],
525
+ "modalities": {
526
+ "input": [
527
+ "text",
528
+ "image",
529
+ "pdf"
530
+ ],
531
+ "output": [
532
+ "text"
533
+ ]
534
+ },
535
+ "pricing": {
536
+ "text_tokens": {
537
+ "standard": {
538
+ "input_per_million": 15,
539
+ "output_per_million": 75,
540
+ "cache_read_input_per_million": 1.5,
541
+ "cache_write_input_per_million": 18.75
542
+ }
543
+ }
544
+ },
545
+ "knowledge_cutoff": "2025-03-31",
546
+ "created_at": "2025-08-05"
547
+ },
548
+ {
549
+ "id": "claude-opus-4-5-20251101",
550
+ "name": "Claude Opus 4.5",
551
+ "provider": "anthropic",
552
+ "family": "claude-opus",
553
+ "context_window": 200000,
554
+ "max_output_tokens": 64000,
555
+ "capabilities": [
556
+ "function_calling",
557
+ "structured_output",
558
+ "reasoning",
559
+ "vision"
560
+ ],
561
+ "modalities": {
562
+ "input": [
563
+ "text",
564
+ "image",
565
+ "pdf"
566
+ ],
567
+ "output": [
568
+ "text"
569
+ ]
570
+ },
571
+ "pricing": {
572
+ "text_tokens": {
573
+ "standard": {
574
+ "input_per_million": 5,
575
+ "output_per_million": 25,
576
+ "cache_read_input_per_million": 0.5,
577
+ "cache_write_input_per_million": 6.25
578
+ }
579
+ }
580
+ },
581
+ "knowledge_cutoff": "2025-05",
582
+ "created_at": "2025-11-24"
583
+ },
584
+ {
585
+ "id": "claude-opus-4-5",
586
+ "name": "Claude Opus 4.5 (latest)",
587
+ "provider": "anthropic",
588
+ "family": "claude-opus",
589
+ "context_window": 200000,
590
+ "max_output_tokens": 64000,
591
+ "capabilities": [
592
+ "function_calling",
593
+ "structured_output",
594
+ "reasoning",
595
+ "vision"
596
+ ],
597
+ "modalities": {
598
+ "input": [
599
+ "text",
600
+ "image",
601
+ "pdf"
602
+ ],
603
+ "output": [
604
+ "text"
605
+ ]
606
+ },
607
+ "pricing": {
608
+ "text_tokens": {
609
+ "standard": {
610
+ "input_per_million": 5,
611
+ "output_per_million": 25,
612
+ "cache_read_input_per_million": 0.5,
613
+ "cache_write_input_per_million": 6.25
614
+ }
615
+ }
616
+ },
617
+ "knowledge_cutoff": "2025-05",
618
+ "created_at": "2025-11-24"
619
+ },
620
+ {
621
+ "id": "claude-opus-4-6",
622
+ "name": "Claude Opus 4.6",
623
+ "provider": "anthropic",
624
+ "family": "claude-opus",
625
+ "context_window": 1000000,
626
+ "max_output_tokens": 128000,
627
+ "capabilities": [
628
+ "function_calling",
629
+ "structured_output",
630
+ "reasoning",
631
+ "vision"
632
+ ],
633
+ "modalities": {
634
+ "input": [
635
+ "text",
636
+ "image",
637
+ "pdf"
638
+ ],
639
+ "output": [
640
+ "text"
641
+ ]
642
+ },
643
+ "pricing": {
644
+ "text_tokens": {
645
+ "standard": {
646
+ "input_per_million": 5,
647
+ "output_per_million": 25,
648
+ "cache_read_input_per_million": 0.5,
649
+ "cache_write_input_per_million": 6.25
650
+ }
651
+ }
652
+ },
653
+ "knowledge_cutoff": "2025-05-31",
654
+ "created_at": "2026-02-04"
655
+ },
656
+ {
657
+ "id": "claude-opus-4-7",
658
+ "name": "Claude Opus 4.7",
659
+ "provider": "anthropic",
660
+ "family": "claude-opus",
661
+ "context_window": 1000000,
662
+ "max_output_tokens": 128000,
663
+ "capabilities": [
664
+ "function_calling",
665
+ "structured_output",
666
+ "reasoning",
667
+ "vision"
668
+ ],
669
+ "modalities": {
670
+ "input": [
671
+ "text",
672
+ "image",
673
+ "pdf"
674
+ ],
675
+ "output": [
676
+ "text"
677
+ ]
678
+ },
679
+ "pricing": {
680
+ "text_tokens": {
681
+ "standard": {
682
+ "input_per_million": 5,
683
+ "output_per_million": 25,
684
+ "cache_read_input_per_million": 0.5,
685
+ "cache_write_input_per_million": 6.25
686
+ }
687
+ }
688
+ },
689
+ "knowledge_cutoff": "2026-01-31",
690
+ "created_at": "2026-04-14"
691
+ },
692
+ {
693
+ "id": "claude-opus-4-8",
694
+ "name": "Claude Opus 4.8",
695
+ "provider": "anthropic",
696
+ "family": "claude-opus",
697
+ "context_window": 1000000,
698
+ "max_output_tokens": 128000,
699
+ "capabilities": [
700
+ "function_calling",
701
+ "structured_output",
702
+ "reasoning",
703
+ "vision"
704
+ ],
705
+ "modalities": {
706
+ "input": [
707
+ "text",
708
+ "image",
709
+ "pdf"
710
+ ],
711
+ "output": [
712
+ "text"
713
+ ]
714
+ },
715
+ "pricing": {
716
+ "text_tokens": {
717
+ "standard": {
718
+ "input_per_million": 5,
719
+ "output_per_million": 25,
720
+ "cache_read_input_per_million": 0.5,
721
+ "cache_write_input_per_million": 6.25
722
+ }
723
+ }
724
+ },
725
+ "knowledge_cutoff": "2026-01",
726
+ "created_at": "2026-05-28"
727
+ },
728
+ {
729
+ "id": "claude-sonnet-4-5-20250929",
730
+ "name": "Claude Sonnet 4.5",
731
+ "provider": "anthropic",
732
+ "family": "claude-sonnet",
733
+ "context_window": 1000000,
734
+ "max_output_tokens": 64000,
735
+ "capabilities": [
736
+ "function_calling",
737
+ "structured_output",
738
+ "reasoning",
739
+ "vision"
740
+ ],
741
+ "modalities": {
742
+ "input": [
743
+ "text",
744
+ "image",
745
+ "pdf"
746
+ ],
747
+ "output": [
748
+ "text"
749
+ ]
750
+ },
751
+ "pricing": {
752
+ "text_tokens": {
753
+ "standard": {
754
+ "input_per_million": 3,
755
+ "output_per_million": 15,
756
+ "cache_read_input_per_million": 0.3,
757
+ "cache_write_input_per_million": 3.75
758
+ }
759
+ }
760
+ },
761
+ "knowledge_cutoff": "2025-07-31",
762
+ "created_at": "2025-09-29"
763
+ },
764
+ {
765
+ "id": "claude-sonnet-4-5",
766
+ "name": "Claude Sonnet 4.5 (latest)",
767
+ "provider": "anthropic",
768
+ "family": "claude-sonnet",
769
+ "context_window": 1000000,
770
+ "max_output_tokens": 64000,
771
+ "capabilities": [
772
+ "function_calling",
773
+ "structured_output",
774
+ "reasoning",
775
+ "vision"
776
+ ],
777
+ "modalities": {
778
+ "input": [
779
+ "text",
780
+ "image",
781
+ "pdf"
782
+ ],
783
+ "output": [
784
+ "text"
785
+ ]
786
+ },
787
+ "pricing": {
788
+ "text_tokens": {
789
+ "standard": {
790
+ "input_per_million": 3,
791
+ "output_per_million": 15,
792
+ "cache_read_input_per_million": 0.3,
793
+ "cache_write_input_per_million": 3.75
794
+ }
795
+ }
796
+ },
797
+ "knowledge_cutoff": "2025-07-31",
798
+ "created_at": "2025-09-29"
799
+ },
800
+ {
801
+ "id": "claude-sonnet-4-6",
802
+ "name": "Claude Sonnet 4.6",
803
+ "provider": "anthropic",
804
+ "family": "claude-sonnet",
805
+ "context_window": 1000000,
806
+ "max_output_tokens": 128000,
807
+ "capabilities": [
808
+ "function_calling",
809
+ "structured_output",
810
+ "reasoning",
811
+ "vision"
812
+ ],
813
+ "modalities": {
814
+ "input": [
815
+ "text",
816
+ "image",
817
+ "pdf"
818
+ ],
819
+ "output": [
820
+ "text"
821
+ ]
822
+ },
823
+ "pricing": {
824
+ "text_tokens": {
825
+ "standard": {
826
+ "input_per_million": 3,
827
+ "output_per_million": 15,
828
+ "cache_read_input_per_million": 0.3,
829
+ "cache_write_input_per_million": 3.75
830
+ }
831
+ }
832
+ },
833
+ "knowledge_cutoff": "2025-08-31",
834
+ "created_at": "2026-02-17"
835
+ },
836
+ {
837
+ "id": "claude-sonnet-5",
838
+ "name": "Claude Sonnet 5",
839
+ "provider": "anthropic",
840
+ "family": "claude-sonnet",
841
+ "context_window": 1000000,
842
+ "max_output_tokens": 128000,
843
+ "capabilities": [
844
+ "function_calling",
845
+ "structured_output",
846
+ "reasoning",
847
+ "vision"
848
+ ],
849
+ "modalities": {
850
+ "input": [
851
+ "text",
852
+ "image",
853
+ "pdf"
854
+ ],
855
+ "output": [
856
+ "text"
857
+ ]
858
+ },
859
+ "pricing": {
860
+ "text_tokens": {
861
+ "standard": {
862
+ "input_per_million": 2,
863
+ "output_per_million": 10,
864
+ "cache_read_input_per_million": 0.2,
865
+ "cache_write_input_per_million": 2.5
866
+ }
867
+ }
868
+ },
869
+ "knowledge_cutoff": "2026-01-31",
870
+ "created_at": "2026-06-29"
871
+ }
872
+ ]