teste_laudos / models /model_loader.py
gui-sparim's picture
Upload 44 files
8d6c767 verified
"""
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)