Source code for sail_on_client.agent.visual_agent
"""Abstract interface for an agent that works for visual agent."""
from smqtk_core import Configurable, Pluggable
from typing import Dict, Tuple, Any, TypeVar
from abc import abstractmethod
VisualAgentType = TypeVar("VisualAgentType", bound="VisualAgent")
[docs]class VisualAgent(Configurable, Pluggable):
"""Abstract class for Visual Agent."""
[docs] @classmethod
def is_usable(cls) -> bool:
"""Determine if this class with be detected by SMQTK's plugin."""
return True
[docs] def get_config(self) -> Dict:
"""Return a default configuration dictionary."""
return {}
[docs] @abstractmethod
def execute(self, toolset: Dict, step_descriptor: str) -> Any:
"""
Execute method used by the protocol to run different steps associated with the algorithm.
Args:
toolset (dict): Dictionary containing parameters for different steps
step_descriptor (str): Name of the step
"""
pass
[docs] @abstractmethod
def world_detection(self, wd_toolset: Dict) -> str:
"""
Abstract method for detecting that the world has changed.
Args:
wd_toolset: Parameters for feature extraction
Returns:
Path to results for detecting that the world has changed.
"""
pass