def infos_to_request(self) -> EnvInfos: request_infos = EnvInfos() request_infos.description = True request_infos.inventory = True request_infos.entities = True request_infos.verbs = True request_infos.extras = ["recipe"] return request_infos
def select_additional_infos(): request_infos = EnvInfos() request_infos.description = True request_infos.inventory = True request_infos.entities, request_infos.verbs = True, True request_infos.max_score = True request_infos.extras = ["recipe"] request_infos.admissible_commands = True return request_infos
def select_additional_infos(self) -> EnvInfos: request_infos = EnvInfos() request_infos.description = True request_infos.inventory = True request_infos.entities = True request_infos.verbs = True request_infos.extras = ["recipe", "walkthrough"] request_infos.admissible_commands = True return request_infos
def select_additional_infos(self) -> EnvInfos: request_infos = EnvInfos() request_infos.description = True request_infos.inventory = True if self.config['general']['hcp'] >= 2: request_infos.entities = True request_infos.verbs = True if self.config['general']['hcp'] >= 4: request_infos.extras = ["recipe"] if self.config['general']['hcp'] >= 5: request_infos.admissible_commands = True # TEST request_infos.entities = True request_infos.verbs = True request_infos.extras = ["recipe", "walkthrough"] request_infos.admissible_commands = True return request_infos
def select_additional_infos(self) -> EnvInfos: """ Returns what additional information should be made available at each game step. Requested information will be included within the `infos` dictionary passed to `CustomAgent.act()`. To request specific information, create a :py:class:`textworld.EnvInfos <textworld.envs.wrappers.filter.EnvInfos>` and set the appropriate attributes to `True`. The possible choices are: * `description`: text description of the current room, i.e. output of the `look` command; * `inventory`: text listing of the player's inventory, i.e. output of the `inventory` command; * `max_score`: maximum reachable score of the game; * `objective`: objective of the game described in text; * `entities`: names of all entities in the game; * `verbs`: verbs understood by the the game; * `command_templates`: templates for commands understood by the the game; * `admissible_commands`: all commands relevant to the current state; In addition to the standard information, game specific information can be requested by appending corresponding strings to the `extras` attribute. For this competition, the possible extras are: * `'recipe'`: description of the cookbook; * `'walkthrough'`: one possible solution to the game (not guaranteed to be optimal); Example: Here is an example of how to request information and retrieve it. >>> from textworld import EnvInfos >>> request_infos = EnvInfos(description=True, inventory=True, extras=["recipe"]) ... >>> env = gym.make(env_id) >>> ob, infos = env.reset() >>> print(infos["description"]) >>> print(infos["inventory"]) >>> print(infos["extra.recipe"]) Notes: The following information *won't* be available at test time: * 'walkthrough', 'facts' """ request_infos = EnvInfos() request_infos.description = True request_infos.inventory = True request_infos.entities = True request_infos.verbs = True request_infos.extras = ["recipe"] request_infos.facts = True request_infos.location = True return request_infos
def get_infos(eval=True, recipe=True, walkthrough=True): request_infos = \ EnvInfos(verbs=True, moves=True, inventory=True, description=True, objective=True, intermediate_reward=True, policy_commands=True, max_score=True, admissible_commands=True, last_action=True, game=True, facts=True, entities=True, won=True, lost=True, location=True) request_infos.verbs = True request_infos.extras = [] if recipe: request_infos.extras += ['recipe'] if walkthrough: request_infos.extras += ['walkthrough'] if eval: request_infos.max_score = True request_infos.admissible_commands = True request_infos.command_templates = True return request_infos
def setup(self) -> EnvInfos: requested_infos = EnvInfos() requested_infos.description = True requested_infos.inventory = True requested_infos.entities = True requested_infos.verbs = True requested_infos.extras = ["recipe", "walkthrough"] requested_infos.admissible_commands = True env_id = textworld.gym.register_games( self.games, requested_infos, max_episode_steps=self.max_nb_steps, name="training") env_id = textworld.gym.make_batch(env_id, batch_size=self.batch_size, parallel=True) return gym.make(env_id)