Spaces:
Paused
Paused
Download satquery_engine/models/router.py from SM737/satquery-api: direct link, hf CLI and curl.
- Browser
- Download file 910 Bytes
-
https://huggingface.co/spaces/SM737/satquery-api/resolve/main/satquery_engine/models/router.py
- Command line
-
hf download hf://spaces/SM737/satquery-api/satquery_engine/models/router.py
-
curl -L -o router.py https://huggingface.co/spaces/SM737/satquery-api/resolve/main/satquery_engine/models/router.py
910 Bytes
| from __future__ import annotations | |
| from dataclasses import dataclass | |
| from typing import Any, Iterable | |
| from satquery_engine.models.compatibility import CompatibilityResult, ModelCompatibility | |
| from satquery_engine.models.manifest import ModelManifest | |
| class RoutedModel: | |
| role: str | |
| manifest: ModelManifest | |
| compatibility: CompatibilityResult | |
| class CompatibilityRouter: | |
| """Select the first healthy, input-compatible model for a task role.""" | |
| def route( | |
| self, | |
| candidates: Iterable[tuple[str, ModelManifest]], | |
| raster_profile: Any, | |
| task: str, | |
| ) -> RoutedModel | None: | |
| for role, manifest in candidates: | |
| result = ModelCompatibility.evaluate(manifest, raster_profile, task) | |
| if result.compatible: | |
| return RoutedModel(role=role, manifest=manifest, compatibility=result) | |
| return None | |