Spaces:
Running
Running
Upload patch_models.py
Browse files- patch_models.py +20 -5
patch_models.py
CHANGED
|
@@ -1,10 +1,17 @@
|
|
| 1 |
-
"""Patch backend: add new model IDs to AVAILABLE_MODELS + fix OpenRouter routing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
import ast
|
|
|
|
| 3 |
|
| 4 |
AGENT_FILE = "/app/backend/routes/agent.py"
|
| 5 |
LLM_PARAMS_FILE = "/app/agent/core/llm_params.py"
|
| 6 |
|
| 7 |
-
# ββ Step 1: Patch AVAILABLE_MODELS ββ
|
| 8 |
with open(AGENT_FILE) as f:
|
| 9 |
content = f.read()
|
| 10 |
|
|
@@ -18,7 +25,7 @@ AVAILABLE_MODELS.extend([
|
|
| 18 |
{"id": "openai/nvidia/nemotron-3-super-120b-a12b:free", "label": "Nemotron 3 Super 120B", "provider": "openrouter", "tier": "free"},
|
| 19 |
{"id": "google/gemma-3-1b-it", "label": "Gemma 3 1B", "provider": "huggingface", "tier": "free", "recommended": True},
|
| 20 |
{"id": "Qwen/Qwen3-Coder-Next", "label": "Qwen3 Coder Next", "provider": "huggingface", "tier": "free", "recommended": True},
|
| 21 |
-
{"id": "openai/openrouter/owl-alpha
|
| 22 |
{"id": "openai/google/gemini-2.0-flash-001", "label": "Gemini 2.0 Flash", "provider": "openrouter", "tier": "free"},
|
| 23 |
{"id": "openai/google/gemma-4-31b-it:free", "label": "Gemma 4 31B", "provider": "openrouter", "tier": "free", "recommended": True},
|
| 24 |
{"id": "openai/nvidia/nemotron-3-ultra-550b-a55b:free", "label": "Nemotron 3 Ultra 550B", "provider": "openrouter", "tier": "free", "recommended": True},
|
|
@@ -62,7 +69,8 @@ new_block = """ hf_model = normalized_model
|
|
| 62 |
|
| 63 |
# === PATCH: Route OpenRouter models to openrouter.ai ===
|
| 64 |
# OpenRouter expects the model name WITHOUT the openai/ prefix.
|
| 65 |
-
# E.g. "openai/openrouter/owl-alpha
|
|
|
|
| 66 |
_or_prefixes = ("openai/google/", "openai/deepseek/", "openai/nvidia/", "openai/poolside/", "openai/openrouter/")
|
| 67 |
if normalized_model.startswith(_or_prefixes):
|
| 68 |
# Strip the "openai/" prefix so OpenRouter gets the correct model ID
|
|
@@ -85,6 +93,11 @@ if old_block in llm_content:
|
|
| 85 |
print("β
Patched _resolve_llm_params: OpenRouter routing with stripped prefix")
|
| 86 |
else:
|
| 87 |
print("β Could not find target block in llm_params.py")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 88 |
|
| 89 |
try:
|
| 90 |
ast.parse(llm_content)
|
|
@@ -97,4 +110,6 @@ with open(LLM_PARAMS_FILE, "w") as f:
|
|
| 97 |
f.write(llm_content)
|
| 98 |
|
| 99 |
print("β
Backend patched")
|
| 100 |
-
print(" - Owl Alpha: sends 'openrouter/owl-alpha
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Patch backend: add new model IDs to AVAILABLE_MODELS + fix OpenRouter routing.
|
| 2 |
+
|
| 3 |
+
OpenRouter models:
|
| 4 |
+
- openai/openrouter/owl-alpha β FREE by default, no :free suffix
|
| 5 |
+
- openai/google/gemini-2.0-flash-001 β PAID, no :free
|
| 6 |
+
- openai/*/...:free β free tier models, need :free suffix
|
| 7 |
+
"""
|
| 8 |
import ast
|
| 9 |
+
import os
|
| 10 |
|
| 11 |
AGENT_FILE = "/app/backend/routes/agent.py"
|
| 12 |
LLM_PARAMS_FILE = "/app/agent/core/llm_params.py"
|
| 13 |
|
| 14 |
+
# ββ Step 1: Patch AVAILABLE_MODELS in agent.py ββ
|
| 15 |
with open(AGENT_FILE) as f:
|
| 16 |
content = f.read()
|
| 17 |
|
|
|
|
| 25 |
{"id": "openai/nvidia/nemotron-3-super-120b-a12b:free", "label": "Nemotron 3 Super 120B", "provider": "openrouter", "tier": "free"},
|
| 26 |
{"id": "google/gemma-3-1b-it", "label": "Gemma 3 1B", "provider": "huggingface", "tier": "free", "recommended": True},
|
| 27 |
{"id": "Qwen/Qwen3-Coder-Next", "label": "Qwen3 Coder Next", "provider": "huggingface", "tier": "free", "recommended": True},
|
| 28 |
+
{"id": "openai/openrouter/owl-alpha", "label": "Owl Alpha", "provider": "openrouter", "tier": "free", "recommended": True},
|
| 29 |
{"id": "openai/google/gemini-2.0-flash-001", "label": "Gemini 2.0 Flash", "provider": "openrouter", "tier": "free"},
|
| 30 |
{"id": "openai/google/gemma-4-31b-it:free", "label": "Gemma 4 31B", "provider": "openrouter", "tier": "free", "recommended": True},
|
| 31 |
{"id": "openai/nvidia/nemotron-3-ultra-550b-a55b:free", "label": "Nemotron 3 Ultra 550B", "provider": "openrouter", "tier": "free", "recommended": True},
|
|
|
|
| 69 |
|
| 70 |
# === PATCH: Route OpenRouter models to openrouter.ai ===
|
| 71 |
# OpenRouter expects the model name WITHOUT the openai/ prefix.
|
| 72 |
+
# E.g. "openai/openrouter/owl-alpha" -> send "openrouter/owl-alpha"
|
| 73 |
+
# No :free suffix for Owl Alpha (free by default).
|
| 74 |
_or_prefixes = ("openai/google/", "openai/deepseek/", "openai/nvidia/", "openai/poolside/", "openai/openrouter/")
|
| 75 |
if normalized_model.startswith(_or_prefixes):
|
| 76 |
# Strip the "openai/" prefix so OpenRouter gets the correct model ID
|
|
|
|
| 93 |
print("β
Patched _resolve_llm_params: OpenRouter routing with stripped prefix")
|
| 94 |
else:
|
| 95 |
print("β Could not find target block in llm_params.py")
|
| 96 |
+
# Debug: find the actual block
|
| 97 |
+
idx = llm_content.find("hf_model = normalized_model")
|
| 98 |
+
if idx >= 0:
|
| 99 |
+
print(f"Found 'hf_model = normalized_model' at pos {idx}")
|
| 100 |
+
print(repr(llm_content[idx:idx+300]))
|
| 101 |
|
| 102 |
try:
|
| 103 |
ast.parse(llm_content)
|
|
|
|
| 110 |
f.write(llm_content)
|
| 111 |
|
| 112 |
print("β
Backend patched")
|
| 113 |
+
print(" - Owl Alpha: sends 'openrouter/owl-alpha' to openrouter.ai (NO :free)")
|
| 114 |
+
print(" - Gemini 2.0 Flash: sends 'google/gemini-2.0-flash-001' to openrouter.ai (NO :free)")
|
| 115 |
+
print(" - Other OR free models: include :free suffix")
|