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() |