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,1303 @@
1
+ [
2
+ {
3
+ "id": "codestral-latest",
4
+ "name": "Codestral (latest)",
5
+ "provider": "mistral",
6
+ "family": "codestral",
7
+ "context_window": 256000,
8
+ "max_output_tokens": 4096,
9
+ "capabilities": [
10
+ "function_calling"
11
+ ],
12
+ "modalities": {
13
+ "input": [
14
+ "text"
15
+ ],
16
+ "output": [
17
+ "text"
18
+ ]
19
+ },
20
+ "pricing": {
21
+ "text_tokens": {
22
+ "standard": {
23
+ "input_per_million": 0.3,
24
+ "output_per_million": 0.9
25
+ }
26
+ }
27
+ },
28
+ "knowledge_cutoff": "2024-10",
29
+ "created_at": "2024-05-29"
30
+ },
31
+ {
32
+ "id": "devstral-2512",
33
+ "name": "Devstral 2",
34
+ "provider": "mistral",
35
+ "family": "devstral",
36
+ "context_window": 262144,
37
+ "max_output_tokens": 262144,
38
+ "capabilities": [
39
+ "function_calling"
40
+ ],
41
+ "modalities": {
42
+ "input": [
43
+ "text"
44
+ ],
45
+ "output": [
46
+ "text"
47
+ ]
48
+ },
49
+ "pricing": {
50
+ "text_tokens": {
51
+ "standard": {
52
+ "input_per_million": 0.4,
53
+ "output_per_million": 2
54
+ }
55
+ }
56
+ },
57
+ "knowledge_cutoff": "2025-12",
58
+ "created_at": "2025-12-09"
59
+ },
60
+ {
61
+ "id": "devstral-latest",
62
+ "name": "Devstral 2",
63
+ "provider": "mistral",
64
+ "family": "devstral",
65
+ "context_window": 262144,
66
+ "max_output_tokens": 262144,
67
+ "capabilities": [
68
+ "function_calling"
69
+ ],
70
+ "modalities": {
71
+ "input": [
72
+ "text"
73
+ ],
74
+ "output": [
75
+ "text"
76
+ ]
77
+ },
78
+ "pricing": {
79
+ "text_tokens": {
80
+ "standard": {
81
+ "input_per_million": 0.4,
82
+ "output_per_million": 2
83
+ }
84
+ }
85
+ },
86
+ "knowledge_cutoff": "2025-12",
87
+ "created_at": "2025-12-09"
88
+ },
89
+ {
90
+ "id": "devstral-medium-latest",
91
+ "name": "Devstral 2 (latest)",
92
+ "provider": "mistral",
93
+ "family": "devstral",
94
+ "context_window": 262144,
95
+ "max_output_tokens": 262144,
96
+ "capabilities": [
97
+ "function_calling"
98
+ ],
99
+ "modalities": {
100
+ "input": [
101
+ "text"
102
+ ],
103
+ "output": [
104
+ "text"
105
+ ]
106
+ },
107
+ "pricing": {
108
+ "text_tokens": {
109
+ "standard": {
110
+ "input_per_million": 0.4,
111
+ "output_per_million": 2
112
+ }
113
+ }
114
+ },
115
+ "knowledge_cutoff": "2025-12",
116
+ "created_at": "2025-12-02"
117
+ },
118
+ {
119
+ "id": "devstral-medium-2507",
120
+ "name": "Devstral Medium",
121
+ "provider": "mistral",
122
+ "family": "devstral",
123
+ "context_window": 128000,
124
+ "max_output_tokens": 128000,
125
+ "capabilities": [
126
+ "function_calling"
127
+ ],
128
+ "modalities": {
129
+ "input": [
130
+ "text"
131
+ ],
132
+ "output": [
133
+ "text"
134
+ ]
135
+ },
136
+ "pricing": {
137
+ "text_tokens": {
138
+ "standard": {
139
+ "input_per_million": 0.4,
140
+ "output_per_million": 2
141
+ }
142
+ }
143
+ },
144
+ "knowledge_cutoff": "2025-05",
145
+ "created_at": "2025-07-10"
146
+ },
147
+ {
148
+ "id": "devstral-small-2507",
149
+ "name": "Devstral Small",
150
+ "provider": "mistral",
151
+ "family": "devstral",
152
+ "context_window": 128000,
153
+ "max_output_tokens": 128000,
154
+ "capabilities": [
155
+ "function_calling"
156
+ ],
157
+ "modalities": {
158
+ "input": [
159
+ "text"
160
+ ],
161
+ "output": [
162
+ "text"
163
+ ]
164
+ },
165
+ "pricing": {
166
+ "text_tokens": {
167
+ "standard": {
168
+ "input_per_million": 0.1,
169
+ "output_per_million": 0.3
170
+ }
171
+ }
172
+ },
173
+ "knowledge_cutoff": "2025-05",
174
+ "created_at": "2025-07-10"
175
+ },
176
+ {
177
+ "id": "labs-devstral-small-2512",
178
+ "name": "Devstral Small 2",
179
+ "provider": "mistral",
180
+ "family": "devstral",
181
+ "context_window": 256000,
182
+ "max_output_tokens": 256000,
183
+ "capabilities": [
184
+ "function_calling",
185
+ "vision"
186
+ ],
187
+ "modalities": {
188
+ "input": [
189
+ "text",
190
+ "image"
191
+ ],
192
+ "output": [
193
+ "text"
194
+ ]
195
+ },
196
+ "pricing": {
197
+ "text_tokens": {
198
+ "standard": {
199
+ "input_per_million": 0,
200
+ "output_per_million": 0
201
+ }
202
+ }
203
+ },
204
+ "knowledge_cutoff": "2025-12",
205
+ "created_at": "2025-12-09"
206
+ },
207
+ {
208
+ "id": "devstral-small-2505",
209
+ "name": "Devstral Small 2505",
210
+ "provider": "mistral",
211
+ "family": "devstral",
212
+ "context_window": 128000,
213
+ "max_output_tokens": 128000,
214
+ "capabilities": [
215
+ "function_calling"
216
+ ],
217
+ "modalities": {
218
+ "input": [
219
+ "text"
220
+ ],
221
+ "output": [
222
+ "text"
223
+ ]
224
+ },
225
+ "pricing": {
226
+ "text_tokens": {
227
+ "standard": {
228
+ "input_per_million": 0.1,
229
+ "output_per_million": 0.3
230
+ }
231
+ }
232
+ },
233
+ "knowledge_cutoff": "2025-05",
234
+ "created_at": "2025-05-07"
235
+ },
236
+ {
237
+ "id": "magistral-medium-latest",
238
+ "name": "Magistral Medium (latest)",
239
+ "provider": "mistral",
240
+ "family": "magistral-medium",
241
+ "context_window": 128000,
242
+ "max_output_tokens": 16384,
243
+ "capabilities": [
244
+ "function_calling",
245
+ "reasoning"
246
+ ],
247
+ "modalities": {
248
+ "input": [
249
+ "text"
250
+ ],
251
+ "output": [
252
+ "text"
253
+ ]
254
+ },
255
+ "pricing": {
256
+ "text_tokens": {
257
+ "standard": {
258
+ "input_per_million": 2,
259
+ "output_per_million": 5
260
+ }
261
+ }
262
+ },
263
+ "knowledge_cutoff": "2025-06",
264
+ "created_at": "2025-03-17"
265
+ },
266
+ {
267
+ "id": "magistral-small",
268
+ "name": "Magistral Small",
269
+ "provider": "mistral",
270
+ "family": "magistral-small",
271
+ "context_window": 128000,
272
+ "max_output_tokens": 128000,
273
+ "capabilities": [
274
+ "function_calling",
275
+ "reasoning"
276
+ ],
277
+ "modalities": {
278
+ "input": [
279
+ "text"
280
+ ],
281
+ "output": [
282
+ "text"
283
+ ]
284
+ },
285
+ "pricing": {
286
+ "text_tokens": {
287
+ "standard": {
288
+ "input_per_million": 0.5,
289
+ "output_per_million": 1.5
290
+ }
291
+ }
292
+ },
293
+ "knowledge_cutoff": "2025-06",
294
+ "created_at": "2025-03-17"
295
+ },
296
+ {
297
+ "id": "ministral-3b-latest",
298
+ "name": "Ministral 3B (latest)",
299
+ "provider": "mistral",
300
+ "family": "ministral",
301
+ "context_window": 128000,
302
+ "max_output_tokens": 128000,
303
+ "capabilities": [
304
+ "function_calling"
305
+ ],
306
+ "modalities": {
307
+ "input": [
308
+ "text"
309
+ ],
310
+ "output": [
311
+ "text"
312
+ ]
313
+ },
314
+ "pricing": {
315
+ "text_tokens": {
316
+ "standard": {
317
+ "input_per_million": 0.04,
318
+ "output_per_million": 0.04
319
+ }
320
+ }
321
+ },
322
+ "knowledge_cutoff": "2024-10",
323
+ "created_at": "2024-10-01"
324
+ },
325
+ {
326
+ "id": "ministral-8b-latest",
327
+ "name": "Ministral 8B (latest)",
328
+ "provider": "mistral",
329
+ "family": "ministral",
330
+ "context_window": 128000,
331
+ "max_output_tokens": 128000,
332
+ "capabilities": [
333
+ "function_calling"
334
+ ],
335
+ "modalities": {
336
+ "input": [
337
+ "text"
338
+ ],
339
+ "output": [
340
+ "text"
341
+ ]
342
+ },
343
+ "pricing": {
344
+ "text_tokens": {
345
+ "standard": {
346
+ "input_per_million": 0.1,
347
+ "output_per_million": 0.1
348
+ }
349
+ }
350
+ },
351
+ "knowledge_cutoff": "2024-10",
352
+ "created_at": "2024-10-01"
353
+ },
354
+ {
355
+ "id": "open-mistral-7b",
356
+ "name": "Mistral 7B",
357
+ "provider": "mistral",
358
+ "family": "mistral",
359
+ "context_window": 8000,
360
+ "max_output_tokens": 8000,
361
+ "capabilities": [
362
+ "function_calling"
363
+ ],
364
+ "modalities": {
365
+ "input": [
366
+ "text"
367
+ ],
368
+ "output": [
369
+ "text"
370
+ ]
371
+ },
372
+ "pricing": {
373
+ "text_tokens": {
374
+ "standard": {
375
+ "input_per_million": 0.25,
376
+ "output_per_million": 0.25
377
+ }
378
+ }
379
+ },
380
+ "knowledge_cutoff": "2023-12",
381
+ "created_at": "2023-09-27"
382
+ },
383
+ {
384
+ "id": "mistral-embed",
385
+ "name": "Mistral Embed",
386
+ "provider": "mistral",
387
+ "family": "mistral-embed",
388
+ "context_window": 8000,
389
+ "max_output_tokens": 3072,
390
+ "capabilities": [],
391
+ "modalities": {
392
+ "input": [
393
+ "text"
394
+ ],
395
+ "output": [
396
+ "text"
397
+ ]
398
+ },
399
+ "pricing": {
400
+ "text_tokens": {
401
+ "standard": {
402
+ "input_per_million": 0.1,
403
+ "output_per_million": 0
404
+ }
405
+ }
406
+ },
407
+ "created_at": "2023-12-11"
408
+ },
409
+ {
410
+ "id": "mistral-large",
411
+ "name": "Mistral Large",
412
+ "provider": "mistral",
413
+ "context_window": 128000,
414
+ "capabilities": [],
415
+ "modalities": {
416
+ "input": [
417
+ "text"
418
+ ],
419
+ "output": [
420
+ "text"
421
+ ]
422
+ },
423
+ "pricing": {
424
+ "text_tokens": {
425
+ "standard": {
426
+ "input_per_million": 2.0,
427
+ "output_per_million": 6.0,
428
+ "cache_read_input_per_million": 0.2
429
+ }
430
+ }
431
+ },
432
+ "architecture": "text+file->text",
433
+ "source": "openrouter"
434
+ },
435
+ {
436
+ "id": "mistral-large-latest",
437
+ "name": "Mistral Large (latest)",
438
+ "provider": "mistral",
439
+ "family": "mistral-large",
440
+ "context_window": 262144,
441
+ "max_output_tokens": 262144,
442
+ "capabilities": [
443
+ "function_calling",
444
+ "vision"
445
+ ],
446
+ "modalities": {
447
+ "input": [
448
+ "text",
449
+ "image"
450
+ ],
451
+ "output": [
452
+ "text"
453
+ ]
454
+ },
455
+ "pricing": {
456
+ "text_tokens": {
457
+ "standard": {
458
+ "input_per_million": 0.5,
459
+ "output_per_million": 1.5
460
+ }
461
+ }
462
+ },
463
+ "knowledge_cutoff": "2024-11",
464
+ "created_at": "2024-11-01"
465
+ },
466
+ {
467
+ "id": "mistral-large-2411",
468
+ "name": "Mistral Large 2.1",
469
+ "provider": "mistral",
470
+ "family": "mistral-large",
471
+ "context_window": 131072,
472
+ "max_output_tokens": 16384,
473
+ "capabilities": [
474
+ "function_calling"
475
+ ],
476
+ "modalities": {
477
+ "input": [
478
+ "text"
479
+ ],
480
+ "output": [
481
+ "text"
482
+ ]
483
+ },
484
+ "pricing": {
485
+ "text_tokens": {
486
+ "standard": {
487
+ "input_per_million": 2,
488
+ "output_per_million": 6
489
+ }
490
+ }
491
+ },
492
+ "knowledge_cutoff": "2024-11",
493
+ "created_at": "2024-11-18"
494
+ },
495
+ {
496
+ "id": "mistral-large-2407",
497
+ "name": "Mistral Large 2407",
498
+ "provider": "mistral",
499
+ "context_window": 131072,
500
+ "capabilities": [],
501
+ "modalities": {
502
+ "input": [
503
+ "text"
504
+ ],
505
+ "output": [
506
+ "text"
507
+ ]
508
+ },
509
+ "pricing": {
510
+ "text_tokens": {
511
+ "standard": {
512
+ "input_per_million": 2.0,
513
+ "output_per_million": 6.0,
514
+ "cache_read_input_per_million": 0.2
515
+ }
516
+ }
517
+ },
518
+ "architecture": "text+file->text",
519
+ "source": "openrouter"
520
+ },
521
+ {
522
+ "id": "mistral-large-2512",
523
+ "name": "Mistral Large 3",
524
+ "provider": "mistral",
525
+ "family": "mistral-large",
526
+ "context_window": 262144,
527
+ "max_output_tokens": 262144,
528
+ "capabilities": [
529
+ "function_calling",
530
+ "vision"
531
+ ],
532
+ "modalities": {
533
+ "input": [
534
+ "text",
535
+ "image"
536
+ ],
537
+ "output": [
538
+ "text"
539
+ ]
540
+ },
541
+ "pricing": {
542
+ "text_tokens": {
543
+ "standard": {
544
+ "input_per_million": 0.5,
545
+ "output_per_million": 1.5
546
+ }
547
+ }
548
+ },
549
+ "knowledge_cutoff": "2024-11",
550
+ "created_at": "2024-11-01"
551
+ },
552
+ {
553
+ "id": "mistral-medium-latest",
554
+ "name": "Mistral Medium (latest)",
555
+ "provider": "mistral",
556
+ "family": "mistral-medium",
557
+ "context_window": 262144,
558
+ "max_output_tokens": 262144,
559
+ "capabilities": [
560
+ "function_calling",
561
+ "structured_output",
562
+ "reasoning",
563
+ "vision"
564
+ ],
565
+ "modalities": {
566
+ "input": [
567
+ "text",
568
+ "image"
569
+ ],
570
+ "output": [
571
+ "text"
572
+ ]
573
+ },
574
+ "pricing": {
575
+ "text_tokens": {
576
+ "standard": {
577
+ "input_per_million": 1.5,
578
+ "output_per_million": 7.5
579
+ }
580
+ }
581
+ },
582
+ "created_at": "2026-04-29"
583
+ },
584
+ {
585
+ "id": "mistral-medium-2505",
586
+ "name": "Mistral Medium 3",
587
+ "provider": "mistral",
588
+ "family": "mistral-medium",
589
+ "context_window": 131072,
590
+ "max_output_tokens": 131072,
591
+ "capabilities": [
592
+ "function_calling",
593
+ "vision"
594
+ ],
595
+ "modalities": {
596
+ "input": [
597
+ "text",
598
+ "image"
599
+ ],
600
+ "output": [
601
+ "text"
602
+ ]
603
+ },
604
+ "pricing": {
605
+ "text_tokens": {
606
+ "standard": {
607
+ "input_per_million": 0.4,
608
+ "output_per_million": 2
609
+ }
610
+ }
611
+ },
612
+ "knowledge_cutoff": "2025-05",
613
+ "created_at": "2025-05-07"
614
+ },
615
+ {
616
+ "id": "mistral-medium-2508",
617
+ "name": "Mistral Medium 3.1",
618
+ "provider": "mistral",
619
+ "family": "mistral-medium",
620
+ "context_window": 262144,
621
+ "max_output_tokens": 262144,
622
+ "capabilities": [
623
+ "function_calling",
624
+ "vision"
625
+ ],
626
+ "modalities": {
627
+ "input": [
628
+ "text",
629
+ "image"
630
+ ],
631
+ "output": [
632
+ "text"
633
+ ]
634
+ },
635
+ "pricing": {
636
+ "text_tokens": {
637
+ "standard": {
638
+ "input_per_million": 0.4,
639
+ "output_per_million": 2
640
+ }
641
+ }
642
+ },
643
+ "knowledge_cutoff": "2025-05",
644
+ "created_at": "2025-08-12"
645
+ },
646
+ {
647
+ "id": "mistral-medium-2604",
648
+ "name": "Mistral Medium 3.5",
649
+ "provider": "mistral",
650
+ "family": "mistral-medium",
651
+ "context_window": 262144,
652
+ "max_output_tokens": 262144,
653
+ "capabilities": [
654
+ "function_calling",
655
+ "structured_output",
656
+ "reasoning",
657
+ "vision"
658
+ ],
659
+ "modalities": {
660
+ "input": [
661
+ "text",
662
+ "image"
663
+ ],
664
+ "output": [
665
+ "text"
666
+ ]
667
+ },
668
+ "pricing": {
669
+ "text_tokens": {
670
+ "standard": {
671
+ "input_per_million": 1.5,
672
+ "output_per_million": 7.5
673
+ }
674
+ }
675
+ },
676
+ "created_at": "2026-04-29"
677
+ },
678
+ {
679
+ "id": "mistral-nemo",
680
+ "name": "Mistral Nemo",
681
+ "provider": "mistral",
682
+ "family": "mistral-nemo",
683
+ "context_window": 128000,
684
+ "max_output_tokens": 128000,
685
+ "capabilities": [
686
+ "function_calling"
687
+ ],
688
+ "modalities": {
689
+ "input": [
690
+ "text"
691
+ ],
692
+ "output": [
693
+ "text"
694
+ ]
695
+ },
696
+ "pricing": {
697
+ "text_tokens": {
698
+ "standard": {
699
+ "input_per_million": 0.15,
700
+ "output_per_million": 0.15
701
+ }
702
+ }
703
+ },
704
+ "knowledge_cutoff": "2024-07",
705
+ "created_at": "2024-07-01"
706
+ },
707
+ {
708
+ "id": "mistral-small-latest",
709
+ "name": "Mistral Small (latest)",
710
+ "provider": "mistral",
711
+ "family": "mistral-small",
712
+ "context_window": 256000,
713
+ "max_output_tokens": 256000,
714
+ "capabilities": [
715
+ "function_calling",
716
+ "reasoning",
717
+ "vision"
718
+ ],
719
+ "modalities": {
720
+ "input": [
721
+ "text",
722
+ "image"
723
+ ],
724
+ "output": [
725
+ "text"
726
+ ]
727
+ },
728
+ "pricing": {
729
+ "text_tokens": {
730
+ "standard": {
731
+ "input_per_million": 0.15,
732
+ "output_per_million": 0.6
733
+ }
734
+ }
735
+ },
736
+ "knowledge_cutoff": "2025-06",
737
+ "created_at": "2026-03-16"
738
+ },
739
+ {
740
+ "id": "mistral-small-2506",
741
+ "name": "Mistral Small 3.2",
742
+ "provider": "mistral",
743
+ "family": "mistral-small",
744
+ "context_window": 128000,
745
+ "max_output_tokens": 16384,
746
+ "capabilities": [
747
+ "function_calling",
748
+ "vision"
749
+ ],
750
+ "modalities": {
751
+ "input": [
752
+ "text",
753
+ "image"
754
+ ],
755
+ "output": [
756
+ "text"
757
+ ]
758
+ },
759
+ "pricing": {
760
+ "text_tokens": {
761
+ "standard": {
762
+ "input_per_million": 0.1,
763
+ "output_per_million": 0.3
764
+ }
765
+ }
766
+ },
767
+ "knowledge_cutoff": "2025-03",
768
+ "created_at": "2025-06-20"
769
+ },
770
+ {
771
+ "id": "mistral-small-2603",
772
+ "name": "Mistral Small 4",
773
+ "provider": "mistral",
774
+ "family": "mistral-small",
775
+ "context_window": 256000,
776
+ "max_output_tokens": 256000,
777
+ "capabilities": [
778
+ "function_calling",
779
+ "reasoning",
780
+ "vision"
781
+ ],
782
+ "modalities": {
783
+ "input": [
784
+ "text",
785
+ "image"
786
+ ],
787
+ "output": [
788
+ "text"
789
+ ]
790
+ },
791
+ "pricing": {
792
+ "text_tokens": {
793
+ "standard": {
794
+ "input_per_million": 0.15,
795
+ "output_per_million": 0.6
796
+ }
797
+ }
798
+ },
799
+ "knowledge_cutoff": "2025-06",
800
+ "created_at": "2026-03-16"
801
+ },
802
+ {
803
+ "id": "codestral-2508",
804
+ "name": "Mistral: Codestral 2508",
805
+ "provider": "mistral",
806
+ "context_window": 256000,
807
+ "capabilities": [],
808
+ "modalities": {
809
+ "input": [
810
+ "text"
811
+ ],
812
+ "output": [
813
+ "text"
814
+ ]
815
+ },
816
+ "pricing": {
817
+ "text_tokens": {
818
+ "standard": {
819
+ "input_per_million": 0.3,
820
+ "output_per_million": 0.9,
821
+ "cache_read_input_per_million": 0.03
822
+ }
823
+ }
824
+ },
825
+ "architecture": "text+file->text",
826
+ "source": "openrouter"
827
+ },
828
+ {
829
+ "id": "ministral-14b-2512",
830
+ "name": "Mistral: Ministral 3 14B 2512",
831
+ "provider": "mistral",
832
+ "context_window": 262144,
833
+ "capabilities": [
834
+ "vision"
835
+ ],
836
+ "modalities": {
837
+ "input": [
838
+ "text",
839
+ "image"
840
+ ],
841
+ "output": [
842
+ "text"
843
+ ]
844
+ },
845
+ "pricing": {
846
+ "text_tokens": {
847
+ "standard": {
848
+ "input_per_million": 0.2,
849
+ "output_per_million": 0.2,
850
+ "cache_read_input_per_million": 0.02
851
+ }
852
+ }
853
+ },
854
+ "architecture": "text+image->text",
855
+ "source": "openrouter"
856
+ },
857
+ {
858
+ "id": "ministral-3b-2512",
859
+ "name": "Mistral: Ministral 3 3B 2512",
860
+ "provider": "mistral",
861
+ "context_window": 131072,
862
+ "capabilities": [
863
+ "vision"
864
+ ],
865
+ "modalities": {
866
+ "input": [
867
+ "text",
868
+ "image"
869
+ ],
870
+ "output": [
871
+ "text"
872
+ ]
873
+ },
874
+ "pricing": {
875
+ "text_tokens": {
876
+ "standard": {
877
+ "input_per_million": 0.1,
878
+ "output_per_million": 0.1,
879
+ "cache_read_input_per_million": 0.01
880
+ }
881
+ }
882
+ },
883
+ "architecture": "text+image->text",
884
+ "source": "openrouter"
885
+ },
886
+ {
887
+ "id": "ministral-8b-2512",
888
+ "name": "Mistral: Ministral 3 8B 2512",
889
+ "provider": "mistral",
890
+ "context_window": 262144,
891
+ "capabilities": [
892
+ "vision"
893
+ ],
894
+ "modalities": {
895
+ "input": [
896
+ "text",
897
+ "image"
898
+ ],
899
+ "output": [
900
+ "text"
901
+ ]
902
+ },
903
+ "pricing": {
904
+ "text_tokens": {
905
+ "standard": {
906
+ "input_per_million": 0.15,
907
+ "output_per_million": 0.15,
908
+ "cache_read_input_per_million": 0.015
909
+ }
910
+ }
911
+ },
912
+ "architecture": "text+image->text",
913
+ "source": "openrouter"
914
+ },
915
+ {
916
+ "id": "mistral-medium-3",
917
+ "name": "Mistral: Mistral Medium 3",
918
+ "provider": "mistral",
919
+ "context_window": 131072,
920
+ "capabilities": [],
921
+ "modalities": {
922
+ "input": [
923
+ "text"
924
+ ],
925
+ "output": [
926
+ "text"
927
+ ]
928
+ },
929
+ "pricing": {
930
+ "text_tokens": {
931
+ "standard": {
932
+ "input_per_million": 0.4,
933
+ "output_per_million": 2.0,
934
+ "cache_read_input_per_million": 0.04
935
+ }
936
+ }
937
+ },
938
+ "architecture": "text+image+file->text",
939
+ "source": "openrouter"
940
+ },
941
+ {
942
+ "id": "mistral-medium-3.1",
943
+ "name": "Mistral: Mistral Medium 3.1",
944
+ "provider": "mistral",
945
+ "context_window": 131072,
946
+ "capabilities": [],
947
+ "modalities": {
948
+ "input": [
949
+ "text"
950
+ ],
951
+ "output": [
952
+ "text"
953
+ ]
954
+ },
955
+ "pricing": {
956
+ "text_tokens": {
957
+ "standard": {
958
+ "input_per_million": 0.4,
959
+ "output_per_million": 2.0,
960
+ "cache_read_input_per_million": 0.04
961
+ }
962
+ }
963
+ },
964
+ "architecture": "text+image+file->text",
965
+ "source": "openrouter"
966
+ },
967
+ {
968
+ "id": "mistral-medium-3-5",
969
+ "name": "Mistral: Mistral Medium 3.5",
970
+ "provider": "mistral",
971
+ "context_window": 262144,
972
+ "capabilities": [],
973
+ "modalities": {
974
+ "input": [
975
+ "text"
976
+ ],
977
+ "output": [
978
+ "text"
979
+ ]
980
+ },
981
+ "pricing": {
982
+ "text_tokens": {
983
+ "standard": {
984
+ "input_per_million": 1.5,
985
+ "output_per_million": 7.5
986
+ }
987
+ }
988
+ },
989
+ "architecture": "text+image+file->text",
990
+ "source": "openrouter"
991
+ },
992
+ {
993
+ "id": "mistral-small-24b-instruct-2501",
994
+ "name": "Mistral: Mistral Small 3",
995
+ "provider": "mistral",
996
+ "context_window": 32768,
997
+ "max_output_tokens": 16384,
998
+ "capabilities": [],
999
+ "modalities": {
1000
+ "input": [
1001
+ "text"
1002
+ ],
1003
+ "output": [
1004
+ "text"
1005
+ ]
1006
+ },
1007
+ "pricing": {
1008
+ "text_tokens": {
1009
+ "standard": {
1010
+ "input_per_million": 0.05,
1011
+ "output_per_million": 0.08
1012
+ }
1013
+ }
1014
+ },
1015
+ "architecture": "text->text",
1016
+ "source": "openrouter"
1017
+ },
1018
+ {
1019
+ "id": "mistral-small-3.1-24b-instruct",
1020
+ "name": "Mistral: Mistral Small 3.1 24B",
1021
+ "provider": "mistral",
1022
+ "context_window": 128000,
1023
+ "max_output_tokens": 128000,
1024
+ "capabilities": [
1025
+ "vision"
1026
+ ],
1027
+ "modalities": {
1028
+ "input": [
1029
+ "text",
1030
+ "image"
1031
+ ],
1032
+ "output": [
1033
+ "text"
1034
+ ]
1035
+ },
1036
+ "pricing": {
1037
+ "text_tokens": {
1038
+ "standard": {
1039
+ "input_per_million": 0.351,
1040
+ "output_per_million": 0.555
1041
+ }
1042
+ }
1043
+ },
1044
+ "architecture": "text+image->text",
1045
+ "source": "openrouter"
1046
+ },
1047
+ {
1048
+ "id": "mistral-small-3.2-24b-instruct",
1049
+ "name": "Mistral: Mistral Small 3.2 24B",
1050
+ "provider": "mistral",
1051
+ "context_window": 131072,
1052
+ "capabilities": [
1053
+ "vision"
1054
+ ],
1055
+ "modalities": {
1056
+ "input": [
1057
+ "text",
1058
+ "image"
1059
+ ],
1060
+ "output": [
1061
+ "text"
1062
+ ]
1063
+ },
1064
+ "pricing": {
1065
+ "text_tokens": {
1066
+ "standard": {
1067
+ "input_per_million": 0.1,
1068
+ "output_per_million": 0.3,
1069
+ "cache_read_input_per_million": 0.01
1070
+ }
1071
+ }
1072
+ },
1073
+ "architecture": "text+image->text",
1074
+ "source": "openrouter"
1075
+ },
1076
+ {
1077
+ "id": "mixtral-8x22b-instruct",
1078
+ "name": "Mistral: Mixtral 8x22B Instruct",
1079
+ "provider": "mistral",
1080
+ "context_window": 65536,
1081
+ "capabilities": [],
1082
+ "modalities": {
1083
+ "input": [
1084
+ "text"
1085
+ ],
1086
+ "output": [
1087
+ "text"
1088
+ ]
1089
+ },
1090
+ "pricing": {
1091
+ "text_tokens": {
1092
+ "standard": {
1093
+ "input_per_million": 2.0,
1094
+ "output_per_million": 6.0,
1095
+ "cache_read_input_per_million": 0.2
1096
+ }
1097
+ }
1098
+ },
1099
+ "architecture": "text+file->text",
1100
+ "source": "openrouter"
1101
+ },
1102
+ {
1103
+ "id": "mistral-saba",
1104
+ "name": "Mistral: Saba",
1105
+ "provider": "mistral",
1106
+ "context_window": 32768,
1107
+ "capabilities": [],
1108
+ "modalities": {
1109
+ "input": [
1110
+ "text"
1111
+ ],
1112
+ "output": [
1113
+ "text"
1114
+ ]
1115
+ },
1116
+ "pricing": {
1117
+ "text_tokens": {
1118
+ "standard": {
1119
+ "input_per_million": 0.2,
1120
+ "output_per_million": 0.6,
1121
+ "cache_read_input_per_million": 0.02
1122
+ }
1123
+ }
1124
+ },
1125
+ "architecture": "text+file->text",
1126
+ "source": "openrouter"
1127
+ },
1128
+ {
1129
+ "id": "voxtral-small-24b-2507",
1130
+ "name": "Mistral: Voxtral Small 24B 2507",
1131
+ "provider": "mistral",
1132
+ "context_window": 32000,
1133
+ "capabilities": [],
1134
+ "modalities": {
1135
+ "input": [
1136
+ "text"
1137
+ ],
1138
+ "output": [
1139
+ "text"
1140
+ ]
1141
+ },
1142
+ "pricing": {
1143
+ "text_tokens": {
1144
+ "standard": {
1145
+ "input_per_million": 0.1,
1146
+ "output_per_million": 0.3,
1147
+ "cache_read_input_per_million": 0.01
1148
+ }
1149
+ }
1150
+ },
1151
+ "architecture": "text+file+audio->text",
1152
+ "source": "openrouter"
1153
+ },
1154
+ {
1155
+ "id": "open-mixtral-8x22b",
1156
+ "name": "Mixtral 8x22B",
1157
+ "provider": "mistral",
1158
+ "family": "mixtral",
1159
+ "context_window": 64000,
1160
+ "max_output_tokens": 64000,
1161
+ "capabilities": [
1162
+ "function_calling"
1163
+ ],
1164
+ "modalities": {
1165
+ "input": [
1166
+ "text"
1167
+ ],
1168
+ "output": [
1169
+ "text"
1170
+ ]
1171
+ },
1172
+ "pricing": {
1173
+ "text_tokens": {
1174
+ "standard": {
1175
+ "input_per_million": 2,
1176
+ "output_per_million": 6
1177
+ }
1178
+ }
1179
+ },
1180
+ "knowledge_cutoff": "2024-04",
1181
+ "created_at": "2024-04-17"
1182
+ },
1183
+ {
1184
+ "id": "open-mixtral-8x7b",
1185
+ "name": "Mixtral 8x7B",
1186
+ "provider": "mistral",
1187
+ "family": "mixtral",
1188
+ "context_window": 32000,
1189
+ "max_output_tokens": 32000,
1190
+ "capabilities": [
1191
+ "function_calling"
1192
+ ],
1193
+ "modalities": {
1194
+ "input": [
1195
+ "text"
1196
+ ],
1197
+ "output": [
1198
+ "text"
1199
+ ]
1200
+ },
1201
+ "pricing": {
1202
+ "text_tokens": {
1203
+ "standard": {
1204
+ "input_per_million": 0.7,
1205
+ "output_per_million": 0.7
1206
+ }
1207
+ }
1208
+ },
1209
+ "knowledge_cutoff": "2024-01",
1210
+ "created_at": "2023-12-11"
1211
+ },
1212
+ {
1213
+ "id": "open-mistral-nemo",
1214
+ "name": "Open Mistral Nemo",
1215
+ "provider": "mistral",
1216
+ "family": "mistral-nemo",
1217
+ "context_window": 128000,
1218
+ "max_output_tokens": 128000,
1219
+ "capabilities": [
1220
+ "function_calling"
1221
+ ],
1222
+ "modalities": {
1223
+ "input": [
1224
+ "text"
1225
+ ],
1226
+ "output": [
1227
+ "text"
1228
+ ]
1229
+ },
1230
+ "pricing": {
1231
+ "text_tokens": {
1232
+ "standard": {
1233
+ "input_per_million": 0.15,
1234
+ "output_per_million": 0.15
1235
+ }
1236
+ }
1237
+ },
1238
+ "knowledge_cutoff": "2024-07",
1239
+ "created_at": "2024-07-01"
1240
+ },
1241
+ {
1242
+ "id": "pixtral-12b",
1243
+ "name": "Pixtral 12B",
1244
+ "provider": "mistral",
1245
+ "family": "pixtral",
1246
+ "context_window": 128000,
1247
+ "max_output_tokens": 128000,
1248
+ "capabilities": [
1249
+ "function_calling",
1250
+ "vision"
1251
+ ],
1252
+ "modalities": {
1253
+ "input": [
1254
+ "text",
1255
+ "image"
1256
+ ],
1257
+ "output": [
1258
+ "text"
1259
+ ]
1260
+ },
1261
+ "pricing": {
1262
+ "text_tokens": {
1263
+ "standard": {
1264
+ "input_per_million": 0.15,
1265
+ "output_per_million": 0.15
1266
+ }
1267
+ }
1268
+ },
1269
+ "knowledge_cutoff": "2024-09",
1270
+ "created_at": "2024-09-01"
1271
+ },
1272
+ {
1273
+ "id": "pixtral-large-latest",
1274
+ "name": "Pixtral Large (latest)",
1275
+ "provider": "mistral",
1276
+ "family": "pixtral",
1277
+ "context_window": 128000,
1278
+ "max_output_tokens": 128000,
1279
+ "capabilities": [
1280
+ "function_calling",
1281
+ "vision"
1282
+ ],
1283
+ "modalities": {
1284
+ "input": [
1285
+ "text",
1286
+ "image"
1287
+ ],
1288
+ "output": [
1289
+ "text"
1290
+ ]
1291
+ },
1292
+ "pricing": {
1293
+ "text_tokens": {
1294
+ "standard": {
1295
+ "input_per_million": 2,
1296
+ "output_per_million": 6
1297
+ }
1298
+ }
1299
+ },
1300
+ "knowledge_cutoff": "2024-11",
1301
+ "created_at": "2024-11-01"
1302
+ }
1303
+ ]