File size: 1,774 Bytes
5e0ae28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""
Main application entry point
"""
from src.config.env import load_environment
from src.config.settings import AppConfig
from src.config.constants import ReasoningMode, ModelConfig
from src.ui.app import create_ui
from src.utils.logger import logger


def main():
    """
    πŸš€ APPLICATION ENTRY POINT
    """
    try:
        # Load environment variables
        load_environment()
        
        # Print startup information
        logger.info("="*60)
        logger.info("πŸš€ Starting Advanced AI Reasoning System Pro...")
        logger.info(f"🌍 Environment: {AppConfig.ENV}")
        logger.info(f"🎨 Theme: {AppConfig.THEME_PRIMARY}/{AppConfig.THEME_SECONDARY}")
        logger.info(f"πŸ€– Available Models: {len(ModelConfig)}")
        logger.info(f"🧠 Reasoning Modes: {len(ReasoningMode)}")
        logger.info(f"πŸ’Ύ Cache: {AppConfig.CACHE_SIZE} entries")
        logger.info(f"⏱️  Rate Limit: {AppConfig.RATE_LIMIT_REQUESTS} req/{AppConfig.RATE_LIMIT_WINDOW}s")
        logger.info("πŸŽ›οΈ Features: Collapsible Sidebar, PDF Export, Real-time Analytics")
        logger.info("="*60)
        
        # Create and launch UI
        demo = create_ui()
        demo.launch(
            share=False,
            server_name="0.0.0.0",
            server_port=7860,
            show_error=True,
            show_api=False,
            favicon_path=None,
            max_threads=AppConfig.MAX_WORKERS
        )
        
    except KeyboardInterrupt:
        logger.info("⏹️  Application stopped by user (Ctrl+C)")
    except Exception as e:
        logger.critical(f"❌ Failed to start application: {e}", exc_info=True)
        raise
    finally:
        logger.info("πŸ‘‹ Shutting down gracefully...")


if __name__ == "__main__":
    main()