server.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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. has_model_tag_arg = False
  10. for i, arg in enumerate(args):
  11. if arg == "--port" or arg.startswith("--port="):
  12. has_port_arg = True
  13. if arg == "--gpu-memory-utilization" or arg.startswith("--gpu-memory-utilization="):
  14. has_gpu_memory_utilization_arg = True
  15. if arg == "--model" or arg.startswith("--model="):
  16. has_model_arg = True
  17. if not has_port_arg:
  18. args.extend(["--port", "30000"])
  19. if not has_gpu_memory_utilization_arg:
  20. args.extend(["--gpu-memory-utilization", "0.5"])
  21. if not has_model_arg:
  22. default_path = auto_download_and_get_model_root_path("/", "vlm")
  23. args.extend([default_path])
  24. # 重新构造sys.argv,以便透传所有参数给vllm
  25. sys.argv = [sys.argv[0]] + args
  26. # 启动vllm服务器
  27. print(f"start vllm server: {sys.argv}")
  28. vllm_main()
  29. if __name__ == "__main__":
  30. main()