import logging import sys from pathlib import Path # Set up logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=[ logging.StreamHandler(sys.stdout), logging.FileHandler('app.log') ] ) logger = logging.getLogger(__name__) try: import gradio as gr from config import CONFIG from data_manager import DataManager from ui_evaluation_requests import add_evaluation_requests_tab from ui_leaderboard import add_leaderboard_tab from ui_main import create_clean_app from ui_model_responses import add_model_responses_tab from ui_model_section_scores import add_model_section_scores_tab from ui_submit_model import add_submit_model_tab logger.info("All imports successful") except Exception as e: logger.error(f"Import error: {e}") raise from apscheduler.schedulers.background import BackgroundScheduler from data_manager import data_manager def main(): """Ana uygulama fonksiyonu""" try: logger.info("Starting Turkish MMLU Leaderboard application...") # Initialize data manager logger.info("Initializing data manager...") data_manager_instance = DataManager() logger.info("Data manager initialized successfully") # Create the main interface logger.info("Creating main interface...") app = create_clean_app() logger.info("Main interface created successfully") # Start the scheduler for data refresh logger.info("Starting background scheduler...") scheduler = BackgroundScheduler() scheduler.add_job( data_manager_instance.refresh_datasets, 'interval', seconds=CONFIG["dataset"].refresh_interval, id='refresh_datasets' ) scheduler.start() logger.info("Background scheduler started successfully") # Launch the app logger.info("Launching Gradio app...") app.launch( server_name="0.0.0.0", server_port=7860, share=False, debug=True ) except Exception as e: logger.error(f"Application startup failed: {e}") raise if __name__ == "__main__": main()