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 -OpenRouter20 requests/minute
50 requests/day
1000 requests/day with $10 credit balance
Bytedance UI Tars 72B +OpenRouter20 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 StudioData 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 Flash1,000,000 tokens/minute
1,500 requests/day
15 requests/minute +Gemini 2.0 Flash-Lite1,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 Flash1,000,000 tokens/minute
1,500 requests/day
15 requests/minute +Gemini 1.5 Flash-8B1,000,000 tokens/minute
1,500 requests/day
15 requests/minute +Gemini 1.5 Pro32,000 tokens/minute
50 requests/day
2 requests/minute +LearnLM 1.5 Pro (Experimental)1,500 requests/day
15 requests/minute +Gemma 3 27B Instruct15,000 tokens/minute
14,400 requests/day
30 requests/minute +Gemma 3 12B Instruct15,000 tokens/minute
14,400 requests/day
30 requests/minute +Gemma 3 4B Instruct15,000 tokens/minute
14,400 requests/day
30 requests/minute +Gemma 3 1B Instruct15,000 tokens/minute
14,400 requests/day
30 requests/minute +text-embedding-004150 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 ModelsExtremely restrictive input/output token limits.
Rate limits dependent on Copilot subscription tier (Free/Pro/Business/Enterprise)AI21 Jamba 1.5 Large + GitHub ModelsExtremely 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 -ChutesDistributed, decentralized crypto-based compute. Data is sent to individual hosts.DeepHermes 3 Llama 3 8B Preview +ChutesDistributed, 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 AI10,000 neurons/dayDeepSeek 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"