diff --git a/.gitignore b/.gitignore
index 1b68233..c83af47 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,5 @@ venv
.venv
.env
.aider*
-*.json
\ No newline at end of file
+*.json
+*.pyc
diff --git a/README.md b/README.md
index f853ed1..91df468 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,8 @@ This lists various services that provide free access or credits towards API-base
-| OpenRouter | 20 requests/minute 50 requests/day 1000 requests/day with $10 credit balance | Bytedance UI Tars 72B | |
+| OpenRouter | 20 requests/minute 50 requests/day 1000 requests/day with $10 credit balance | Bytedance UI Tars 72B | |
+| DeepCoder 14B Preview | |
| DeepHermes 3 Llama 3 8B Preview | |
| DeepSeek R1 | |
| DeepSeek R1 Distill Llama 70B | |
@@ -62,6 +63,7 @@ This lists various services that provide free access or credits towards API-base
| Moonlight-16B-A3B-Instruct | |
| OlympicCoder 32B | |
| OlympicCoder 7B | |
+| QwQ 32B ArliAI RpR v1 | |
| Qwen 2.5 72B Instruct | |
| Qwen 2.5 7B Instruct | |
| Qwen 2.5 VL 32B Instruct | |
@@ -74,59 +76,21 @@ This lists various services that provide free access or credits towards API-base
| Reka Flash 3 | |
| Rogue Rose 103B v0.2 | |
| Zephyr 7B Beta | |
+| Google AI Studio | Data is used for training (when used outside of the UK/CH/EEA/EU). | Gemini 2.5 Pro (Experimental) | 5,000,000 tokens/day 1,000,000 tokens/minute 25 requests/day 5 requests/minute |
+| Gemini 2.0 Flash | 1,000,000 tokens/minute 1,500 requests/day 15 requests/minute |
+| Gemini 2.0 Flash-Lite | 1,000,000 tokens/minute 1,500 requests/day 30 requests/minute |
+| Gemini 2.0 Flash (Experimental) | 4,000,000 tokens/minute 1,500 requests/day 10 requests/minute |
+| Gemini 1.5 Flash | 1,000,000 tokens/minute 1,500 requests/day 15 requests/minute |
+| Gemini 1.5 Flash-8B | 1,000,000 tokens/minute 1,500 requests/day 15 requests/minute |
+| Gemini 1.5 Pro | 32,000 tokens/minute 50 requests/day 2 requests/minute |
+| LearnLM 1.5 Pro (Experimental) | 1,500 requests/day 15 requests/minute |
+| Gemma 3 27B Instruct | 15,000 tokens/minute 14,400 requests/day 30 requests/minute |
+| Gemma 3 12B Instruct | 15,000 tokens/minute 14,400 requests/day 30 requests/minute |
+| Gemma 3 4B Instruct | 15,000 tokens/minute 14,400 requests/day 30 requests/minute |
+| Gemma 3 1B Instruct | 15,000 tokens/minute 14,400 requests/day 30 requests/minute |
+| text-embedding-004 | 150 batch requests/minute 1,500 requests/minute 100 content/batch Shared Quota |
+| embedding-001 |
- | Google AI Studio |
- Data is used for training (when used outside of the UK/CH/EEA/EU). |
- Gemini 2.5 Pro (Experimental) |
- 5,000,000 tokens/day 1,000,000 tokens/minute 25 requests/day 5 requests/minute |
-
-
- | Gemini 2.0 Flash |
- 1,000,000 tokens/minute 1,500 requests/day 15 requests/minute |
-
-
- | Gemini 2.0 Flash-Lite |
- 1,000,000 tokens/minute 1,500 requests/day 30 requests/minute |
-
-
- | Gemini 2.0 Flash (Experimental) |
- 4,000,000 tokens/minute 1,500 requests/day 10 requests/minute |
-
-
- | Gemini 1.5 Flash |
- 1,000,000 tokens/minute 1,500 requests/day 15 requests/minute |
-
-
- | Gemini 1.5 Flash-8B |
- 1,000,000 tokens/minute 1,500 requests/day 15 requests/minute |
-
-
- | Gemini 1.5 Pro |
- 32,000 tokens/minute 50 requests/day 2 requests/minute |
-
-
- | LearnLM 1.5 Pro (Experimental) |
- 1,500 requests/day 15 requests/minute |
-
-
- | Gemma 3 27B Instruct |
- 15,000 tokens/minute 14,400 requests/day 30 requests/minute |
-
-
- | Gemma 3 12B Instruct |
- 15,000 tokens/minute 14,400 requests/day 30 requests/minute |
-
-
- | Gemma 3 4B Instruct |
- 15,000 tokens/minute 14,400 requests/day 30 requests/minute |
-
-
- | text-embedding-004 |
- 150 batch requests/minute 1,500 requests/minute 100 content/batch |
-
-
- | embedding-001 |
-
| NVIDIA NIM |
Phone number verification required. Models tend to be context window limited. |
Various open models |
@@ -232,7 +196,7 @@ This lists various services that provide free access or credits towards API-base
| Aya Vision 32B |
-
| GitHub Models | Extremely restrictive input/output token limits. Rate limits dependent on Copilot subscription tier (Free/Pro/Business/Enterprise) | AI21 Jamba 1.5 Large | |
+ | GitHub Models | Extremely restrictive input/output token limits. Rate limits dependent on Copilot subscription tier (Free/Pro/Business/Enterprise) | AI21 Jamba 1.5 Large | |
| AI21 Jamba 1.5 Mini | |
| Codestral 25.01 | |
| Cohere Command R | |
@@ -244,6 +208,8 @@ This lists various services that provide free access or credits towards API-base
| DeepSeek-R1 | |
| DeepSeek-V3-0324 | |
| JAIS 30b Chat | |
+| Llama 4 Maverick 17B 128E Instruct FP8 | |
+| Llama 4 Scout 17B 16E Instruct | |
| Llama-3.2-11B-Vision-Instruct | |
| Llama-3.2-90B-Vision-Instruct | |
| Llama-3.3-70B-Instruct | |
@@ -279,7 +245,8 @@ This lists various services that provide free access or credits towards API-base
| Phi-4 | |
| Phi-4-mini-instruct | |
| Phi-4-multimodal-instruct | |
-| Chutes | Distributed, decentralized crypto-based compute. Data is sent to individual hosts. | DeepHermes 3 Llama 3 8B Preview | |
+| Chutes | Distributed, decentralized crypto-based compute. Data is sent to individual hosts. | DeepCoder 14B Preview | |
+| DeepHermes 3 Llama 3 8B Preview | |
| DeepSeek R1 | |
| DeepSeek R1-Zero | |
| DeepSeek V3 | |
@@ -299,6 +266,7 @@ This lists various services that provide free access or credits towards API-base
| Mistral Small 3.1 24B Instruct 2503 | |
| OlympicCoder 32B | |
| OlympicCoder 7B | |
+| QwQ 32B ArliAI RpR v1 | |
| Qwen 2.5 VL 32B Instruct | |
| Reka Flash 3 | |
| Cloudflare Workers AI | 10,000 neurons/day | DeepSeek R1 Distill Qwen 32B | |
diff --git a/src/data.py b/src/data.py
new file mode 100644
index 0000000..5e3525a
--- /dev/null
+++ b/src/data.py
@@ -0,0 +1,290 @@
+MODEL_TO_NAME_MAPPING = {
+ "@cf/deepseek-ai/deepseek-math-7b-instruct": "Deepseek Math 7B Instruct",
+ "@cf/defog/sqlcoder-7b-2": "SQLCoder 7B 2",
+ "@cf/fblgit/una-cybertron-7b-v2-bf16": "Una Cybertron 7B v2 (BF16)",
+ "@cf/google/gemma-2b-it-lora": "Gemma 2B Instruct (LoRA)",
+ "@cf/google/gemma-7b-it-lora": "Gemma 7B Instruct (LoRA)",
+ "@cf/meta-llama/llama-2-7b-chat-hf-lora": "Llama 2 7B Chat (LoRA)",
+ "@cf/meta/llama-2-7b-chat-fp16": "Llama 2 7B Chat (FP16)",
+ "@cf/meta/llama-2-7b-chat-int8": "Llama 2 7B Chat (INT8)",
+ "@cf/meta/llama-3-8b-instruct-awq": "Llama 3 8B Instruct (AWQ)",
+ "@cf/meta/llama-3-8b-instruct": "Llama 3 8B Instruct",
+ "@cf/meta/llama-3.1-8b-instruct-awq": "Llama 3.1 8B Instruct (AWQ)",
+ "@cf/meta/llama-3.1-8b-instruct-fp8": "Llama 3.1 8B Instruct (FP8)",
+ "@cf/meta/llama-3.1-8b-instruct": "Llama 3.1 8B Instruct",
+ "@cf/microsoft/phi-2": "Phi-2",
+ "@cf/mistral/mistral-7b-instruct-v0.1-vllm": "Mistral 7B Instruct v0.1",
+ "@cf/mistral/mistral-7b-instruct-v0.1": "Mistral 7B Instruct v0.1",
+ "@cf/mistral/mistral-7b-instruct-v0.2-lora": "Mistral 7B Instruct v0.2 (LoRA)",
+ "@cf/openchat/openchat-3.5-0106": "OpenChat 3.5 0106",
+ "@cf/qwen/qwen1.5-0.5b-chat": "Qwen 1.5 0.5B Chat",
+ "@cf/qwen/qwen1.5-1.8b-chat": "Qwen 1.5 1.8B Chat",
+ "@cf/qwen/qwen1.5-14b-chat-awq": "Qwen 1.5 14B Chat (AWQ)",
+ "@cf/qwen/qwen1.5-7b-chat-awq": "Qwen 1.5 7B Chat (AWQ)",
+ "@cf/thebloke/discolm-german-7b-v1-awq": "Discolm German 7B v1 (AWQ)",
+ "@cf/tiiuae/falcon-7b-instruct": "Falcom 7B Instruct",
+ "@cf/tinyllama/tinyllama-1.1b-chat-v1.0": "TinyLlama 1.1B Chat v1.0",
+ "@hf/google/gemma-7b-it": "Gemma 7B Instruct",
+ "@hf/meta-llama/meta-llama-3-8b-instruct": "Llama 3 8B Instruct",
+ "@hf/mistral/mistral-7b-instruct-v0.2": "Mistral 7B Instruct v0.2",
+ "@hf/nexusflow/starling-lm-7b-beta": "Starling LM 7B Beta",
+ "@hf/nousresearch/hermes-2-pro-mistral-7b": "Hermes 2 Pro Mistral 7B",
+ "@hf/thebloke/deepseek-coder-6.7b-base-awq": "Deepseek Coder 6.7B Base (AWQ)",
+ "@hf/thebloke/deepseek-coder-6.7b-instruct-awq": "Deepseek Coder 6.7B Instruct (AWQ)",
+ "@hf/thebloke/llama-2-13b-chat-awq": "Llama 2 13B Chat (AWQ)",
+ "@hf/thebloke/llamaguard-7b-awq": "LlamaGuard 7B (AWQ)",
+ "@hf/thebloke/mistral-7b-instruct-v0.1-awq": "Mistral 7B Instruct v0.1 (AWQ)",
+ "@hf/thebloke/neural-chat-7b-v3-1-awq": "Neural Chat 7B v3.1 (AWQ)",
+ "@hf/thebloke/openhermes-2.5-mistral-7b-awq": "OpenHermes 2.5 Mistral 7B (AWQ)",
+ "@hf/thebloke/zephyr-7b-beta-awq": "Zephyr 7B Beta (AWQ)",
+ "codellama-13b-instruct-hf": "CodeLlama 13B Instruct",
+ "distil-whisper-large-v3-en": "Distil Whisper Large v3",
+ "gemma-7b-it": "Gemma 7B Instruct (Deprecated)",
+ "gemma2-9b-it": "Gemma 2 9B Instruct",
+ "google/gemma-2-9b-it:free": "Gemma 2 9B Instruct",
+ "google/gemma-7b-it:free": "Gemma 7B Instruct",
+ "gryphe/mythomist-7b:free": "Mythomist 7B",
+ "huggingfaceh4/zephyr-7b-beta:free": "Zephyr 7B Beta",
+ "llama-2-13b-chat-hf": "Llama 2 13B Chat",
+ "llama-3-70b-instruct": "Llama 3 70B Instruct",
+ "llama-3-8b-instruct": "Llama 3 8B Instruct",
+ "llama-3.1-405b-reasoning": "Llama 3.1 405B",
+ "llama-3.1-70b-versatile": "Llama 3.1 70B",
+ "llama-3.1-8b-instant": "Llama 3.1 8B",
+ "llama-guard-3-8b": "Llama Guard 3 8B",
+ "llama3-70b-8192": "Llama 3 70B",
+ "llama3-8b-8192": "Llama 3 8B",
+ "llama3-groq-70b-8192-tool-use-preview": "Llama 3 70B - Groq Tool Use Preview",
+ "llama3-groq-8b-8192-tool-use-preview": "Llama 3 8B - Groq Tool Use Preview",
+ "meta-llama/llama-3-8b-instruct:free": "Llama 3 8B Instruct",
+ "meta-llama/llama-3.1-8b-instruct:free": "Llama 3.1 8B Instruct",
+ "meta-llama/meta-llama-3-70b-instruct": "Llama 3 70B Instruct",
+ "meta-llama/meta-llama-3.1-405b": "Llama 3.1 405B Base",
+ "meta-llama/meta-llama-3.1-405b-fp8": "Llama 3.1 405B Base (FP8)",
+ "meta-llama/meta-llama-3.1-405b-instruct": "Llama 3.1 405B Instruct",
+ "meta-llama/meta-llama-3.1-70b-instruct": "Llama 3.1 70B Instruct",
+ "meta-llama/meta-llama-3.1-8b-instruct": "Llama 3.1 8B Instruct",
+ "microsoft/phi-3-medium-128k-instruct:free": "Phi-3 Medium 128k Instruct",
+ "microsoft/phi-3-mini-128k-instruct:free": "Phi-3 Mini 128k Instruct",
+ "mistral-7b-instruct": "Mistral 7B Instruct",
+ "mistralai/mistral-7b-instruct:free": "Mistral 7B Instruct",
+ "mixtral-8x22b-instruct": "Mixtral 8x22B Instruct",
+ "mixtral-8x7b-32768": "Mixtral 8x7B",
+ "mixtral-8x7b-instruct": "Mixtral 8x7B Instruct",
+ "nousresearch/hermes-3-llama-3.1-70b": "Hermes 3 Llama 3.1 70B",
+ "nousresearch/nous-capybara-7b:free": "Nous Capybara 7B",
+ "openchat/openchat-7b:free": "OpenChat 7B",
+ "qwen/qwen-2-7b-instruct:free": "Qwen 2 7B Instruct",
+ "qwen/qwen2-72b-instruct": "Qwen 2 72B Instruct",
+ "undi95/toppy-m-7b:free": "Toppy M 7B",
+ "whisper-large-v3": "Whisper Large v3",
+ "whisper-large-v3-turbo": "Whisper Large v3 Turbo",
+ "01-ai/yi-34b-chat": "Yi 34B Chat",
+ "01-ai/yi-1.5-34b-chat": "Yi 1.5 34B Chat",
+ "nousresearch/hermes-3-llama-3.1-70b-fp8": "Hermes 3 Llama 3.1 70B (FP8)",
+ "nousresearch/hermes-3-llama-3.1-405b:free": "Hermes 3 Llama 3.1 405B",
+ "llava-v1.5-7b-4096-preview": "LLaVA 1.5 7B",
+ "mattshumer/reflection-llama-3.1-70b": "Reflection Llama 3.1 70B",
+ "mattshumer/reflection-70b:free": "Reflection Llama 3.1 70B",
+ "mattshumer/reflection-llama-3.1-70b-completions": "Reflection Llama 3.1 70B Completions",
+ "deepseek-ai/deepseek-v2.5": "DeepSeek V2.5",
+ "mistralai/pixtral-12b-2409": "Pixtral 12B (2409)",
+ "qwen/qwen2-vl-7b-instruct": "Qwen2-VL 7B Instruct",
+ "mistralai/pixtral-12b:free": "Pixtral 12B",
+ "qwen/qwen-2-vl-7b-instruct:free": "Qwen2-VL 7B Instruct",
+ "qwen/qwen2-vl-72b-instruct": "Qwen2-VL 72B Instruct",
+ "qwen/qwen2.5-72b-instruct": "Qwen2.5 72B Instruct",
+ "llama-3.2-90b-text-preview": "Llama 3.2 90B (Text Only)",
+ "llama-3.2-3b-preview": "Llama 3.2 3B",
+ "llama-3.2-11b-text-preview": "Llama 3.2 11B (Text Only)",
+ "llama-3.2-1b-preview": "Llama 3.2 1B",
+ "@cf/meta/llama-3.2-1b-instruct": "Llama 3.2 1B Instruct",
+ "meta-llama/llama-3.2-11b-vision-instruct:free": "Llama 3.2 11B Vision Instruct",
+ "@cf/meta/llama-3.2-11b-vision-instruct": "Llama 3.2 11B Vision Instruct",
+ "@cf/meta/llama-3.2-3b-instruct": "Llama 3.2 3B Instruct",
+ "meta-llama/llama-3.2-90b-vision-instruct": "Llama 3.2 90B Vision Instruct",
+ "meta-llama/llama-3.2-3b-instruct": "Llama 3.2 3B Instruct",
+ "llama-3.2-11b-vision-preview": "Llama 3.2 11B Vision",
+ "llama-3.2-90b-vision-preview": "Llama 3.2 90B Vision",
+ "meta-llama/llama-3.2-90b-vision": "Llama 3.2 90B Vision",
+ "meta-llama/llama-3.1-70b-instruct:free": "Llama 3.1 70B Instruct",
+ "meta-llama/llama-3.2-1b-instruct:free": "Llama 3.2 1B Instruct",
+ "liquid/lfm-40b:free": "Liquid LFM 40B",
+ "meta-llama/llama-3.2-3b-instruct:free": "Llama 3.2 3B Instruct",
+ "meta-llama/llama-3.1-405b-instruct:free": "Llama 3.1 405B Instruct",
+ "mathstral-7b-v0.1": "Mathstral 7B v0.1",
+ "llama-3.1-70b-instruct": "Llama 3.1 70B Instruct",
+ "gryphe/mythomax-l2-13b:free": "Mythomax L2 13B",
+ "meta-llama/llama-3.2-90b-vision-instruct:free": "Llama 3.2 90B Vision Instruct",
+ "mamba-codestral-7b-v0-1": "Codestral Mamba 7B v0.1",
+ "hermes3-70b": "Hermes 3 70B",
+ "llama3.1-nemotron-70b-instruct": "Llama 3.1 Nemotron 70B Instruct",
+ "llama3.2-3b-instruct": "Llama 3.2 3B Instruct",
+ "llama3.1-8b-instruct": "Llama 3.1 8B Instruct",
+ "llama3.1-70b-instruct-fp8": "Llama 3.1 70B Instruct (FP8)",
+ "llama3.1-405b-instruct-fp8": "Llama 3.1 405B Instruct (FP8)",
+ "hermes3-405b": "Hermes 3 405B",
+ "deepseek-coder-v2-lite-instruct": "DeepSeek Coder v2 Lite Instruct",
+ "hermes3-8b": "Hermes 3 8B",
+ "dracarys2-72b-instruct": "Dracarys 2 72B Instruct",
+ "lfm-40b": "Liquid LFM 40B",
+ "qwen/qwen2.5-coder-32b-instruct": "Qwen2.5 Coder 32B Instruct",
+ "thedrummer/unslopnemo-12b:free": "UnslopNemo 12B",
+ "mistral-nemo-instruct-2407": "Mistral Nemo 2407",
+ "google/gemini-exp-1121:free": "Gemini Experimental 1121",
+ "meta-llama/llama-3.1-70b-instruct-fp8": "Llama 3.1 70B Instruct (FP8)",
+ "google/learnlm-1.5-pro-experimental:free": "LearnLM 1.5 Pro Experimental",
+ "google/gemini-exp-1114:free": "Gemini Experimental 1114",
+ "qwen25-coder-32b-instruct": "Qwen2.5 Coder 32B Instruct",
+ "qwen/qwq-32b-preview": "Qwen QwQ 32B Preview",
+ "meta-llama/llama-3.3-70b-instruct": "Llama 3.3 70B Instruct",
+ "llama-3.3-70b-versatile": "Llama 3.3 70B",
+ "google/gemini-exp-1206:free": "Gemini Experimental 1206",
+ "llama3.1-nemotron-70b-instruct-fp8": "Llama 3.1 Nemotron 70B Instruct (FP8)",
+ "llama-3.3-70b-specdec": "Llama 3.3 70B (Speculative Decoding)",
+ "@cf/meta/llama-3.3-70b-instruct-fp8-fast": "Llama 3.3 70B Instruct (FP8)",
+ "google/gemini-2.0-flash-exp:free": "Gemini 2.0 Flash Experimental",
+ "qwen2.5-coder-32b-instruct": "Qwen2.5 Coder 32B Instruct",
+ "bge-multilingual-gemma2": "BGE-Multilingual-Gemma2",
+ "pixtral-12b-2409": "Pixtral 12B (2409)",
+ "google/gemini-2.0-flash-thinking-exp:free": "Gemini 2.0 Flash Thinking Experimental",
+ "sentence-t5-xxl": "sentence-t5-xxl",
+ "meta-llama/meta-llama-3.1-405b-instruct-virtuals": "Llama 3.1 405B Instruct Virtuals",
+ "llama-3.1-8b-instruct": "Llama 3.1 8B Instruct",
+ "deepseek-ai/deepseek-v3": "DeepSeek V3",
+ "llava-next-mistral-7b": "Llava Next Mistral 7B",
+ "llama-3.3-70b-instruct": "Llama 3.3 70B Instruct",
+ "google/gemini-2.0-flash-thinking-exp-1219:free": "Gemini 2.0 Flash Thinking Experimental 1219",
+ "sophosympatheia/rogue-rose-103b-v0.2:free": "Rogue Rose 103B v0.2",
+ "deepseek-ai/deepseek-r1": "DeepSeek R1",
+ "deepseek-ai/deepseek-r1-zero": "DeepSeek R1-Zero",
+ "deepseek/deepseek-r1:free": "DeepSeek R1",
+ "deepseek-r1-distill-llama-70b": "DeepSeek R1 Distill Llama 70B",
+ "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": "DeepSeek R1 Distill Qwen 32B",
+ "deepseek-ai/janus-pro-7b": "DeepSeek Janus Pro 7B",
+ "deepseek-r1-distill-llama-8b": "DeepSeek R1 Distill Llama 8B",
+ "nvidia/llama-3.1-nemotron-70b-instruct:free": "Llama 3.1 Nemotron 70B Instruct",
+ "deepseek/deepseek-r1-distill-llama-70b:free": "DeepSeek R1 Distill Llama 70B",
+ "qwen/qwen2.5-vl-72b-instruct:free": "Qwen2.5 VL 72B Instruct",
+ "google/gemini-2.0-flash-lite-preview-02-05:free": "Gemini 2.0 Flash Lite Preview 02-05",
+ "qwen/qwen-vl-plus:free": "Qwen VL Plus",
+ "google/gemini-2.0-pro-exp-02-05:free": "Gemini 2.0 Pro Experimental 02-05",
+ "deepseek-r1": "DeepSeek R1",
+ "meta-llama/llama-3.3-70b-instruct:free": "Llama 3.3 70B Instruct",
+ "deepseek/deepseek-chat:free": "DeepSeek V3",
+ "deepseek-r1-distill-qwen-32b": "DeepSeek R1 Distill Qwen 32B",
+ "mistralai/mistral-nemo:free": "Mistral Nemo",
+ "allam-2-7b": "Allam 2 7B",
+ "mistralai/mistral-small-24b-instruct-2501:free": "Mistral Small 24B Instruct 2501",
+ "qwen-2.5-32b": "Qwen 2.5 32B",
+ "cognitivecomputations/dolphin3.0-r1-mistral-24b:free": "Dolphin 3.0 R1 Mistral 24B",
+ "qwen-2.5-coder-32b": "Qwen 2.5 Coder 32B",
+ "cognitivecomputations/dolphin3.0-mistral-24b:free": "Dolphin 3.0 Mistral 24B",
+ "deepseek-r1-671b": "DeepSeek R1",
+ "@cf/meta/llama-guard-3-8b": "Llama Guard 3 8B",
+ "mistral-saba-24b": "Mistral Saba 24B",
+ "deepseek/deepseek-r1-zero:free": "DeepSeek R1 Zero",
+ "nousresearch/deephermes-3-llama-3-8b-preview:free": "DeepHermes 3 Llama 3 8B Preview",
+ "qwen-qwq-32b": "Qwen QwQ 32B",
+ "qwen/qwq-32b": "Qwen QwQ 32B",
+ "qwen/qwq-32b:free": "Qwen QwQ 32B",
+ "qwen/qwen2.5-vl-7b-instruct": "Qwen2.5 VL 7B Instruct",
+ "qwen/qwen-2.5-coder-32b-instruct:free": "Qwen2.5 Coder 32B Instruct",
+ "mistral-7b-instruct-v0.3": "Mistral 7B Instruct v0.3",
+ "moonshotai/moonlight-16b-a3b-instruct:free": "Moonlight-16B-A3B-Instruct",
+ "google/gemma-3-27b-it:free": "Gemma 3 27B Instruct",
+ "qwen/qwen-2.5-72b-instruct:free": "Qwen 2.5 72B Instruct",
+ "rekaai/reka-flash-3:free": "Reka Flash 3",
+ "deepseek/deepseek-r1-distill-qwen-32b:free": "DeepSeek R1 Distill Qwen 32B",
+ "deepseek/deepseek-r1-distill-qwen-14b:free": "DeepSeek R1 Distill Qwen 14B",
+ "qwen/qwen2.5-vl-72b-instruct": "Qwen2.5 VL 72B Instruct",
+ "qwen/qwq-32b-preview:free": "Qwen QwQ 32B Preview",
+ "google/gemma-3-12b-it:free": "Gemma 3 12B Instruct",
+ "google/gemma-3-1b-it:free": "Gemma 3 1B Instruct",
+ "google/gemma-3-4b-it:free": "Gemma 3 4B Instruct",
+ "open-r1/olympiccoder-32b:free": "OlympicCoder 32B",
+ "open-r1/olympiccoder-7b:free": "OlympicCoder 7B",
+ "featherless/qwerky-72b:free": "Featherless Qwerky 72B",
+ "qwen/qwen2.5-vl-32b-instruct:free": "Qwen 2.5 VL 32B Instruct",
+ "deepseek/deepseek-chat-v3-0324:free": "DeepSeek V3 0324",
+ "qwen/qwen-2.5-vl-7b-instruct:free": "Qwen 2.5 VL 7B Instruct",
+ "deepseek-ai/deepseek-v3-0324": "DeepSeek V3 0324",
+ "allenai/molmo-7b-d:free": "Molmo 7B D",
+ "qwen/qwen2.5-vl-3b-instruct:free": "Qwen 2.5 VL 3B Instruct",
+ "google/gemini-2.5-pro-exp-03-25:free": "Gemini 2.5 Pro Experimental 03-25",
+ "mistralai/mistral-small-3.1-24b-instruct:free": "Mistral Small 3.1 24B Instruct",
+ "bytedance-research/ui-tars-72b:free": "Bytedance UI Tars 72B",
+ "meta-llama-3_3-70b-instruct": "Llama 3.3 70B Instruct",
+ "mixtral-8x7b-instruct-v0.1": "Mixtral 8x7B Instruct v0.1",
+ "deepseek/deepseek-v3-base:free": "DeepSeek V3 Base",
+ "qwen2.5-vl-72b-instruct": "Qwen 2.5 VL 72B Instruct",
+ "meta-llama-3_1-70b-instruct": "Llama 3.1 70B Instruct",
+ "qwen/qwen-2.5-7b-instruct:free": "Qwen 2.5 7B Instruct",
+ "mamba-codestral-7b-v0.1": "Mamba Codestral 7B v0.1",
+ "meta-llama/llama-4-scout-17b-16e-instruct": "Llama 4 Scout Instruct",
+ "@cf/meta/llama-4-scout-17b-16e-instruct": "Llama 4 Scout Instruct",
+ "meta-llama/llama-4-scout:free": "Llama 4 Scout",
+ "meta-llama/llama-4-maverick:free": "Llama 4 Maverick",
+ "rekaai/reka-flash-3": "Reka Flash 3",
+ "cognitivecomputations/dolphin3.0-mistral-24b": "Dolphin 3.0 Mistral 24B",
+ "unsloth/gemma-3-12b-it": "Gemma 3 12B Instruct",
+ "chutesai/llama-4-maverick-17b-128e-instruct-fp8": "Llama 4 Maverick 17B 128E Instruct FP8",
+ "unsloth/gemma-3-1b-it": "Gemma 3 1B Instruct",
+ "deepseek-ai/deepseek-v3-base": "DeepSeek V3 Base",
+ "unsloth/gemma-3-4b-it": "Gemma 3 4B Instruct",
+ "open-r1/olympiccoder-32b": "OlympicCoder 32B",
+ "chutesai/llama-4-scout-17b-16e-instruct": "Llama 4 Scout 17B 16E Instruct",
+ "cognitivecomputations/dolphin3.0-r1-mistral-24b": "Dolphin 3.0 R1 Mistral 24B",
+ "open-r1/olympiccoder-7b": "OlympicCoder 7B",
+ "nousresearch/deephermes-3-llama-3-8b-preview": "DeepHermes 3 Llama 3 8B Preview",
+ "chutesai/mistral-small-3.1-24b-instruct-2503": "Mistral Small 3.1 24B Instruct 2503",
+ "qwen/qwen2.5-vl-32b-instruct": "Qwen 2.5 VL 32B Instruct",
+ "nvidia/llama-3_1-nemotron-ultra-253b-v1": "Llama 3.1 Nemotron Ultra 253B v1",
+ "nvidia/llama-3.1-nemotron-ultra-253b-v1:free": "Llama 3.1 Nemotron Ultra 253B v1",
+ "nvidia/llama-3.1-nemotron-nano-8b-v1": "Llama 3.1 Nemotron Nano 8B v1",
+ "mistral-small-3.1-24b-instruct-2503": "Mistral Small 3.1 24B Instruct 2503",
+ "nvidia/llama-3_3-nemotron-super-49b-v1": "Llama 3.3 Nemotron Super 49B v1",
+ "gemma-3-27b-it": "Gemma 3 27B Instruct",
+ "nvidia/llama-3.3-nemotron-super-49b-v1:free": "Llama 3.3 Nemotron Super 49B v1",
+ "nvidia/llama-3.1-nemotron-nano-8b-v1:free": "Llama 3.1 Nemotron Nano 8B v1",
+ "meta-llama/llama-4-maverick-17b-128e-instruct": "Llama 4 Maverick 17B 128E Instruct",
+ "moonshotai/kimi-vl-a3b-thinking:free": "Kimi VL A3B Thinking",
+ "moonshotai/kimi-vl-a3b-thinking": "Kimi VL A3B Thinking",
+ "@cf/mistralai/mistral-small-3.1-24b-instruct": "Mistral Small 3.1 24B Instruct",
+ "@cf/google/gemma-3-12b-it": "Gemma 3 12B Instruct",
+ "@cf/qwen/qwq-32b": "Qwen QwQ 32B",
+ "@cf/qwen/qwen2.5-coder-32b-instruct": "Qwen 2.5 Coder 32B Instruct",
+ "arliai/qwq-32b-arliai-rpr-v1:free": "QwQ 32B ArliAI RpR v1",
+ "agentica-org/deepcoder-14b-preview:free": "DeepCoder 14B Preview",
+ "agentica-org/deepcoder-14b-preview": "DeepCoder 14B Preview",
+ "arliai/qwq-32b-arliai-rpr-v1": "QwQ 32B ArliAI RpR v1",
+}
+
+HYPERBOLIC_IGNORED_MODELS = {
+ "Wifhat",
+ "FLUX.1-dev",
+ "StableDiffusion",
+ "Monad",
+ "TTS",
+ "deepseek-ai/Janus-Pro-7B",
+ "test",
+ "SDXL1.0-base",
+ # Ignore DeepSeek R1 and R1-Zero because they are not available in the free tier.
+ "deepseek-ai/DeepSeek-R1",
+ "deepseek-ai/DeepSeek-R1-Zero",
+}
+
+LAMBDA_IGNORED_MODELS = {"lfm-40b-vllm", "hermes3-405b-fp8-128k"}
+
+OPENROUTER_IGNORED_MODELS = {
+ # Ignore gemini experimental free models because rate limits mean they are unusable.
+ "google/gemini-exp-1121:free",
+ "google/learnlm-1.5-pro-experimental:free",
+ "google/gemini-exp-1114:free",
+ "google/gemini-exp-1206:free",
+ "google/gemini-2.0-flash-exp:free",
+ "google/gemini-2.0-flash-thinking-exp:free",
+ "google/gemini-2.0-flash-thinking-exp-1219:free",
+ "google/gemini-flash-1.5-exp:free",
+ "google/gemini-2.0-pro-exp-02-05:free",
+}
diff --git a/src/pull_available_models.py b/src/pull_available_models.py
index ab14f7b..5138c56 100644
--- a/src/pull_available_models.py
+++ b/src/pull_available_models.py
@@ -12,6 +12,13 @@ from mistralai import Mistral
from concurrent.futures import ThreadPoolExecutor
import time
+from data import (
+ MODEL_TO_NAME_MAPPING,
+ HYPERBOLIC_IGNORED_MODELS,
+ LAMBDA_IGNORED_MODELS,
+ OPENROUTER_IGNORED_MODELS,
+)
+
load_dotenv()
script_dir = os.path.dirname(os.path.abspath(__file__))
@@ -20,264 +27,6 @@ script_dir = os.path.dirname(os.path.abspath(__file__))
mistral_client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
last_mistral_request_time = 0
-MODEL_TO_NAME_MAPPING = {
- "@cf/deepseek-ai/deepseek-math-7b-instruct": "Deepseek Math 7B Instruct",
- "@cf/defog/sqlcoder-7b-2": "SQLCoder 7B 2",
- "@cf/fblgit/una-cybertron-7b-v2-bf16": "Una Cybertron 7B v2 (BF16)",
- "@cf/google/gemma-2b-it-lora": "Gemma 2B Instruct (LoRA)",
- "@cf/google/gemma-7b-it-lora": "Gemma 7B Instruct (LoRA)",
- "@cf/meta-llama/llama-2-7b-chat-hf-lora": "Llama 2 7B Chat (LoRA)",
- "@cf/meta/llama-2-7b-chat-fp16": "Llama 2 7B Chat (FP16)",
- "@cf/meta/llama-2-7b-chat-int8": "Llama 2 7B Chat (INT8)",
- "@cf/meta/llama-3-8b-instruct-awq": "Llama 3 8B Instruct (AWQ)",
- "@cf/meta/llama-3-8b-instruct": "Llama 3 8B Instruct",
- "@cf/meta/llama-3.1-8b-instruct-awq": "Llama 3.1 8B Instruct (AWQ)",
- "@cf/meta/llama-3.1-8b-instruct-fp8": "Llama 3.1 8B Instruct (FP8)",
- "@cf/meta/llama-3.1-8b-instruct": "Llama 3.1 8B Instruct",
- "@cf/microsoft/phi-2": "Phi-2",
- "@cf/mistral/mistral-7b-instruct-v0.1-vllm": "Mistral 7B Instruct v0.1",
- "@cf/mistral/mistral-7b-instruct-v0.1": "Mistral 7B Instruct v0.1",
- "@cf/mistral/mistral-7b-instruct-v0.2-lora": "Mistral 7B Instruct v0.2 (LoRA)",
- "@cf/openchat/openchat-3.5-0106": "OpenChat 3.5 0106",
- "@cf/qwen/qwen1.5-0.5b-chat": "Qwen 1.5 0.5B Chat",
- "@cf/qwen/qwen1.5-1.8b-chat": "Qwen 1.5 1.8B Chat",
- "@cf/qwen/qwen1.5-14b-chat-awq": "Qwen 1.5 14B Chat (AWQ)",
- "@cf/qwen/qwen1.5-7b-chat-awq": "Qwen 1.5 7B Chat (AWQ)",
- "@cf/thebloke/discolm-german-7b-v1-awq": "Discolm German 7B v1 (AWQ)",
- "@cf/tiiuae/falcon-7b-instruct": "Falcom 7B Instruct",
- "@cf/tinyllama/tinyllama-1.1b-chat-v1.0": "TinyLlama 1.1B Chat v1.0",
- "@hf/google/gemma-7b-it": "Gemma 7B Instruct",
- "@hf/meta-llama/meta-llama-3-8b-instruct": "Llama 3 8B Instruct",
- "@hf/mistral/mistral-7b-instruct-v0.2": "Mistral 7B Instruct v0.2",
- "@hf/nexusflow/starling-lm-7b-beta": "Starling LM 7B Beta",
- "@hf/nousresearch/hermes-2-pro-mistral-7b": "Hermes 2 Pro Mistral 7B",
- "@hf/thebloke/deepseek-coder-6.7b-base-awq": "Deepseek Coder 6.7B Base (AWQ)",
- "@hf/thebloke/deepseek-coder-6.7b-instruct-awq": "Deepseek Coder 6.7B Instruct (AWQ)",
- "@hf/thebloke/llama-2-13b-chat-awq": "Llama 2 13B Chat (AWQ)",
- "@hf/thebloke/llamaguard-7b-awq": "LlamaGuard 7B (AWQ)",
- "@hf/thebloke/mistral-7b-instruct-v0.1-awq": "Mistral 7B Instruct v0.1 (AWQ)",
- "@hf/thebloke/neural-chat-7b-v3-1-awq": "Neural Chat 7B v3.1 (AWQ)",
- "@hf/thebloke/openhermes-2.5-mistral-7b-awq": "OpenHermes 2.5 Mistral 7B (AWQ)",
- "@hf/thebloke/zephyr-7b-beta-awq": "Zephyr 7B Beta (AWQ)",
- "codellama-13b-instruct-hf": "CodeLlama 13B Instruct",
- "distil-whisper-large-v3-en": "Distil Whisper Large v3",
- "gemma-7b-it": "Gemma 7B Instruct (Deprecated)",
- "gemma2-9b-it": "Gemma 2 9B Instruct",
- "google/gemma-2-9b-it:free": "Gemma 2 9B Instruct",
- "google/gemma-7b-it:free": "Gemma 7B Instruct",
- "gryphe/mythomist-7b:free": "Mythomist 7B",
- "huggingfaceh4/zephyr-7b-beta:free": "Zephyr 7B Beta",
- "llama-2-13b-chat-hf": "Llama 2 13B Chat",
- "llama-3-70b-instruct": "Llama 3 70B Instruct",
- "llama-3-8b-instruct": "Llama 3 8B Instruct",
- "llama-3.1-405b-reasoning": "Llama 3.1 405B",
- "llama-3.1-70b-versatile": "Llama 3.1 70B",
- "llama-3.1-8b-instant": "Llama 3.1 8B",
- "llama-guard-3-8b": "Llama Guard 3 8B",
- "llama3-70b-8192": "Llama 3 70B",
- "llama3-8b-8192": "Llama 3 8B",
- "llama3-groq-70b-8192-tool-use-preview": "Llama 3 70B - Groq Tool Use Preview",
- "llama3-groq-8b-8192-tool-use-preview": "Llama 3 8B - Groq Tool Use Preview",
- "meta-llama/llama-3-8b-instruct:free": "Llama 3 8B Instruct",
- "meta-llama/llama-3.1-8b-instruct:free": "Llama 3.1 8B Instruct",
- "meta-llama/meta-llama-3-70b-instruct": "Llama 3 70B Instruct",
- "meta-llama/meta-llama-3.1-405b": "Llama 3.1 405B Base",
- "meta-llama/meta-llama-3.1-405b-fp8": "Llama 3.1 405B Base (FP8)",
- "meta-llama/meta-llama-3.1-405b-instruct": "Llama 3.1 405B Instruct",
- "meta-llama/meta-llama-3.1-70b-instruct": "Llama 3.1 70B Instruct",
- "meta-llama/meta-llama-3.1-8b-instruct": "Llama 3.1 8B Instruct",
- "microsoft/phi-3-medium-128k-instruct:free": "Phi-3 Medium 128k Instruct",
- "microsoft/phi-3-mini-128k-instruct:free": "Phi-3 Mini 128k Instruct",
- "mistral-7b-instruct": "Mistral 7B Instruct",
- "mistralai/mistral-7b-instruct:free": "Mistral 7B Instruct",
- "mixtral-8x22b-instruct": "Mixtral 8x22B Instruct",
- "mixtral-8x7b-32768": "Mixtral 8x7B",
- "mixtral-8x7b-instruct": "Mixtral 8x7B Instruct",
- "nousresearch/hermes-3-llama-3.1-70b": "Hermes 3 Llama 3.1 70B",
- "nousresearch/nous-capybara-7b:free": "Nous Capybara 7B",
- "openchat/openchat-7b:free": "OpenChat 7B",
- "qwen/qwen-2-7b-instruct:free": "Qwen 2 7B Instruct",
- "qwen/qwen2-72b-instruct": "Qwen 2 72B Instruct",
- "undi95/toppy-m-7b:free": "Toppy M 7B",
- "whisper-large-v3": "Whisper Large v3",
- "whisper-large-v3-turbo": "Whisper Large v3 Turbo",
- "01-ai/yi-34b-chat": "Yi 34B Chat",
- "01-ai/yi-1.5-34b-chat": "Yi 1.5 34B Chat",
- "nousresearch/hermes-3-llama-3.1-70b-fp8": "Hermes 3 Llama 3.1 70B (FP8)",
- "nousresearch/hermes-3-llama-3.1-405b:free": "Hermes 3 Llama 3.1 405B",
- "llava-v1.5-7b-4096-preview": "LLaVA 1.5 7B",
- "mattshumer/reflection-llama-3.1-70b": "Reflection Llama 3.1 70B",
- "mattshumer/reflection-70b:free": "Reflection Llama 3.1 70B",
- "mattshumer/reflection-llama-3.1-70b-completions": "Reflection Llama 3.1 70B Completions",
- "deepseek-ai/deepseek-v2.5": "DeepSeek V2.5",
- "mistralai/pixtral-12b-2409": "Pixtral 12B (2409)",
- "qwen/qwen2-vl-7b-instruct": "Qwen2-VL 7B Instruct",
- "mistralai/pixtral-12b:free": "Pixtral 12B",
- "qwen/qwen-2-vl-7b-instruct:free": "Qwen2-VL 7B Instruct",
- "qwen/qwen2-vl-72b-instruct": "Qwen2-VL 72B Instruct",
- "qwen/qwen2.5-72b-instruct": "Qwen2.5 72B Instruct",
- "llama-3.2-90b-text-preview": "Llama 3.2 90B (Text Only)",
- "llama-3.2-3b-preview": "Llama 3.2 3B",
- "llama-3.2-11b-text-preview": "Llama 3.2 11B (Text Only)",
- "llama-3.2-1b-preview": "Llama 3.2 1B",
- "@cf/meta/llama-3.2-1b-instruct": "Llama 3.2 1B Instruct",
- "meta-llama/llama-3.2-11b-vision-instruct:free": "Llama 3.2 11B Vision Instruct",
- "@cf/meta/llama-3.2-11b-vision-instruct": "Llama 3.2 11B Vision Instruct",
- "@cf/meta/llama-3.2-3b-instruct": "Llama 3.2 3B Instruct",
- "meta-llama/llama-3.2-90b-vision-instruct": "Llama 3.2 90B Vision Instruct",
- "meta-llama/llama-3.2-3b-instruct": "Llama 3.2 3B Instruct",
- "llama-3.2-11b-vision-preview": "Llama 3.2 11B Vision",
- "llama-3.2-90b-vision-preview": "Llama 3.2 90B Vision",
- "meta-llama/llama-3.2-90b-vision": "Llama 3.2 90B Vision",
- "meta-llama/llama-3.1-70b-instruct:free": "Llama 3.1 70B Instruct",
- "meta-llama/llama-3.2-1b-instruct:free": "Llama 3.2 1B Instruct",
- "liquid/lfm-40b:free": "Liquid LFM 40B",
- "meta-llama/llama-3.2-3b-instruct:free": "Llama 3.2 3B Instruct",
- "meta-llama/llama-3.1-405b-instruct:free": "Llama 3.1 405B Instruct",
- "mathstral-7b-v0.1": "Mathstral 7B v0.1",
- "llama-3.1-70b-instruct": "Llama 3.1 70B Instruct",
- "gryphe/mythomax-l2-13b:free": "Mythomax L2 13B",
- "meta-llama/llama-3.2-90b-vision-instruct:free": "Llama 3.2 90B Vision Instruct",
- "mamba-codestral-7b-v0-1": "Codestral Mamba 7B v0.1",
- "hermes3-70b": "Hermes 3 70B",
- "llama3.1-nemotron-70b-instruct": "Llama 3.1 Nemotron 70B Instruct",
- "llama3.2-3b-instruct": "Llama 3.2 3B Instruct",
- "llama3.1-8b-instruct": "Llama 3.1 8B Instruct",
- "llama3.1-70b-instruct-fp8": "Llama 3.1 70B Instruct (FP8)",
- "llama3.1-405b-instruct-fp8": "Llama 3.1 405B Instruct (FP8)",
- "hermes3-405b": "Hermes 3 405B",
- "deepseek-coder-v2-lite-instruct": "DeepSeek Coder v2 Lite Instruct",
- "hermes3-8b": "Hermes 3 8B",
- "dracarys2-72b-instruct": "Dracarys 2 72B Instruct",
- "lfm-40b": "Liquid LFM 40B",
- "qwen/qwen2.5-coder-32b-instruct": "Qwen2.5 Coder 32B Instruct",
- "thedrummer/unslopnemo-12b:free": "UnslopNemo 12B",
- "mistral-nemo-instruct-2407": "Mistral Nemo 2407",
- "google/gemini-exp-1121:free": "Gemini Experimental 1121",
- "meta-llama/llama-3.1-70b-instruct-fp8": "Llama 3.1 70B Instruct (FP8)",
- "google/learnlm-1.5-pro-experimental:free": "LearnLM 1.5 Pro Experimental",
- "google/gemini-exp-1114:free": "Gemini Experimental 1114",
- "qwen25-coder-32b-instruct": "Qwen2.5 Coder 32B Instruct",
- "qwen/qwq-32b-preview": "Qwen QwQ 32B Preview",
- "meta-llama/llama-3.3-70b-instruct": "Llama 3.3 70B Instruct",
- "llama-3.3-70b-versatile": "Llama 3.3 70B",
- "google/gemini-exp-1206:free": "Gemini Experimental 1206",
- "llama3.1-nemotron-70b-instruct-fp8": "Llama 3.1 Nemotron 70B Instruct (FP8)",
- "llama-3.3-70b-specdec": "Llama 3.3 70B (Speculative Decoding)",
- "@cf/meta/llama-3.3-70b-instruct-fp8-fast": "Llama 3.3 70B Instruct (FP8)",
- "google/gemini-2.0-flash-exp:free": "Gemini 2.0 Flash Experimental",
- "qwen2.5-coder-32b-instruct": "Qwen2.5 Coder 32B Instruct",
- "bge-multilingual-gemma2": "BGE-Multilingual-Gemma2",
- "pixtral-12b-2409": "Pixtral 12B (2409)",
- "google/gemini-2.0-flash-thinking-exp:free": "Gemini 2.0 Flash Thinking Experimental",
- "sentence-t5-xxl": "sentence-t5-xxl",
- "meta-llama/meta-llama-3.1-405b-instruct-virtuals": "Llama 3.1 405B Instruct Virtuals",
- "llama-3.1-8b-instruct": "Llama 3.1 8B Instruct",
- "deepseek-ai/deepseek-v3": "DeepSeek V3",
- "llava-next-mistral-7b": "Llava Next Mistral 7B",
- "llama-3.3-70b-instruct": "Llama 3.3 70B Instruct",
- "google/gemini-2.0-flash-thinking-exp-1219:free": "Gemini 2.0 Flash Thinking Experimental 1219",
- "sophosympatheia/rogue-rose-103b-v0.2:free": "Rogue Rose 103B v0.2",
- "deepseek-ai/deepseek-r1": "DeepSeek R1",
- "deepseek-ai/deepseek-r1-zero": "DeepSeek R1-Zero",
- "deepseek/deepseek-r1:free": "DeepSeek R1",
- "deepseek-r1-distill-llama-70b": "DeepSeek R1 Distill Llama 70B",
- "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": "DeepSeek R1 Distill Qwen 32B",
- "deepseek-ai/janus-pro-7b": "DeepSeek Janus Pro 7B",
- "deepseek-r1-distill-llama-8b": "DeepSeek R1 Distill Llama 8B",
- "nvidia/llama-3.1-nemotron-70b-instruct:free": "Llama 3.1 Nemotron 70B Instruct",
- "deepseek/deepseek-r1-distill-llama-70b:free": "DeepSeek R1 Distill Llama 70B",
- "qwen/qwen2.5-vl-72b-instruct:free": "Qwen2.5 VL 72B Instruct",
- "google/gemini-2.0-flash-lite-preview-02-05:free": "Gemini 2.0 Flash Lite Preview 02-05",
- "qwen/qwen-vl-plus:free": "Qwen VL Plus",
- "google/gemini-2.0-pro-exp-02-05:free": "Gemini 2.0 Pro Experimental 02-05",
- "deepseek-r1": "DeepSeek R1",
- "meta-llama/llama-3.3-70b-instruct:free": "Llama 3.3 70B Instruct",
- "deepseek/deepseek-chat:free": "DeepSeek V3",
- "deepseek-r1-distill-qwen-32b": "DeepSeek R1 Distill Qwen 32B",
- "mistralai/mistral-nemo:free": "Mistral Nemo",
- "allam-2-7b": "Allam 2 7B",
- "mistralai/mistral-small-24b-instruct-2501:free": "Mistral Small 24B Instruct 2501",
- "qwen-2.5-32b": "Qwen 2.5 32B",
- "cognitivecomputations/dolphin3.0-r1-mistral-24b:free": "Dolphin 3.0 R1 Mistral 24B",
- "qwen-2.5-coder-32b": "Qwen 2.5 Coder 32B",
- "cognitivecomputations/dolphin3.0-mistral-24b:free": "Dolphin 3.0 Mistral 24B",
- "deepseek-r1-671b": "DeepSeek R1",
- "@cf/meta/llama-guard-3-8b": "Llama Guard 3 8B",
- "mistral-saba-24b": "Mistral Saba 24B",
- "deepseek/deepseek-r1-zero:free": "DeepSeek R1 Zero",
- "nousresearch/deephermes-3-llama-3-8b-preview:free": "DeepHermes 3 Llama 3 8B Preview",
- "qwen-qwq-32b": "Qwen QwQ 32B",
- "qwen/qwq-32b": "Qwen QwQ 32B",
- "qwen/qwq-32b:free": "Qwen QwQ 32B",
- "qwen/qwen2.5-vl-7b-instruct": "Qwen2.5 VL 7B Instruct",
- "qwen/qwen-2.5-coder-32b-instruct:free": "Qwen2.5 Coder 32B Instruct",
- "mistral-7b-instruct-v0.3": "Mistral 7B Instruct v0.3",
- "moonshotai/moonlight-16b-a3b-instruct:free": "Moonlight-16B-A3B-Instruct",
- "google/gemma-3-27b-it:free": "Gemma 3 27B Instruct",
- "qwen/qwen-2.5-72b-instruct:free": "Qwen 2.5 72B Instruct",
- "rekaai/reka-flash-3:free": "Reka Flash 3",
- "deepseek/deepseek-r1-distill-qwen-32b:free": "DeepSeek R1 Distill Qwen 32B",
- "deepseek/deepseek-r1-distill-qwen-14b:free": "DeepSeek R1 Distill Qwen 14B",
- "qwen/qwen2.5-vl-72b-instruct": "Qwen2.5 VL 72B Instruct",
- "qwen/qwq-32b-preview:free": "Qwen QwQ 32B Preview",
- "google/gemma-3-12b-it:free": "Gemma 3 12B Instruct",
- "google/gemma-3-1b-it:free": "Gemma 3 1B Instruct",
- "google/gemma-3-4b-it:free": "Gemma 3 4B Instruct",
- "open-r1/olympiccoder-32b:free": "OlympicCoder 32B",
- "open-r1/olympiccoder-7b:free": "OlympicCoder 7B",
- "featherless/qwerky-72b:free": "Featherless Qwerky 72B",
- "qwen/qwen2.5-vl-32b-instruct:free": "Qwen 2.5 VL 32B Instruct",
- "deepseek/deepseek-chat-v3-0324:free": "DeepSeek V3 0324",
- "qwen/qwen-2.5-vl-7b-instruct:free": "Qwen 2.5 VL 7B Instruct",
- "deepseek-ai/deepseek-v3-0324": "DeepSeek V3 0324",
- "allenai/molmo-7b-d:free": "Molmo 7B D",
- "qwen/qwen2.5-vl-3b-instruct:free": "Qwen 2.5 VL 3B Instruct",
- "google/gemini-2.5-pro-exp-03-25:free": "Gemini 2.5 Pro Experimental 03-25",
- "mistralai/mistral-small-3.1-24b-instruct:free": "Mistral Small 3.1 24B Instruct",
- "bytedance-research/ui-tars-72b:free": "Bytedance UI Tars 72B",
- "meta-llama-3_3-70b-instruct": "Llama 3.3 70B Instruct",
- "mixtral-8x7b-instruct-v0.1": "Mixtral 8x7B Instruct v0.1",
- "deepseek/deepseek-v3-base:free": "DeepSeek V3 Base",
- "qwen2.5-vl-72b-instruct": "Qwen 2.5 VL 72B Instruct",
- "meta-llama-3_1-70b-instruct": "Llama 3.1 70B Instruct",
- "qwen/qwen-2.5-7b-instruct:free": "Qwen 2.5 7B Instruct",
- "mamba-codestral-7b-v0.1": "Mamba Codestral 7B v0.1",
- "meta-llama/llama-4-scout-17b-16e-instruct": "Llama 4 Scout Instruct",
- "@cf/meta/llama-4-scout-17b-16e-instruct": "Llama 4 Scout Instruct",
- "meta-llama/llama-4-scout:free": "Llama 4 Scout",
- "meta-llama/llama-4-maverick:free": "Llama 4 Maverick",
- "rekaai/reka-flash-3": "Reka Flash 3",
- "cognitivecomputations/dolphin3.0-mistral-24b": "Dolphin 3.0 Mistral 24B",
- "unsloth/gemma-3-12b-it": "Gemma 3 12B Instruct",
- "chutesai/llama-4-maverick-17b-128e-instruct-fp8": "Llama 4 Maverick 17B 128E Instruct FP8",
- "unsloth/gemma-3-1b-it": "Gemma 3 1B Instruct",
- "deepseek-ai/deepseek-v3-base": "DeepSeek V3 Base",
- "unsloth/gemma-3-4b-it": "Gemma 3 4B Instruct",
- "open-r1/olympiccoder-32b": "OlympicCoder 32B",
- "chutesai/llama-4-scout-17b-16e-instruct": "Llama 4 Scout 17B 16E Instruct",
- "cognitivecomputations/dolphin3.0-r1-mistral-24b": "Dolphin 3.0 R1 Mistral 24B",
- "open-r1/olympiccoder-7b": "OlympicCoder 7B",
- "nousresearch/deephermes-3-llama-3-8b-preview": "DeepHermes 3 Llama 3 8B Preview",
- "chutesai/mistral-small-3.1-24b-instruct-2503": "Mistral Small 3.1 24B Instruct 2503",
- "qwen/qwen2.5-vl-32b-instruct": "Qwen 2.5 VL 32B Instruct",
- "nvidia/llama-3_1-nemotron-ultra-253b-v1": "Llama 3.1 Nemotron Ultra 253B v1",
- "nvidia/llama-3.1-nemotron-ultra-253b-v1:free": "Llama 3.1 Nemotron Ultra 253B v1",
- "nvidia/llama-3.1-nemotron-nano-8b-v1": "Llama 3.1 Nemotron Nano 8B v1",
- "mistral-small-3.1-24b-instruct-2503": "Mistral Small 3.1 24B Instruct 2503",
- "nvidia/llama-3_3-nemotron-super-49b-v1": "Llama 3.3 Nemotron Super 49B v1",
- "gemma-3-27b-it": "Gemma 3 27B Instruct",
- "nvidia/llama-3.3-nemotron-super-49b-v1:free": "Llama 3.3 Nemotron Super 49B v1",
- "nvidia/llama-3.1-nemotron-nano-8b-v1:free": "Llama 3.1 Nemotron Nano 8B v1",
- "meta-llama/llama-4-maverick-17b-128e-instruct": "Llama 4 Maverick 17B 128E Instruct",
- "moonshotai/kimi-vl-a3b-thinking:free": "Kimi VL A3B Thinking",
- "moonshotai/kimi-vl-a3b-thinking": "Kimi VL A3B Thinking",
- "@cf/mistralai/mistral-small-3.1-24b-instruct": "Mistral Small 3.1 24B Instruct",
- "@cf/google/gemma-3-12b-it": "Gemma 3 12B Instruct",
- "@cf/qwen/qwq-32b": "Qwen QwQ 32B",
- "@cf/qwen/qwen2.5-coder-32b-instruct": "Qwen 2.5 Coder 32B Instruct",
-}
-
def create_logger(provider_name):
logger = logging.getLogger(provider_name)
@@ -291,34 +40,6 @@ def create_logger(provider_name):
MISSING_MODELS = set()
-HYPERBOLIC_IGNORED_MODELS = {
- "Wifhat",
- "FLUX.1-dev",
- "StableDiffusion",
- "Monad",
- "TTS",
- "deepseek-ai/Janus-Pro-7B",
- "test",
- "SDXL1.0-base",
- # Ignore DeepSeek R1 and R1-Zero because they are not available in the free tier.
- "deepseek-ai/DeepSeek-R1",
- "deepseek-ai/DeepSeek-R1-Zero",
-}
-
-LAMBDA_IGNORED_MODELS = {"lfm-40b-vllm", "hermes3-405b-fp8-128k"}
-
-OPENROUTER_IGNORED_MODELS = {
- "google/gemini-exp-1121:free",
- "google/learnlm-1.5-pro-experimental:free",
- "google/gemini-exp-1114:free",
- "google/gemini-exp-1206:free",
- "google/gemini-2.0-flash-exp:free",
- "google/gemini-2.0-flash-thinking-exp:free",
- "google/gemini-2.0-flash-thinking-exp-1219:free",
- "google/gemini-flash-1.5-exp:free",
- "google/gemini-2.0-pro-exp-02-05:free",
-} # Ignore gemini experimental free models because rate limits mean they are unusable.
-
def get_model_name(id):
id = id.lower()
@@ -755,20 +476,22 @@ def fetch_chutes_models(logger):
r.raise_for_status()
models = r.json()["items"]
logger.info(f"Fetched {len(models)} models from Chutes")
-
+
# Filter for free models based on per_million_token price
free_models = []
for model in models:
price_info = model.get("current_estimated_price", {})
# Check if per_million_tokens field exists and is set to 0 for USD
- if (price_info.get("per_million_tokens", {}).get("usd", 1) == 0):
+ if price_info.get("per_million_tokens", {}).get("usd", 1) == 0:
model_name = model.get("name", "Unknown model")
- free_models.append({
- "id": model_name,
- "name": get_model_name(model_name),
- "description": model.get("tagline", "")
- })
-
+ free_models.append(
+ {
+ "id": model_name,
+ "name": get_model_name(model_name),
+ "description": model.get("tagline", ""),
+ }
+ )
+
logger.info(f"Found {len(free_models)} free models from Chutes")
return sorted(free_models, key=lambda x: x["name"])
@@ -855,68 +578,49 @@ def main():
table += f''
table += 'OpenRouter'
table += " | "
- table += (
- f'{get_human_limits(model)} 1000 requests/day with $10 credit balance | '
- )
+ table += f'{get_human_limits(model)} 1000 requests/day with $10 credit balance | '
table += f"{model['name']} | "
table += " | "
table += "\n"
- table += f"""
- | Google AI Studio |
- Data is used for training (when used outside of the UK/CH/EEA/EU). |
- Gemini 2.5 Pro (Experimental) |
- {get_human_limits({"limits": gemini_models["gemini-2.0-pro-exp"]})} |
-
-
- | Gemini 2.0 Flash |
- {get_human_limits({"limits": gemini_models["gemini-2.0-flash"]})} |
-
-
- | Gemini 2.0 Flash-Lite |
- {get_human_limits({"limits": gemini_models["gemini-2.0-flash-lite"]})} |
-
-
- | Gemini 2.0 Flash (Experimental) |
- {get_human_limits({"limits": gemini_models["gemini-2.0-flash-exp"]})} |
-
-
- | Gemini 1.5 Flash |
- {get_human_limits({"limits": gemini_models["gemini-1.5-flash"]})} |
-
-
- | Gemini 1.5 Flash-8B |
- {get_human_limits({"limits": gemini_models["gemini-1.5-flash-8b"]})} |
-
-
- | Gemini 1.5 Pro |
- {get_human_limits({"limits": gemini_models["gemini-1.5-pro"]})} |
-
-
- | LearnLM 1.5 Pro (Experimental) |
- {get_human_limits({"limits": gemini_models["learnlm-1.5-pro-experimental"]})} |
-
-
- | Gemma 3 27B Instruct |
- {get_human_limits({"limits": gemini_models["gemma-3-27b"]})} |
-
-
- | Gemma 3 12B Instruct |
- {get_human_limits({"limits": gemini_models["gemma-3-12b"]})} |
-
-
- | Gemma 3 4B Instruct |
- {get_human_limits({"limits": gemini_models["gemma-3-4b"]})} |
-
-
- | text-embedding-004 |
- {get_human_limits({"limits": gemini_models["project-embedding"]})} 100 content/batch |
-
-
- | embedding-001 |
-
"""
-
+ gemini_text_models = [
+ {"id": "gemini-2.5-pro-exp-03-25", "name": "Gemini 2.5 Pro (Experimental)", "limits": gemini_models["gemini-2.0-pro-exp"]},
+ {"id": "gemini-2.0-flash", "name": "Gemini 2.0 Flash", "limits": gemini_models["gemini-2.0-flash"]},
+ {"id": "gemini-2.0-flash-lite", "name": "Gemini 2.0 Flash-Lite", "limits": gemini_models["gemini-2.0-flash-lite"]},
+ {"id": "gemini-2.0-flash-exp", "name": "Gemini 2.0 Flash (Experimental)", "limits": gemini_models["gemini-2.0-flash-exp"]},
+ {"id": "gemini-1.5-flash", "name": "Gemini 1.5 Flash", "limits": gemini_models["gemini-1.5-flash"]},
+ {"id": "gemini-1.5-flash-8b", "name": "Gemini 1.5 Flash-8B", "limits": gemini_models["gemini-1.5-flash-8b"]},
+ {"id": "gemini-1.5-pro", "name": "Gemini 1.5 Pro", "limits": gemini_models["gemini-1.5-pro"]},
+ {"id": "learnlm-1.5-pro-experimental", "name": "LearnLM 1.5 Pro (Experimental)", "limits": gemini_models["learnlm-1.5-pro-experimental"]},
+ {"id": "gemma-3-27b-it", "name": "Gemma 3 27B Instruct", "limits": gemini_models["gemma-3-27b"]},
+ {"id": "gemma-3-12b-it", "name": "Gemma 3 12B Instruct", "limits": gemini_models["gemma-3-12b"]},
+ {"id": "gemma-3-4b-it", "name": "Gemma 3 4B Instruct", "limits": gemini_models["gemma-3-4b"]},
+ {"id": "gemma-3-1b-it", "name": "Gemma 3 1B Instruct", "limits": gemini_models["gemma-3-1b"]},
+ ]
+ gemini_embedding_models = [
+ {"id": "text-embedding-004", "name": "text-embedding-004", "limits": gemini_models["project-embedding"]},
+ {"id": "embedding-001", "name": "embedding-001", "limits": gemini_models["project-embedding"]},
+ ]
+
+ for idx, model in enumerate(gemini_text_models):
+ table += ""
+ if idx == 0:
+ table += f'| '
+ table += 'Google AI Studio'
+ table += " | "
+ table += f'Data is used for training (when used outside of the UK/CH/EEA/EU). | '
+ table += f"{model['name']} | "
+ table += f"{get_human_limits(model)} | "
+ table += "
\n"
+
+ for idx, model in enumerate(gemini_embedding_models):
+ table += ""
+ table += f"| {model['name']} | "
+ if idx == 0:
+ table += f'{get_human_limits(model)} 100 content/batch Shared Quota | '
+ table += "
\n"
+
table += """
| NVIDIA NIM |
Phone number verification required. Models tend to be context window limited. |
@@ -1049,7 +753,11 @@ def main():
table += ''
table += 'Chutes'
table += " | "
- table += 'Distributed, decentralized crypto-based compute. Data is sent to individual hosts. | '
+ table += (
+ 'Distributed, decentralized crypto-based compute. Data is sent to individual hosts. | '
+ )
table += f"{model['name']} | "
table += " | "
table += "
\n"
@@ -1142,7 +850,11 @@ def main():
trial_table += ''
trial_table += 'Scaleway Generative APIs'
trial_table += " | "
- trial_table += '1,000,000 free tokens | '
+ trial_table += (
+ '1,000,000 free tokens | '
+ )
trial_table += f" | "
trial_table += f"{model['name']} | "
trial_table += "\n"