From a8c7897fd96aa7e368f19adeb54f68aa040d8845 Mon Sep 17 00:00:00 2001 From: 9qeklajc <9qeklajc> Date: Wed, 6 Aug 2025 22:53:31 +0200 Subject: [PATCH 1/2] update model collecting to filter by source --- scripts/models_meta.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/scripts/models_meta.py b/scripts/models_meta.py index 1b441c28..81f71d72 100755 --- a/scripts/models_meta.py +++ b/scripts/models_meta.py @@ -43,24 +43,33 @@ class Model(TypedDict): OUTPUT_FILE = os.getenv("OUTPUT_FILE", "models.json") BASE_URL = os.getenv("BASE_URL", "https://openrouter.ai/api/v1") +SOURCE = os.getenv("SOURCE", "openai") -def fetch_openrouter_models() -> list[Model]: +def fetch_openrouter_models(source_filter: str | None = None) -> list[Model]: """Fetches model information from OpenRouter API.""" with urlopen(f"{BASE_URL}/models") as response: data = json.loads(response.read().decode("utf-8")) models_data: list[Model] = [] for model in data.get("data", []): - # Skip models with '(free)' in the name or id = 'openrouter/auto' + model_id = model.get("id", "") + + if source_filter: + source_prefix = f"{source_filter}/" + if not model_id.startswith(source_prefix): + continue + + model = dict(model) + model["id"] = model_id[len(source_prefix) :] + model_id = model["id"] + if ( "(free)" in model.get("name", "") - or model.get("id") == "openrouter/auto" + or model_id == "openrouter/auto" + or model_id == "google/gemini-2.5-pro-exp-03-25" ): continue - # Skip free Gemini 2.5 Pro Exp - if model.get("id") == "google/gemini-2.5-pro-exp-03-25": - continue models_data.append(model) @@ -68,10 +77,9 @@ def fetch_openrouter_models() -> list[Model]: def main() -> None: - models = fetch_openrouter_models() + source_filter = SOURCE if SOURCE else None + models = fetch_openrouter_models(source_filter=source_filter) - # Print the first model data in a nicely indented JSON format - # print(json.dumps(models[0], indent=4)) print(f"Writing {len(models)} models to {OUTPUT_FILE}") with open(OUTPUT_FILE, "w") as f: From 6454b604ebaedb7f86c6305538267b70c00a2752 Mon Sep 17 00:00:00 2001 From: 9qeklajc <9qeklajc> Date: Wed, 6 Aug 2025 22:58:20 +0200 Subject: [PATCH 2/2] update to collect all openrouter models --- scripts/models_meta.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/models_meta.py b/scripts/models_meta.py index 81f71d72..d95b5ddd 100755 --- a/scripts/models_meta.py +++ b/scripts/models_meta.py @@ -43,7 +43,7 @@ class Model(TypedDict): OUTPUT_FILE = os.getenv("OUTPUT_FILE", "models.json") BASE_URL = os.getenv("BASE_URL", "https://openrouter.ai/api/v1") -SOURCE = os.getenv("SOURCE", "openai") +SOURCE = os.getenv("SOURCE") def fetch_openrouter_models(source_filter: str | None = None) -> list[Model]: @@ -77,7 +77,7 @@ def fetch_openrouter_models(source_filter: str | None = None) -> list[Model]: def main() -> None: - source_filter = SOURCE if SOURCE else None + source_filter = SOURCE if SOURCE and SOURCE.strip() else None models = fetch_openrouter_models(source_filter=source_filter) print(f"Writing {len(models)} models to {OUTPUT_FILE}")