Spaces:
Sleeping
Sleeping
import logging | |
from models.model_loader import ModelLoader | |
logger = logging.getLogger(__name__) | |
class ModelSelector: | |
""" | |
Given a list of candidate model names, attempts to load each in turn | |
and returns the first that succeeds. | |
""" | |
def __init__(self, candidates=None, quantize=True): | |
# Default candidates: NLLB distilled, then M2M100 | |
self.candidates = candidates or [ | |
"facebook/nllb-200-distilled-600M", | |
"facebook/m2m100_418M" | |
] | |
self.quantize = quantize | |
def select(self) -> str: | |
loader = ModelLoader(quantize=self.quantize) | |
for name in self.candidates: | |
try: | |
_, _ = loader.load(name) | |
logger.info(f"✔️ Selected translation model: {name}") | |
return name | |
except Exception as e: | |
logger.warning(f"Failed to load {name}: {e}") | |
raise RuntimeError("No translation model could be loaded.") | |