from research_assistant.constants import CONFIG_FILE_PATH from research_assistant.entity import ( ArticleSearchConfig, PlannerConfig, PlannerParserConfig, QaToolConfig, SolverConfig, SubmittedDateConfig, articleLoaderConfig, ) from research_assistant.utils.common import read_yaml class ConfigurationManager: def __init__(self, config_filepath=CONFIG_FILE_PATH): self.config = read_yaml(config_filepath) def get_article_details_config(self) -> articleLoaderConfig: config = self.config.article_details return articleLoaderConfig( file_path=config.file_path, summary_save_dir=config.summary_save_dir ) def get_article_search_params(self) -> ArticleSearchConfig: config = self.config.article_search_details return ArticleSearchConfig( search_terms=config.search_terms, num_results=config.num_results, date_range=SubmittedDateConfig( start_date=config.date_range.start_date, end_date=config.date_range.end_date, ), sort_by=config.sort_by, sort_order=config.sort_order, ) def get_planner_config(self) -> PlannerConfig: config = self.config.planner return PlannerConfig(model_name=config.model_name) def get_qa_tool_config(self) -> QaToolConfig: config = self.config.qa_tool return QaToolConfig(model_name=config.model_name) def get_solver_config(self) -> SolverConfig: config = self.config.solver return SolverConfig(model_name=config.model_name) def get_planner_parser_config(self) -> PlannerParserConfig: config = self.config.planner_parser return PlannerParserConfig( tool_list_model=config.tool_list_model, argument_list_model=config.argument_list_model, dependency_list_model=config.dependency_list_model, )