File size: 4,867 Bytes
9d50993
 
 
 
 
 
 
 
 
a1c1ca9
 
02f1024
a1c1ca9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
---
title: LLM Providers
emoji: ๐ŸŒ
colorFrom: blue
colorTo: indigo
short_description: Compare pricing, capabilities, benchmark scores, EU focus.
sdk: docker
pinned: false
---
# LLM Providers

**Live: [llmproviders.vercel.app](https://llmproviders.vercel.app) or [Hugging Face Space](https://huggingface.co/spaces/cstr/LLMProviders)**

Compare pricing, capabilities, and benchmark scores across LLM providers โ€” with a focus on European data-sovereignty options.

## Features

- **Price comparison** โ€” input/output cost per 1M tokens (or per image) across all providers, normalized to USD
- **Jurisdiction filter** โ€” filter by EU, US, or other regions; flags GDPR-compliant and Cloud Act-exposed providers
- **Capabilities** โ€” vision ๐Ÿ‘, reasoning ๐Ÿ’ก, tool use ๐Ÿ”ง, image generation ๐ŸŽจ, audio, video, file input
- **Model types** โ€” chat, vision, image-gen, embedding, audio
- **Benchmark scores** โ€” Arena ELO, Aider pass rate, LiveBench, GPQA, MMLU-Pro, IFEval, BBH, HumanEval, and more
- **Group by model** โ€” collapse providers behind each model to compare who offers it cheapest
- **Sort & search** โ€” click any column header to sort; search filters model names instantly

## Providers

| Provider | Region | Note |
|---|---|---|
| IONOS | EU ๐Ÿ‡ฉ๐Ÿ‡ช | GDPR-compliant, sovereign |
| Infomaniak | EU ๐Ÿ‡จ๐Ÿ‡ญ | Swiss, GDPR-compliant |
| Langdock | EU ๐Ÿ‡ฉ๐Ÿ‡ช | GDPR-compliant, sovereign |
| Nebius | EU ๐Ÿ‡ซ๐Ÿ‡ฎ | GDPR-compliant |
| Scaleway | EU ๐Ÿ‡ซ๐Ÿ‡ท | GDPR-compliant |
| Mistral AI | EU ๐Ÿ‡ซ๐Ÿ‡ท | GDPR-compliant |
| Black Forest Labs | EU ๐Ÿ‡ฉ๐Ÿ‡ช | FLUX image models |
| OpenRouter | US | Aggregator, 600+ models |
| Requesty | US | Aggregator with EU endpoints |
| Groq | US | Fast inference |

## Benchmark Sources

| Source | Models | Notes |
|---|---|---|
| [Chatbot Arena](https://lmarena.ai) | ~316 | Human-preference ELO ratings |
| [LiveBench](https://livebench.ai) | ~76 | Contamination-free, monthly updates |
| [Aider](https://aider.chat/docs/leaderboards/) | ~97 | Code editing benchmark |
| [HF Open LLM Leaderboard](https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard) | ~2900 | Standardised evals for open models |
| [LLMStats](https://github.com/AchilleasDrakou/LLMStats) | ~71 | Curated self-reported benchmarks |

## Stack

- **Frontend** โ€” Vite + React 19 + TypeScript (static SPA, no backend)
- **Data** โ€” `data/providers.json` and `data/benchmarks.json` bundled at build time
- **Fetchers** โ€” Node.js scripts in `scripts/providers/` that scrape/call provider APIs
- **Management server** โ€” local Express server (`server.js`) for live data refresh via the in-app panel

## Local Development

```bash
npm install

# Start the Vite dev server (port 5173)
npm run dev

# Start the management API server (port 3001) โ€” enables the โš™ Manage Data panel
node server.js
```

## Updating Data

Fetcher scripts pull live pricing from each provider and update `data/providers.json`:

```bash
npm run fetch               # all providers
npm run fetch:openrouter    # OpenRouter only
npm run fetch:requesty      # Requesty only (needs REQUESTY_API_KEY)
npm run fetch:nebius        # Nebius
npm run fetch:mistral       # Mistral AI
npm run fetch:scaleway      # Scaleway
npm run fetch:langdock      # Langdock
npm run fetch:groq          # Groq
npm run fetch:ionos         # IONOS
npm run fetch:infomaniak    # Infomaniak
npm run fetch:bfl           # Black Forest Labs
```

Benchmark data:

```bash
npm run fetch:benchmarks              # all sources (~10 min)
node scripts/fetch-benchmarks.js arena     # Chatbot Arena only (fast)
node scripts/fetch-benchmarks.js livebench # LiveBench only
node scripts/fetch-benchmarks.js aider     # Aider only
node scripts/fetch-benchmarks.js hf        # HF Leaderboard only (~5 min)
node scripts/fetch-benchmarks.js llmstats  # LLMStats only
```

API keys (optional โ€” checked in `scripts/load-env.js`):

```
REQUESTY_API_KEY=...       # required for Requesty
OPENROUTER_API_KEY=...     # optional; unlocks 600+ models vs 342 public
```

Place in `.env` in the project root or `../AIToolkit/.env`.

## Deployment

The app is a fully static Vite build โ€” deploy anywhere that serves static files.

```bash
npm run build       # produces dist/
vercel --prod       # deploy to Vercel
```

To update data after deployment: run the fetchers locally, commit the updated JSON files, and push โ€” Vercel auto-redeploys on push.

The management panel (โš™ Manage Data) is local-only and shows an offline notice in production, which is expected.

## Adding a Provider

1. Create `scripts/providers/<name>.js` exporting `{ providerName, fetch<Name> }`
2. Register it in `scripts/fetch-providers.js` under `FETCHER_MODULES`
3. Add an entry in `data/providers.json`
4. Add an npm script in `package.json`

## License

[GNU Affero General Public License v3.0](LICENSE)