33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
from core.models import Scene
|
|
from device.manager import DeviceManager
|
|
from perception.ocr import PaddleOCREngine
|
|
from perception.provider import PerceptionProvider
|
|
from semantic.config import SemanticConfig
|
|
from semantic.enricher import SemanticLLMClient, enrich_scene
|
|
from semantic.models import SemanticScene
|
|
from tools.describe_screen import describe_screen
|
|
|
|
|
|
def describe_screen_semantic(
|
|
device_id: str | None = None,
|
|
*,
|
|
manager: DeviceManager | None = None,
|
|
ocr_engine: PaddleOCREngine | None = None,
|
|
perception_provider: PerceptionProvider | None = None,
|
|
client: SemanticLLMClient | None = None,
|
|
semantic_config: SemanticConfig | None = None,
|
|
) -> dict[str, Scene | SemanticScene | None]:
|
|
scene = describe_screen(
|
|
device_id,
|
|
manager=manager,
|
|
ocr_engine=ocr_engine,
|
|
perception_provider=perception_provider,
|
|
)
|
|
semantic_scene = enrich_scene(scene, client=client, config=semantic_config)
|
|
return {
|
|
"scene": scene,
|
|
"semantic_scene": semantic_scene,
|
|
}
|