#!/usr/bin/env python3 import os import logging import traceback import gradio as gr # Import internal modules from src.config import Config from src.database import DatabaseManager from src.auth import AuthManager from src.ai_processor import AIProcessor from src.ui_components_original import UIComponents # Logging setup logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') class SmartHealApp: def __init__(self): self.ui_components = None try: self.config = Config() self.database_manager = DatabaseManager(self.config.get_mysql_config()) self.auth_manager = AuthManager(self.database_manager) self.ai_processor = AIProcessor() self.ui_components = UIComponents( self.auth_manager, self.database_manager, self.ai_processor ) self.database_manager.create_tables() logging.info("✅ SmartHeal App initialized successfully.") except Exception as e: logging.error(f"Initialization error: {e}") traceback.print_exc() raise def launch(self, port=7860, share=True): interface = self.ui_components.create_interface() interface.launch( share=share ) def main(): try: app = SmartHealApp() app.launch() except KeyboardInterrupt: logging.info("App interrupted by user.") except Exception: logging.error("App failed to start.") raise if __name__ == "__main__": main()