diff --git a/README.md b/README.md index b864908..6245e45 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,10 @@ This lists various services that provide free access or credits towards API-base -OpenRouter20 requests/minute
200 requests/dayDeepSeek R1 +OpenRouter20 requests/minute
200 requests/dayDeepHermes 3 Llama 3 8B Preview +DeepSeek R1 DeepSeek R1 Distill Llama 70B +DeepSeek R1 Zero DeepSeek V3 Dolphin 3.0 Mistral 24B Dolphin 3.0 R1 Mistral 24B @@ -39,21 +41,18 @@ This lists various services that provide free access or credits towards API-base Mistral 7B Instruct Mistral Nemo Mistral Small 24B Instruct 2501 +Moonlight-16B-A3B-Instruct Mythomax L2 13B OpenChat 7B Phi-3 Medium 128k Instruct Phi-3 Mini 128k Instruct Qwen 2 7B Instruct -Qwen VL Plus +Qwen QwQ 32B +Qwen2.5 Coder 32B Instruct Qwen2.5 VL 72B Instruct Rogue Rose 103B v0.2 Toppy M 7B Zephyr 7B Beta -deepseek/deepseek-r1-zero:free -moonshotai/moonlight-16b-a3b-instruct:free -nousresearch/deephermes-3-llama-3-8b-preview:free -qwen/qwen-2.5-coder-32b-instruct:free -qwen/qwq-32b:free Google AI Studio Data is used for training (when used outside of the UK/CH/EEA/EU). @@ -136,9 +135,9 @@ This lists various services that provide free access or credits towards API-base Mixtral 8x7B14,400 requests/day
5,000 tokens/minute Qwen 2.5 32B1,000 requests/day
6,000 tokens/minute Qwen 2.5 Coder 32B1,000 requests/day
6,000 tokens/minute +Qwen QwQ 32B1,000 requests/day
6,000 tokens/minute Whisper Large v37,200 audio-seconds/minute
2,000 requests/day Whisper Large v3 Turbo7,200 audio-seconds/minute
2,000 requests/day -qwen-qwq-32b1,000 requests/day
6,000 tokens/minute Scaleway Generative APIs (Free Beta until 12 March 2025)BGE-Multilingual-Gemma2300 requests/minute
400,000 tokens/minute DeepSeek R1 Distill Llama 70B DeepSeek R1 Distill Llama 8B @@ -160,9 +159,9 @@ This lists various services that provide free access or credits towards API-base Llava Next Mistral 7B12 requests/minute Mathstral 7B v0.112 requests/minute Mistral 7B Instruct12 requests/minute +Mistral 7B Instruct v0.312 requests/minute Mistral Nemo 240712 requests/minute Mixtral 8x7B Instruct12 requests/minute -mistral-7b-instruct-v0.312 requests/minute Together @@ -184,7 +183,7 @@ This lists various services that provide free access or credits towards API-base Command-R+ - 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 @@ -194,6 +193,7 @@ This lists various services that provide free access or credits towards API-base Cohere Embed v3 English Cohere Embed v3 Multilingual DeepSeek-R1 +DeepSeek-V3 JAIS 30b Chat Llama-3.2-11B-Vision-Instruct Llama-3.2-90B-Vision-Instruct @@ -359,7 +359,7 @@ This lists various services that provide free access or credits towards API-base $0.5 for 1 year
$20 for 3 months for DeepSeek models with referral code + GitHub account connection Various open models - Hyperbolic$1DeepSeek V3 + Hyperbolic$1DeepSeek V3 Hermes 3 Llama 3.1 70B Llama 3 70B Instruct Llama 3.1 405B Base @@ -371,13 +371,12 @@ This lists various services that provide free access or credits towards API-base Llama 3.2 3B Instruct Llama 3.3 70B Instruct Pixtral 12B (2409) +Qwen QwQ 32B Qwen QwQ 32B Preview -Qwen2-VL 72B Instruct -Qwen2-VL 7B Instruct Qwen2.5 72B Instruct Qwen2.5 Coder 32B Instruct -qwen/qwq-32b -SambaNova Cloud$5 for 3 monthsLlama 3.1 405B +Qwen2.5 VL 7B Instruct +SambaNova Cloud$5 for 3 monthsLlama 3.1 405B Llama 3.1 70B Llama 3.1 8B Llama 3.2 11B Vision @@ -386,6 +385,7 @@ This lists various services that provide free access or credits towards API-base Llama 3.2 90B Vision Llama 3.3 70B Llama-Guard-3-8B +Qwen/QwQ-32B Qwen/QwQ-32B-Preview Qwen/Qwen2.5-72B-Instruct Qwen/Qwen2.5-Coder-32B-Instruct diff --git a/src/pull_available_models.py b/src/pull_available_models.py index f3c92a2..62b8673 100644 --- a/src/pull_available_models.py +++ b/src/pull_available_models.py @@ -205,6 +205,15 @@ MODEL_TO_NAME_MAPPING = { "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", } @@ -324,16 +333,20 @@ def fetch_groq_models(logger): with ThreadPoolExecutor() as executor: futures = [] for model in models: - future = executor.submit(get_groq_limits_for_model, model["id"], script_dir, logger) + future = executor.submit( + get_groq_limits_for_model, model["id"], script_dir, logger + ) futures.append((model, future)) - + for model, future in futures: limits = future.result() - ret_models.append({ - "id": model["id"], - "name": get_model_name(model["id"]), - "limits": limits, - }) + ret_models.append( + { + "id": model["id"], + "name": get_model_name(model["id"]), + "limits": limits, + } + ) ret_models = sorted(ret_models, key=lambda x: x["name"]) return ret_models @@ -421,9 +434,7 @@ def fetch_ovh_models(logger): }, ) r.raise_for_status() - models = list( - filter(lambda x: x["available"] and "LLM" in x["category"], r.json()) - ) + models = list(filter(lambda x: x["available"] and "LLM" in x["category"], r.json())) logger.info(f"Fetched {len(models)} models from OVH") ret_models = [] for model in models: @@ -615,9 +626,9 @@ def fetch_gemini_limits(logger): ] = dimension.details.value elif quota.metric == "generativelanguage.googleapis.com/embed_text_requests": for dimension in quota.dimensions_infos: - models["project-embedding"][ - f"requests/{quota.refresh_interval}" - ] = dimension.details.value + models["project-embedding"][f"requests/{quota.refresh_interval}"] = ( + dimension.details.value + ) elif ( quota.metric == "generativelanguage.googleapis.com/batch_embed_text_requests" @@ -658,13 +669,13 @@ def fetch_lambda_models(logger): def rate_limited_mistral_chat(client, **kwargs): global last_mistral_request_time - + # Ensure at least 1 second between requests current_time = time.time() time_since_last = current_time - last_mistral_request_time if time_since_last < 1: time.sleep(1 - time_since_last) - + response = client.chat.complete(**kwargs) last_mistral_request_time = time.time() return response @@ -793,10 +804,17 @@ def main(): executor.submit(fetch_samba_models, samba_logger), executor.submit(fetch_scaleway_models, scaleway_logger), ] - gemini_models, openrouter_models, hyperbolic_models, ovh_models, \ - cloudflare_models, github_models, samba_models, scaleway_models = \ - [f.result() for f in futures] - + ( + gemini_models, + openrouter_models, + hyperbolic_models, + ovh_models, + cloudflare_models, + github_models, + samba_models, + scaleway_models, + ) = [f.result() for f in futures] + # Fetch groq models after others complete groq_models = fetch_groq_models(groq_logger) else: @@ -1068,7 +1086,9 @@ def main(): if MISSING_MODELS: logger.warning("Missing models:") - logger.warning("\n" + "\n".join([f'"{model}": "{model}",' for model in MISSING_MODELS])) + logger.warning( + "\n" + "\n".join([f'"{model}": "{model}",' for model in MISSING_MODELS]) + ) script_dir = os.path.dirname(os.path.abspath(__file__)) with open(os.path.join(script_dir, "README_template.md"), "r") as f: