-| Allam 2 7B | 7,000 requests/day 6,000 tokens/minute |
+| Allam 2 7B | |
| DeepSeek R1 Distill Llama 70B | 1,000 requests/day 6,000 tokens/minute |
| Distil Whisper Large v3 | 7,200 audio-seconds/minute 2,000 requests/day |
| Gemma 2 9B Instruct | 14,400 requests/day 15,000 tokens/minute |
@@ -203,7 +201,7 @@ Free tier restricted to 8K context.
| Llama 3 70B | 14,400 requests/day 6,000 tokens/minute |
| Llama 3 8B | 14,400 requests/day 6,000 tokens/minute |
| Llama 3.1 8B | 14,400 requests/day 6,000 tokens/minute |
-| Llama 3.3 70B | 1,000 requests/day 12,000 tokens/minute |
+| Llama 3.3 70B | |
| Llama 4 Maverick 17B 128E Instruct | 1,000 requests/day 6,000 tokens/minute |
| Llama 4 Scout Instruct | 1,000 requests/day 30,000 tokens/minute |
| Llama Guard 3 8B | 14,400 requests/day 15,000 tokens/minute |
@@ -333,6 +331,7 @@ Data is sent to individual hosts.
- deepseek-ai/deepseek-r1-0528
- deepseek-ai/deepseek-r1-0528-qwen3-8b
- microsoft/mai-ds-r1-fp8
+- moonshotai/kimi-dev-72b
- qwen/qwen3-14b
- qwen/qwen3-235b-a22b
- qwen/qwen3-30b-a3b
@@ -400,13 +399,11 @@ Data is sent to individual hosts.
Very stringent payment verification for Google Cloud.
@@ -548,6 +545,7 @@ Very stringent payment verification for Google Cloud.
**Credits:** $5 for 3 months
**Models:**
+-
- E5-Mistral-7B-Instruct
- Llama 3.1 405B
- Llama 3.1 8B
@@ -560,7 +558,6 @@ Very stringent payment verification for Google Cloud.
- Qwen/QwQ-32B
- Qwen/Qwen2-Audio-7B-Instruct
- Qwen/Qwen3-32B
-- deepseek-ai/DeepSeek-R1
- deepseek-ai/DeepSeek-R1-0528
- deepseek-ai/DeepSeek-R1-Distill-Llama-70B
- deepseek-ai/DeepSeek-V3-0324
diff --git a/src/pull_available_models.py b/src/pull_available_models.py
index 3b7a437..0a26187 100644
--- a/src/pull_available_models.py
+++ b/src/pull_available_models.py
@@ -51,19 +51,28 @@ def get_model_name(id):
def get_groq_limits_for_stt_model(model_id, logger):
logger.info(f"Getting limits for STT model {model_id}...")
- r = requests.post(
- "https://api.groq.com/openai/v1/audio/transcriptions",
- headers={
- "Authorization": f'Bearer {os.environ["GROQ_API_KEY"]}',
- },
- data={
- "model": model_id,
- },
- files={
- "file": open(os.path.join(script_dir, "1-second-of-silence.mp3"), "rb"),
- },
- )
- r.raise_for_status()
+ try:
+ r = requests.post(
+ "https://api.groq.com/openai/v1/audio/transcriptions",
+ headers={
+ "Authorization": f'Bearer {os.environ["GROQ_API_KEY"]}',
+ },
+ data={
+ "model": model_id,
+ },
+ files={
+ "file": open(os.path.join(script_dir, "1-second-of-silence.mp3"), "rb"),
+ },
+ )
+ except Exception as e:
+ logger.error(f"Failed to get limits for model {model_id}: {e}")
+ return {}
+ try:
+ r.raise_for_status()
+ except Exception as e:
+ logger.error(f"Failed to get limits for model {model_id}: {e}")
+ logger.error(r.text)
+ return {}
audio_seconds_per_minute = int(r.headers["x-ratelimit-limit-audio-seconds"])
rpd = int(r.headers["x-ratelimit-limit-requests"])
return {
@@ -78,20 +87,25 @@ def get_groq_limits_for_model(model_id, script_dir, logger):
if "tts" in model_id:
return None
logger.info(f"Getting limits for chat model {model_id}...")
- r = requests.post(
- "https://api.groq.com/openai/v1/chat/completions",
- headers={
- "Authorization": f'Bearer {os.environ["GROQ_API_KEY"]}',
- "Content-Type": "application/json",
- },
- json={
- "model": model_id,
- "messages": [{"role": "user", "content": "Hi!"}],
- "max_tokens": 1,
- "stream": True,
- },
- stream=True,
- )
+
+ try:
+ r = requests.post(
+ "https://api.groq.com/openai/v1/chat/completions",
+ headers={
+ "Authorization": f'Bearer {os.environ["GROQ_API_KEY"]}',
+ "Content-Type": "application/json",
+ },
+ json={
+ "model": model_id,
+ "messages": [{"role": "user", "content": "Hi!"}],
+ "max_tokens": 1,
+ "stream": True,
+ },
+ stream=True,
+ )
+ except Exception as e:
+ logger.error(f"Failed to get limits for model {model_id}: {e}")
+ return {}
try:
r.raise_for_status()
rpd = int(r.headers["x-ratelimit-limit-requests"])
@@ -925,22 +939,15 @@ def main():
"id": "gemini-2.5-pro-exp-03-25",
"name": "Gemini 2.5 Pro (Experimental)",
"limits": {"requests/minute": 10},
- },
+ }
+ ]
+ vertex_deepseek_models = [
{
- "id": "gemini-2.0-flash-exp",
- "name": "Gemini 2.0 Flash (Experimental)",
- "limits": {"requests/minute": 10},
- },
- {
- "id": "gemini-2.0-flash-thinking-exp-01-21",
- "name": "Gemini 2.0 Flash Thinking (Experimental)",
- "limits": {"requests/minute": 10},
- },
- {
- "id": "gemini-exp-1206",
- "name": "Gemini 2.0 Pro (Experimental)",
- "limits": {"requests/minute": 10},
- },
+ "id": "deepseek-r1-0528-maas",
+ "name": "DeepSeek R1-0528",
+ "urlId": "deepseek-r1-0528-maas",
+ "limits": {"requests/minute": 60},
+ }
]
model_list_markdown += "### [Google Cloud Vertex AI](https://console.cloud.google.com/vertex-ai/model-garden)\n\n"
model_list_markdown += "Very stringent payment verification for Google Cloud.\n\n"
@@ -963,6 +970,12 @@ def main():
limits_str = get_human_limits(model)
model_list_markdown += f'| {model['name']} | {limits_str} Free during preview |
\n'
+ # Write DeepSeek models to table
+ if vertex_deepseek_models:
+ for model in vertex_deepseek_models:
+ limits_str = get_human_limits(model)
+ model_list_markdown += f'| {model['name']} | {limits_str} Free during preview |
\n'
+
model_list_markdown += "