app / models.py
Jibrann's picture
Upload folder using huggingface_hub
c17891d verified
from openenv.core.env_server.types import Action, Observation, State
from pydantic import Field
from typing import List, Dict, Tuple
class AppAction(Action):
"""Action for the App environment"""
placement: Dict[str, Tuple[int, int, int, bool]] = Field(
default_factory=dict, description="Placement of the object in a 3D grid"
)
isSegmentation: bool = Field(
default=True, description="Whether the model is segmenting the objects"
)
findObjects: Dict[str, Tuple[int, int, int, bool]] = Field(
default_factory=dict, description="Dictionary of objects"
)
adjust: Tuple[str, str, int] = Field(
default=("", "", 0),
description="Adjustment action for moving or rotating objects. Format: (object_name, direction, amount)",
)
class AppObservation(Observation):
"""Observation from the App environment"""
currentGrid: List[List[List[int]]] = Field(
default_factory=list,
description="Current placement of the objects in a 3D grid",
)
positions: Dict[str, Tuple[int, int, int, bool]] = Field(
default_factory=dict,
description="Dictionary of objects with their positions in the environment",
)
objectsLeft: List[str] = Field(
default_factory=list,
description="List of unorganised objects left in the environment",
)
objectsFound: List[str] = Field(
default_factory=list,
description="List of objects found in the environment",
)
reward: float = Field(
default=0.0, description="Reward received after taking the action"
)
isDone: bool = Field(default=False, description="Whether the episode has ended")
rewardFeedback: list[str] = Field(
default_factory=list,
description="List of feedback strings describing the reward received after taking the action",
)
rewardList: list[float] = Field(
default_factory=list,
description="List of reward values received after taking the action",
)
numberPlaced: int = Field(
default=0,
description="Number of objects successfully placed in the environment",
)
ObjectsPlaced: Dict[str, Tuple[int, int, int, bool]] = Field(
default_factory=dict,
description="Objects that have been successfully placed in the environment",
)
rewardListSegment: list[float] = Field(
default_factory=list,
description="List of reward values received after taking the action",
)
rewardFeedbackSegment: list[str] = Field(
default_factory=list,
description="List of feedback strings describing the reward received after taking the action",
)
rewardListPlace: list[float] = Field(
default_factory=list,
description="List of feedback strings describing the reward received after taking the action",
)
rewardFeedbackPlace: list[str] = Field(
default_factory=list,
description="List of feedback strings describing the reward received after taking the action",
)
rewardListAdjust: list[float] = Field(
default_factory=list,
description="List of feedback strings describing the reward received after taking the action",
)
rewardFeedbackAdjust: list[str] = Field(
default_factory=list,
description="List of feedback strings describing the reward received after taking the action",
)
class AppState(State):
"""State for the App environment"""
currentGrid: List[List[List[int]]] = Field(
default_factory=list,
description="Initial state of the environment with unorganised objects",
)
weightedGrid: List[List[List[float]]] = Field(
default_factory=list,
description="Weighted grid used when scoring placements",
)
objectsLeft: List[str] = Field(
default_factory=list,
description="List of unorganised objects left in the environment",
)
objectsFound: List[str] = Field(
default_factory=list,
description="List of objects found in the environment",
)
reward: float = Field(
default=0.0, description="Reward received after taking the action"
)
isDone: bool = Field(default=False, description="Whether the episode has ended")
ObjectsPresent: Dict[str, Tuple[int, int, int, bool]] = Field(
default_factory=dict,
description="Placed objects and their current positions in the environment",
)
ObjectsPlaced: Dict[str, Tuple[int, int, int, bool]] = Field(
default_factory=dict,
description="Objects that have been successfully placed in the environment",
)
rewardFeedback: list[str] = Field(
default_factory=list,
description="List of feedback strings describing the reward received after taking the action",
)
rewardList: list[float] = Field(
default_factory=list,
description="List of reward values received after taking the action",
)
numberPlaced: int = Field(
default=0,
description="Number of objects successfully placed in the environment",
)
rewardListSegment: list[float] = Field(
default_factory=list,
description="List of reward values received after taking the action",
)
rewardFeedbackSegment: list[str] = Field(
default_factory=list,
description="List of feedback strings describing the reward received after taking the action",
)
rewardListPlace: list[float] = Field(
default_factory=list,
description="List of feedback strings describing the reward received after taking the action",
)
rewardFeedbackPlace: list[str] = Field(
default_factory=list,
description="List of feedback strings describing the reward received after taking the action",
)
rewardListAdjust: list[float] = Field(
default_factory=list,
description="List of feedback strings describing the reward received after taking the action",
)
rewardFeedbackAdjust: list[str] = Field(
default_factory=list,
description="List of feedback strings describing the reward received after taking the action",
)