teste_laudos / models /model_loader.py
gui-sparim's picture
Upload 44 files
8d6c767 verified
Raw History Blame Contribute Delete
1.72 kB
"""
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)