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
-| OpenRouter | 20 requests/minute 200 requests/day | DeepSeek R1 | |
+| OpenRouter | 20 requests/minute 200 requests/day | DeepHermes 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 8x7B | 14,400 requests/day 5,000 tokens/minute |
| Qwen 2.5 32B | 1,000 requests/day 6,000 tokens/minute |
| Qwen 2.5 Coder 32B | 1,000 requests/day 6,000 tokens/minute |
+| Qwen QwQ 32B | 1,000 requests/day 6,000 tokens/minute |
| Whisper Large v3 | 7,200 audio-seconds/minute 2,000 requests/day |
| Whisper Large v3 Turbo | 7,200 audio-seconds/minute 2,000 requests/day |
-| qwen-qwq-32b | 1,000 requests/day 6,000 tokens/minute |
| Scaleway Generative APIs (Free Beta until 12 March 2025) | | BGE-Multilingual-Gemma2 | 300 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 7B | 12 requests/minute |
| Mathstral 7B v0.1 | 12 requests/minute |
| Mistral 7B Instruct | 12 requests/minute |
+| Mistral 7B Instruct v0.3 | 12 requests/minute |
| Mistral Nemo 2407 | 12 requests/minute |
| Mixtral 8x7B Instruct | 12 requests/minute |
-| mistral-7b-instruct-v0.3 | 12 requests/minute |
| Together |
|
@@ -184,7 +183,7 @@ This lists various services that provide free access or credits towards API-base
| Command-R+ |
-
| 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 | |
@@ -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 | $1 | | DeepSeek V3 |
+ | Hyperbolic | $1 | | DeepSeek 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 months | | Llama 3.1 405B |
+| Qwen2.5 VL 7B Instruct |
+| SambaNova Cloud | $5 for 3 months | | Llama 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: