lmdeploy_server.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import os
  2. import sys
  3. from mineru.backend.vlm.utils import set_lmdeploy_backend
  4. from mineru.utils.models_download_utils import auto_download_and_get_model_root_path
  5. def main():
  6. args = sys.argv[1:]
  7. has_port_arg = False
  8. has_gpu_memory_utilization_arg = False
  9. has_log_level_arg = False
  10. device_type = "cuda"
  11. # 检查现有参数
  12. for i, arg in enumerate(args):
  13. if arg == "--server-port" or arg.startswith("--server-port="):
  14. has_port_arg = True
  15. if arg == "--cache-max-entry-count" or arg.startswith("--cache-max-entry-count="):
  16. has_gpu_memory_utilization_arg = True
  17. if arg == "--log-level" or arg.startswith("--log-level="):
  18. has_log_level_arg = True
  19. if arg == "--device":
  20. if i + 1 < len(args):
  21. device_type = args[i + 1]
  22. elif arg.startswith("--device="):
  23. device_type = arg.split("=", 1)[1]
  24. # 添加默认参数
  25. if not has_port_arg:
  26. args.extend(["--server-port", "30000"])
  27. if not has_gpu_memory_utilization_arg:
  28. args.extend(["--cache-max-entry-count", "0.5"])
  29. if not has_log_level_arg:
  30. args.extend(["--log-level", "ERROR"])
  31. if ":" in device_type:
  32. device_type = device_type.split(":")[0]
  33. lm_backend = set_lmdeploy_backend(device_type)
  34. # args中如果有--backend参数,则不设置
  35. if not any(arg == "--backend" or arg.startswith("--backend=") for arg in args):
  36. args.extend(["--backend", lm_backend])
  37. model_path = auto_download_and_get_model_root_path("/", "vlm")
  38. # 重构参数,将模型路径作为位置参数
  39. sys.argv = [sys.argv[0]] + ["serve", "api_server", model_path] + args
  40. if os.getenv('OMP_NUM_THREADS') is None:
  41. os.environ["OMP_NUM_THREADS"] = "1"
  42. # 启动 lmdeploy 服务器
  43. print(f"start lmdeploy server: {sys.argv}")
  44. # 使用os.system调用启动lmdeploy服务器
  45. os.system("lmdeploy " + " ".join(sys.argv[1:]))
  46. if __name__ == "__main__":
  47. main()