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