File size: 1,144 Bytes
98977eb 19b940c 98977eb 3ea0048 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
import gymnasium as gym
from envhub.core.base_env import EnvHubEnv
from envhub.registry import register_env
# MiniWoB imports
try:
import miniwob
except ImportError:
raise ImportError("Please install MiniWoB: `pip install miniwob`")
def load_env(task: str = "click-button", max_episode_steps: int = 50, **kwargs):
"""
Loader for a MiniWoB browser interaction environment.
Args:
task (str): MiniWoB task name (e.g., "click-button", "book-flight", "choose-date").
max_episode_steps (int): maximum number of steps per episode.
kwargs: additional arguments passed to gym.make()
Returns:
EnvHubEnv: unified environment wrapper.
"""
# compose the MiniWoB env ID (e.g. "miniwob/click-button-v1")
env_id = f"miniwob/{task}-v1"
# Make the environment
env = gym.make(env_id, max_episode_steps=max_episode_steps, **kwargs)
# Wrap it as an EnvHubEnv
return EnvHubEnv(
env=env,
name=f"browser/{task}",
observation_space=env.observation_space,
action_space=env.action_space,
)
register_env("browser/miniwob_click_button", load_env) |