"""Script to start the FastAPI server.""" import argparse import uvicorn from pathlib import Path if __name__ == "__main__": parser = argparse.ArgumentParser(description="Start FastAPI server") parser.add_argument( "--host", type=str, default="0.0.0.0", help="Host to bind to" ) parser.add_argument( "--port", type=int, default=8000, help="Port to bind to" ) parser.add_argument( "--reload", action="store_true", help="Enable auto-reload" ) parser.add_argument( "--workers", type=int, default=1, help="Number of worker processes" ) parser.add_argument( "--log-level", type=str, default="info", choices=["debug", "info", "warning", "error"], help="Log level" ) args = parser.parse_args() # Check if model exists model_path = Path("models/best_model.pt") if not model_path.exists(): print(f"Warning: Model file not found at {model_path}") print("API will start but model must be loaded via /model/reload endpoint") uvicorn.run( "api.main:app", host=args.host, port=args.port, reload=args.reload, workers=args.workers if not args.reload else 1, log_level=args.log_level, )