File size: 2,325 Bytes
1c73b10
3ce2f84
abcde8f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eb5ebe6
 
43ee4de
1c73b10
ab59957
 
1c73b10
abcde8f
3ce2f84
abcde8f
 
 
 
 
 
 
 
 
 
 
 
 
 
3ce2f84
 
abcde8f
9b0ae85
abcde8f
 
3ce2f84
 
abcde8f
9b0ae85
abcde8f
 
9b0ae85
abcde8f
 
 
 
3ce2f84
9b0ae85
3ce2f84
abcde8f
 
a7fa922
1c73b10
9b0ae85
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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()