fix: 修复两个OCR问题
1. 修复_clean_ocr_prefix误删登录关键词导致答非所问 - 噪声前缀后必须跟标点/空格或字符串结束,不能紧跟中文字符 - 登录插件,哪里可以下载到?不再被清理为插件,哪里可以下载到? 2. 修复EasyOCR静默原生崩溃检测 - 父进程:空stderr+空crash log也计入CUDA崩溃计数,2次后强制CPU - Worker:添加CUDA驱动DLL预检,加载失败时强制CPU模式
This commit is contained in:
@@ -137,6 +137,21 @@ try:
|
||||
os.environ.setdefault("OMP_NUM_THREADS", "1")
|
||||
os.environ.setdefault("MKL_NUM_THREADS", "1")
|
||||
|
||||
# ── CUDA 驱动预检:在 import torch 之前探测 CUDA 驱动是否可用 ──
|
||||
# 防止 CUDA 驱动损坏导致 import torch 时原生崩溃(crash log 为空的静默崩溃)
|
||||
if os.environ.get("EASYOCR_FORCE_CPU") != "1":
|
||||
try:
|
||||
import ctypes
|
||||
ctypes.windll.nvcuda # 尝试加载 CUDA 驱动 DLL
|
||||
sys.stderr.write("[easyocr_worker] CUDA 驱动 DLL 加载成功\n")
|
||||
sys.stderr.flush()
|
||||
except Exception as _cuda_drv_err:
|
||||
os.environ["EASYOCR_FORCE_CPU"] = "1"
|
||||
os.environ["CUDA_VISIBLE_DEVICES"] = ""
|
||||
sys.stderr.write(f"[easyocr_worker] ⚠️ CUDA 驱动加载失败({_cuda_drv_err}),强制 CPU 模式\n")
|
||||
sys.stderr.flush()
|
||||
_write_crash_log(f"{datetime.now()} [easyocr_worker] CUDA 驱动预检失败: {_cuda_drv_err}")
|
||||
|
||||
# ── 预检:物理内存+虚拟内存是否足够加载 CUDA 库 ──
|
||||
_vm = _get_virtual_memory_info()
|
||||
# ⭐ 统一使用 GlobalMemoryStatusEx(与 monitor.py / Task Manager 一致)
|
||||
|
||||
Reference in New Issue
Block a user