server.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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_logits_processors_arg = False
  9. model_path = None
  10. model_arg_indices = []
  11. # 检查现有参数
  12. for i, arg in enumerate(args):
  13. if arg == "--port" or arg.startswith("--port="):
  14. has_port_arg = True
  15. if arg == "--gpu-memory-utilization" or arg.startswith("--gpu-memory-utilization="):
  16. has_gpu_memory_utilization_arg = True
  17. if arg == "--model":
  18. if i + 1 < len(args):
  19. model_path = args[i + 1]
  20. model_arg_indices.extend([i, i + 1])
  21. elif arg.startswith("--model="):
  22. model_path = arg.split("=", 1)[1]
  23. model_arg_indices.append(i)
  24. if arg == "--logits-processors" or arg.startswith("--logits-processors="):
  25. has_logits_processors_arg = True
  26. # 从参数列表中移除 --model 参数
  27. if model_arg_indices:
  28. for index in sorted(model_arg_indices, reverse=True):
  29. args.pop(index)
  30. # 添加默认参数
  31. if not has_port_arg:
  32. args.extend(["--port", "30000"])
  33. if not has_gpu_memory_utilization_arg:
  34. args.extend(["--gpu-memory-utilization", "0.5"])
  35. if not model_path:
  36. model_path = auto_download_and_get_model_root_path("/", "vlm")
  37. if not has_logits_processors_arg:
  38. args.extend(["--logits-processors", "mineru_vl_utils:MinerULogitsProcessor"])
  39. # 重构参数,将模型路径作为位置参数
  40. sys.argv = [sys.argv[0]] + ["serve", model_path] + args
  41. # 启动vllm服务器
  42. print(f"start vllm server: {sys.argv}")
  43. vllm_main()
  44. if __name__ == "__main__":
  45. main()