From fdffcb948c32561a8fec0187872819bf90b639db Mon Sep 17 00:00:00 2001 From: HuanLinOTO Date: Wed, 31 Dec 2025 23:47:07 +0800 Subject: [PATCH] =?UTF-8?q?refactor(vision):=20=E4=BC=98=E5=8C=96=20OCR=20?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=A3=80=E6=9F=A5=E6=8F=90=E7=A4=BA=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=B9=B6=E8=B0=83=E6=95=B4=E6=88=AA=E5=9B=BE=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- maa_mcp/vision.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/maa_mcp/vision.py b/maa_mcp/vision.py index 6d6175a..8e85831 100644 --- a/maa_mcp/vision.py +++ b/maa_mcp/vision.py @@ -13,6 +13,8 @@ from maa_mcp.download import check_ocr_files_exist from maa_mcp.paths import get_screenshots_dir +from fastmcp.utilities.types import Image + @mcp.tool( name="screencap_and_ocr", @@ -35,7 +37,9 @@ def screencap_and_ocr(controller_id: str) -> Optional[Union[list, str]]: # 先检查 OCR 资源是否存在,不存在则返回提示信息让 AI 主动调用下载 if not check_ocr_files_exist(): - return "OCR 模型文件不存在,请先调用 check_and_download_ocr() 下载 OCR 资源后重试" + return ( + "OCR 模型文件不存在,请先调用 check_and_download_ocr() 下载 OCR 资源后重试" + ) controller: Controller | None = object_registry.get(controller_id) tasker = get_or_create_tasker(controller_id) @@ -58,11 +62,11 @@ def screencap_and_ocr(controller_id: str) -> Optional[Union[list, str]]: 参数: - controller_id: 控制器 ID,由 connect_adb_device() 或 connect_window() 返回 返回值: - - 成功:返回截图文件的绝对路径,可通过 read_file 工具读取图片内容 + - 成功:返回截图 - 失败:返回 None """, ) -def screencap_only(controller_id: str) -> Optional[str]: +def screencap_only(controller_id: str) -> Optional[Image]: controller = object_registry.get(controller_id) if not controller: return None @@ -79,4 +83,4 @@ def screencap_only(controller_id: str) -> Optional[str]: return None # 记录当前会话保存的截图文件路径,用于退出时清理 _saved_screenshots.append(filepath) - return str(filepath.absolute()) + return Image(filepath.absolute())