message / plugins /ocr /main.py
hunian
refactor(plugins): 插件短名并统一 MCP tool 为 {plugin}-{tool}
cc826a1
Raw
History Blame Contribute Delete
1.32 kB
"""OCR 插件入口。"""
import logging
from app.utils.ocr_engine import get_ocr_model_info, get_ocr_engine
logger = logging.getLogger(__name__)
class OCRPlugin:
def __init__(self):
self.name = "ocr"
self.version = "2.0.0"
self.enabled = False
def on_enable(self):
self.enabled = True
logger.info(f"OCR 插件 {self.version} 已启用")
def on_disable(self):
self.enabled = False
logger.info(f"OCR 插件 {self.version} 已禁用")
def get_status(self) -> dict:
"""三态状态:enabled + engine_ready + model_id,让前端区分「未启用/未加载/就绪」。"""
engine_ready = False
model_id = None
try:
# 触发一次引擎实例化以判断"是否已加载"——失败不算禁用,仅未就绪
get_ocr_engine()
engine_ready = True
model_id = get_ocr_model_info().get("det_model")
except Exception:
# 依赖缺失或首次加载失败,由前端提示用户
engine_ready = False
return {
"name": self.name,
"version": self.version,
"enabled": self.enabled,
"engine_ready": engine_ready,
"model_id": model_id,
}
plugin = OCRPlugin()