Files
agentic-mobile-control/tools/describe_screen.py
T

28 lines
826 B
Python

from __future__ import annotations
from core.device_manager import DeviceManager
from core.models import Scene
from tools._device import get_driver
from vision.ocr import PaddleOCREngine, run_ocr
from vision.scene_builder import build_scene, infer_png_size
from vision.ui_parser import parse_ui_tree
def describe_screen(
device_id: str | None = None,
*,
manager: DeviceManager | None = None,
ocr_engine: PaddleOCREngine | None = None,
) -> Scene:
driver = get_driver(device_id, manager=manager)
screenshot = driver.screenshot()
raw_tree = driver.tree()
width, height = infer_png_size(screenshot)
return build_scene(
screen_width=width,
screen_height=height,
ui_elements=parse_ui_tree(raw_tree),
ocr_elements=run_ocr(screenshot, engine=ocr_engine),
)