Esempio n. 1
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
Esempio n. 2
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:
        """
        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'
        """
        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
Esempio n. 4
0
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