From 635775c810ee456778cdff32ef6cc57f77f0010a Mon Sep 17 00:00:00 2001 From: myhloli Date: Tue, 24 Mar 2026 15:41:50 +0800 Subject: [PATCH] feat: add support for disabling VLM acceleration via environment variable --- mineru/utils/engine_utils.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/mineru/utils/engine_utils.py b/mineru/utils/engine_utils.py index 11a9b87d..9ac704d1 100644 --- a/mineru/utils/engine_utils.py +++ b/mineru/utils/engine_utils.py @@ -1,9 +1,14 @@ # Copyright (c) Opendatalab. All rights reserved. +import os + from loguru import logger from mineru.utils.check_sys_env import is_mac_os_version_supported, is_windows_environment, is_mac_environment, \ is_linux_environment +DISABLE_VLM_ACCELERATION_ENV = "MINERU_DISABLE_VLM_ACCELERATION" +_TRUE_VALUES = ("1", "true", "yes", "on") + def get_vlm_engine(inference_engine: str, is_async: bool = False) -> str: """ @@ -16,7 +21,13 @@ def get_vlm_engine(inference_engine: str, is_async: bool = False) -> str: Returns: 最终选择的引擎名称 """ - if inference_engine == 'auto': + if _is_vlm_acceleration_disabled(): + if inference_engine != 'transformers': + logger.info( + f"{DISABLE_VLM_ACCELERATION_ENV} is enabled, forcing VLM inference engine to transformers." + ) + inference_engine = 'transformers' + elif inference_engine == 'auto': # 根据操作系统自动选择引擎 if is_windows_environment(): inference_engine = _select_windows_engine() @@ -33,6 +44,11 @@ def get_vlm_engine(inference_engine: str, is_async: bool = False) -> str: return formatted_engine +def _is_vlm_acceleration_disabled() -> bool: + value = os.getenv(DISABLE_VLM_ACCELERATION_ENV, "0") + return value.strip().lower() in _TRUE_VALUES + + def _select_windows_engine() -> str: """Windows 平台引擎选择""" try: