Spaces:
Sleeping
Sleeping
File size: 1,724 Bytes
8d6c767 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | """
Carregador de modelos de avaliação.
Carrega arquivos .dai via joblib.
"""
from pathlib import Path
from typing import Optional
import joblib
from .model_data import ModelData
def load_model(model_path: Path) -> Optional[ModelData]:
"""
Carrega um modelo de avaliação a partir de uma pasta.
Args:
model_path: Caminho para a pasta do modelo (contendo modelo.dai)
Returns:
ModelData com os dados carregados, ou None se falhar
"""
dai_path = model_path / "modelo.dai"
if not dai_path.exists():
return None
try:
data = joblib.load(dai_path)
except Exception as e:
print(f"Erro ao carregar {dai_path}: {e}")
return None
model = ModelData(
nome=model_path.name,
path=model_path,
xy_preview=data.get('Xy_preview_out_coords'),
top_x_esc=data.get('top_X_esc'),
top_y_esc=data.get('top_y_esc'),
estatisticas=data.get('estatisticas'),
tabelas_coef=data.get('tabelas_coef'),
tabelas_obs_calc=data.get('tabelas_obs_calc'),
modelos_resumos=data.get('modelos_resumos', {}),
modelos_sm=data.get('modelos_sm'),
formatted_top_transformation_info=data.get('formatted_top_transformation_info', []),
graf_model=data.get('graf_model', ''),
)
return model
def load_model_by_name(name: str, models_dir: Path) -> Optional[ModelData]:
"""
Carrega um modelo pelo nome.
Args:
name: Nome do modelo (nome da pasta)
models_dir: Diretório raiz dos modelos
Returns:
ModelData com os dados carregados, ou None se não encontrar
"""
model_path = models_dir / name
return load_model(model_path)
|