from src.textsummarizer.constants import * from src.textsummarizer.utils.common import read_yaml, create_directories from src.textsummarizer.entity.config_entity import (DataIngestionConfig, DataValidationConfig, DataTransformationConfig, ModelTrainerConfig, ModelEvaluationConfig) class ConfigurationManager: def __init__( self, config_filepath = CONFIG_FILE_PATH, params_filepath = PARAMS_FILE_PATH): self.config = read_yaml(config_filepath) self.params = read_yaml(params_filepath) create_directories([self.config.artifacts_root]) def get_data_ingestion_config(self) -> DataIngestionConfig: config = self.config.data_ingestion create_directories([config.root_dir]) data_ingestion_config = DataIngestionConfig( root_dir=config.root_dir, source_URL=config.source_URL, local_data_file=config.local_data_file, unzip_dir=config.unzip_dir ) return data_ingestion_config def get_data_validation_config(self) -> DataValidationConfig: config = self.config.data_validation create_directories([config.root_dir]) data_validation_config = DataValidationConfig( root_dir=config.root_dir, STATUS_FILE=config.STATUS_FILE, ALL_REQUIRED_FILES=config.ALL_REQUIRED_FILES, ) return data_validation_config def get_data_transformation_config(self) -> DataTransformationConfig: config = self.config.data_transformation create_directories([config.root_dir]) data_transformation_config = DataTransformationConfig( root_dir=config.root_dir, data_path=config.data_path, tokenizer_name = config.tokenizer_name ) return data_transformation_config def get_model_trainer_config(self) -> ModelTrainerConfig: config = self.config.model_trainer params = self.params.TrainingArguments create_directories([config.root_dir]) model_trainer_config = ModelTrainerConfig( root_dir = config.root_dir, data_path = config.data_path, model_ckpt = config.model_ckpt, num_train_epochs =params.num_train_epochs, warmup_steps =params.warmup_steps, per_device_train_batch_size = params.per_device_train_batch_size, weight_decay = params.weight_decay, logging_steps = params.logging_steps, evaluation_strategy =params.evaluation_strategy, eval_steps =params.eval_steps, save_steps = params.save_steps, gradient_accumulation_steps = params.gradient_accumulation_steps ) return model_trainer_config def get_model_evaluation_config(self) -> ModelEvaluationConfig: config = self.config.model_evaluation params = self.params.TrainingArguments create_directories([config.root_dir]) model_evaluation_config = ModelEvaluationConfig( root_dir=config.root_dir, data_path=config.data_path, model_path = config.model_path, tokenizer_path = config.tokenizer_path, metric_file_name = config.metric_file_name, all_params = params ) return model_evaluation_config