Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
 def select_additional_infos(self) -> EnvInfos:
     request_infos = EnvInfos()
     request_infos.has_won = True
     request_infos.has_lost = True
     request_infos.description = True
     request_infos.inventory = True
     request_infos.command_templates = True
     request_infos.entities = False
     request_infos.admissible_commands = False
     return request_infos
Пример #4
0
    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
Пример #5
0
    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
Пример #6
0
    def request_infos() -> Optional[EnvInfos]:
        """Request the infos the agent expects from the environment

        Returns:
            request_infos: EnvInfos"""
        request_infos = EnvInfos()
        request_infos.description = True
        request_infos.inventory = True
        request_infos.entities = True
        request_infos.verbs = True
        request_infos.admissible_commands = True
        request_infos.command_templates = True
        request_infos.max_score = 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 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)