Spaces:
Sleeping
Sleeping
| #!/usr/bin/env python | |
| """ | |
| Startup script for Fridge Vision API. | |
| Run: python run_server.py | |
| """ | |
| import os | |
| import sys | |
| import logging | |
| from pathlib import Path | |
| # Add project root to path | |
| PROJECT_ROOT = Path(__file__).parent | |
| sys.path.insert(0, str(PROJECT_ROOT)) | |
| from config import get_config, print_config, API_CONFIG, LOG_LEVEL | |
| # Configure logging | |
| logging.basicConfig( | |
| level=LOG_LEVEL, | |
| format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' | |
| ) | |
| logger = logging.getLogger(__name__) | |
| def main(): | |
| """Start the Fridge Vision API server.""" | |
| try: | |
| # Print configuration | |
| print_config() | |
| # Import FastAPI app | |
| from api.main import app | |
| import uvicorn | |
| logger.info("Starting Fridge Vision API server...") | |
| logger.info(f"Host: {API_CONFIG['host']}") | |
| logger.info(f"Port: {API_CONFIG['port']}") | |
| logger.info(f"Debug: {API_CONFIG['debug']}") | |
| logger.info(f"Reload: {API_CONFIG['reload']}") | |
| # Run server | |
| uvicorn.run( | |
| app, | |
| host=API_CONFIG['host'], | |
| port=API_CONFIG['port'], | |
| reload=API_CONFIG['reload'], | |
| log_level=LOG_LEVEL.lower() | |
| ) | |
| except KeyboardInterrupt: | |
| logger.info("Server stopped by user") | |
| except Exception as e: | |
| logger.error(f"Server error: {e}", exc_info=True) | |
| sys.exit(1) | |
| if __name__ == "__main__": | |
| main() | |