Spaces:
Running
Running
| #!/usr/bin/env python3 | |
| """ | |
| Simple launcher script for the Gradio app with better error handling and debug logging. | |
| """ | |
| import os | |
| import sys | |
| from dotenv import load_dotenv | |
| # Load environment variables | |
| load_dotenv() | |
| # Import and setup debug configuration | |
| try: | |
| from debug_config import setup_debug_logging, log_system_info, log_session_end | |
| import logging | |
| # Setup debug logging (can be controlled via environment variable) | |
| debug_level = os.getenv('DEBUG_LEVEL', 'INFO') | |
| log_to_file = os.getenv('LOG_TO_FILE', 'true').lower() == 'true' | |
| log_to_console = os.getenv('LOG_TO_CONSOLE', 'true').lower() == 'true' | |
| setup_debug_logging(log_level=debug_level, log_to_file=log_to_file, log_to_console=log_to_console) | |
| logger = logging.getLogger(__name__) | |
| except ImportError: | |
| # Fallback if debug_config is not available | |
| import logging | |
| logging.basicConfig(level=logging.INFO) | |
| logger = logging.getLogger(__name__) | |
| def check_requirements(): | |
| """Check if all required packages are installed.""" | |
| logger.info("Checking package requirements...") | |
| required_packages = [ | |
| 'gradio', 'google.generativeai', 'torch', 'psutil' | |
| ] | |
| missing = [] | |
| for package in required_packages: | |
| try: | |
| __import__(package.replace('-', '_')) | |
| logger.debug(f"β Package {package} found") | |
| except ImportError: | |
| missing.append(package) | |
| logger.warning(f"β Package {package} missing") | |
| if missing: | |
| logger.error(f"Missing packages: {', '.join(missing)}") | |
| print(f"Missing packages: {', '.join(missing)}") | |
| print("Please run: pip install -r requirements.txt") | |
| return False | |
| logger.info("All required packages are available") | |
| return True | |
| def check_api_key(): | |
| """Check if API key is configured.""" | |
| logger.info("Checking API key configuration...") | |
| api_key = os.getenv('GOOGLE_API_KEY') | |
| if not api_key: | |
| logger.error("GOOGLE_API_KEY not found in environment variables") | |
| print("ERROR: GOOGLE_API_KEY not found in .env file") | |
| print("Please add your Gemini API key to the .env file:") | |
| print("GOOGLE_API_KEY=your_api_key_here") | |
| return False | |
| logger.info(f"API key found (length: {len(api_key)})") | |
| return True | |
| def main(): | |
| logger.info("Starting Auto Diffusers Config application") | |
| print("π Starting Auto Diffusers Config Gradio App...") | |
| # Log system information | |
| try: | |
| log_system_info() | |
| except: | |
| logger.warning("Could not log system info") | |
| # Check requirements | |
| if not check_requirements(): | |
| logger.error("Requirements check failed, exiting") | |
| sys.exit(1) | |
| if not check_api_key(): | |
| logger.error("API key check failed, exiting") | |
| sys.exit(1) | |
| try: | |
| logger.info("Importing Gradio interface module") | |
| from gradio_app import create_gradio_interface | |
| logger.info("All requirements satisfied, launching interface") | |
| print("β All requirements satisfied") | |
| print("π Launching Gradio interface...") | |
| interface = create_gradio_interface() | |
| logger.info("Gradio interface created successfully") | |
| logger.info("Starting Gradio server on 0.0.0.0:7860") | |
| interface.launch( | |
| server_name="0.0.0.0", | |
| server_port=7860, | |
| share=True, | |
| show_error=True, | |
| inbrowser=True | |
| ) | |
| except ImportError as e: | |
| logger.error(f"Import error: {e}") | |
| print(f"Import error: {e}") | |
| print("Make sure all dependencies are installed: pip install -r requirements.txt") | |
| except Exception as e: | |
| logger.error(f"Error launching app: {e}", exc_info=True) | |
| print(f"Error launching app: {e}") | |
| finally: | |
| try: | |
| log_session_end() | |
| except: | |
| logger.warning("Could not log session end") | |
| if __name__ == "__main__": | |
| main() |