"""CLI script to evaluate the trained model.""" import sys from pathlib import Path import argparse # Add project root to path project_root = Path(__file__).parent.parent sys.path.insert(0, str(project_root)) from mlpipeline.components.model_evaluation import ModelEvaluation from mlpipeline.config.configuration import ConfigurationManager from mlpipeline.logging.logger import get_logger logger = get_logger(__name__) def main(): """Evaluate the trained model.""" parser = argparse.ArgumentParser(description="Evaluate AutoML model") parser.add_argument( "--model-path", type=str, default=None, help="Path to model directory (default: from config)" ) args = parser.parse_args() try: logger.info("Starting model evaluation...") config_manager = ConfigurationManager() eval_config = config_manager.get_model_evaluation_config() # Override model path if provided if args.model_path: eval_config.model_path = Path(args.model_path) evaluator = ModelEvaluation(eval_config) metrics = evaluator.evaluate() logger.info("✅ Evaluation completed!") logger.info(f"Metrics: {metrics}") return 0 except Exception as e: logger.error(f"❌ Evaluation failed: {e}") return 1 if __name__ == "__main__": exit(main())