import argparse from pathlib import Path from dotenv import load_dotenv from research_assistant.app_logging import app_logger from research_assistant.config.configuration import ConfigurationManager from research_assistant.pipeline.articleSearch import ArticleSearchPipeline from research_assistant.pipeline.articleSummarization import ArticleSummarization from research_assistant.utils.common import write_summary_to_file def article_summarization(): app_logger.info("Starting the Summarization Pipeline") load_dotenv(Path(".env")) article_config = ConfigurationManager().get_article_details_config() filepath = article_config.file_path app_logger.info(f"Processing file: {filepath}") summary = ArticleSummarization(filepath).get_summary() app_logger.info(f"Summary: {summary}") app_logger.info("Completed Summarizing the article") write_summary_to_file(article_config, summary) app_logger.info("Summarization Pipeline completed successfully") def article_search(): app_logger.info("Starting the article search pipeline") arxiv_search_details = ConfigurationManager().get_article_search_params() article_search = ArticleSearchPipeline(arxiv_search_details) article_list = article_search.get_article_list() app_logger.info( f"Completed searching for articles. We found a total of {len(article_list)} articles" ) def main(): parser = argparse.ArgumentParser(description="Research Assistant CLI") parser.add_argument( "--summarize_article", action="store_true", help="Runs the article summmarization pipeline", ) parser.add_argument( "--search_articles", action="store_true", help="Run the article search pipeline", ) args = parser.parse_args() if args.summarize_article: article_summarization() elif args.search_articles: article_search() else: app_logger.info("No valid arguments provided. Use --help for options.") if __name__ == "__main__": main()