"""FastAPI 入口.""" import argparse import os import uvicorn from app import create_app def main(): parser = argparse.ArgumentParser(description="PTZ 360 scan polling system") parser.add_argument("--demo", action="store_true", help="Demo mode (no-op currently)") parser.add_argument("--host", default=os.environ.get("HOST", "0.0.0.0")) parser.add_argument("--port", type=int, default=int(os.environ.get("PORT", 8000))) parser.add_argument("--model", default=None, help="Path to detection model") parser.add_argument( "--model-size", default=None, choices=["n", "s", "m", "l", "x"], help="YOLO11 model size", ) parser.add_argument("--no-gpu", action="store_true", help="Disable GPU/NPU") args = parser.parse_args() # Forward model args to detection config when provided if args.model or args.model_size or args.no_gpu: from config import detection if args.model: detection.DETECTION_CONFIG["model_path"] = args.model if args.model_size: detection.DETECTION_CONFIG["model_size"] = args.model_size if args.no_gpu: detection.DETECTION_CONFIG["use_gpu"] = False app = create_app() uvicorn.run(app, host=args.host, port=args.port) if __name__ == "__main__": main()