server.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import sys
  2. from mineru.utils.models_download_utils import auto_download_and_get_model_root_path
  3. from vllm.entrypoints.cli.main import main as vllm_main
  4. def main():
  5. args = sys.argv[1:]
  6. has_port_arg = False
  7. has_gpu_memory_utilization_arg = False
  8. has_model_arg = False
  9. for i, arg in enumerate(args):
  10. if arg == "--port" or arg.startswith("--port="):
  11. has_port_arg = True
  12. if arg == "--gpu-memory-utilization" or arg.startswith("--gpu-memory-utilization="):
  13. has_gpu_memory_utilization_arg = True
  14. if arg == "--model" or arg.startswith("--model="):
  15. has_model_arg = True
  16. if not has_port_arg:
  17. args.extend(["--port", "30000"])
  18. if not has_gpu_memory_utilization_arg:
  19. args.extend(["--gpu-memory-utilization", "0.5"])
  20. if not has_model_arg:
  21. default_path = auto_download_and_get_model_root_path("/", "vlm")
  22. args.extend([default_path])
  23. # 重新构造sys.argv,以便透传所有参数给vllm
  24. sys.argv = [sys.argv[0]] + ["serve"] + args
  25. # 启动vllm服务器
  26. print(f"start vllm server: {sys.argv}")
  27. vllm_main()
  28. if __name__ == "__main__":
  29. main()