textworld¶
Core¶
-
exception
textworld.core.EnvInfoMissingError(requester, info)[source]¶ Bases:
NameErrorThrown whenever some environment information EnvInfos.
-
exception
textworld.core.GameNotRunningError[source]¶ Bases:
RuntimeErrorError when game is not running (either has terminiated or crashed).
-
class
textworld.core.Agent[source]¶ Bases:
objectInterface for any agent that want to play a text-based game.
-
act(game_state, reward, done)[source]¶ Acts upon the current game state.
- Parameters
game_state (
GameState) – Current game state.reward (
float) – Accumulated reward up until now.done (
bool) – Whether the game is finished.
- Return type
str- Returns
Text command to be performed in this current state.
-
finish(game_state, reward, done)[source]¶ Let the agent know the game has finished.
- Parameters
game_state (
GameState) – Game state at the moment the game finished.reward (
float) – Accumulated reward up until now.done (
bool) – Whether the game has finished normally or not. If False, it means the agent’s used up all of its actions.
- Return type
None
-
reset(env)[source]¶ Let the agent set some environment’s flags.
- Parameters
env (
Environment) – TextWorld environment.- Return type
None
-
property
wrappers¶
-
-
class
textworld.core.EnvInfos(**kwargs)[source]¶ Bases:
objectCustomizing what information will be returned by an environment.
Information can be requested by setting one or more attributes to True. The attribute
extrasshould be a list of strings corresponding to keys in the metadata dictionary of TextWorld generated games.-
admissible_commands¶ All commands relevant to the current state. This information changes from one step to another.
- Type
bool
-
property
basics¶ Information requested excluding the extras.
- Return type
Iterable[str]
-
command_templates¶ Templates for commands understood by the the game. This information doesn’t change from one step to another.
- Type
bool
-
description¶ Text description of the current room, i.e. output of the
lookcommand. This information changes from one step to another.- Type
bool
-
entities¶ Names of all entities in the game. This information doesn’t change from one step to another.
- Type
bool
-
extras¶ Names of extra information which are game specific.
- Type
List[str]
-
facts¶ All the facts that are currently true about the world. This information changes from one step to another.
- Type
bool
-
feedback¶ Text observation produced by the game in response to previous command. This information changes from one step to another.
- Type
bool
-
game¶ Current game in its serialized form. Use with
textworld.Game.deserialize.- Type
bool
-
intermediate_reward¶ Reward (proxy) indicating if the player is making progress. This information changes from one step to another.
- Type
bool
-
inventory¶ Text listing of the player’s inventory, i.e. output of the
inventorycommand. This information changes from one step to another.- Type
bool
-
last_action¶ The last action performed where
Nonemeans it was not a valid action. This information changes from one step to another.- Type
bool
-
last_command¶ The last command performed where
Nonemeans it was not a valid command. This information changes from one step to another.- Type
bool
-
location¶ Name of the player’s current location. This information changes from one step to another.
- Type
bool
-
lost¶ Whether the player lost the game. This information changes from one step to another.
- Type
bool
-
max_score¶ Maximum reachable score of the game. This information doesn’t change from one step to another.
- Type
bool
-
moves¶ Number of moves done so far in the game. This information changes from one step to another.
- Type
bool
-
objective¶ Objective of the game described in text. This information doesn’t change from one step to another.
- Type
bool
-
policy_commands¶ Sequence of commands leading to a winning state. This information changes from one step to another.
- Type
bool
-
score¶ Current score of the game. This information changes from one step to another.
- Type
bool
-
verbs¶ Verbs understood by the the game. This information doesn’t change from one step to another.
- Type
bool
-
won¶ Whether the player won the game. This information changes from one step to another.
- Type
bool
-
-
class
textworld.core.Environment(infos=None)[source]¶ Bases:
objectClass allowing to interact with the game’s interpreter.
The role of an
Environmentis to handle the communication between user code and the backend interpreter that manages the text-based game. The overallEnvironmentstructure is highly inspired by OpenAI’s gym.Example
Here’s a minimal example of how to interact with an
Environment>>> import textworld >>> options = textworld.GameOptions() >>> options.seeds = 1234 >>> options.nb_objects = 5 >>> options.quest_length = 2 >>> game_file, _ = textworld.make(options, path='./') # Generate a random game. >>> env = textworld.start(game_file) # Load the game. >>> game_state = env.reset() # Start a new game. >>> env.render() I hope you're ready to go into rooms and interact with objects, because you've just entered TextWorld! Here is how to play! First thing I need you to do is to ensure that the type G chest is open. And then, pick up the keycard from the type G chest inside the attic. Got that? Good! -= Attic =- You arrive in an attic. A normal kind of place. You begin to take stock of what's in the room. You make out a type G chest. You can see a TextWorld style locker. The TextWorld style locker contains a frisbee and a sock. There is a TextWorld style key on the floor. >>> command = "take key" # Command to send to the game. >>> game_state, reward, done = env.step(command) >>> env.render() (the TextWorld style key) You pick up the TextWorld style key from the ground.
- Parameters
infos (
Optional[EnvInfos]) – Information to be included in the game state. By default, only the game’s narrative is included.
-
load(path)[source]¶ Loads a new text-based game.
- Parameters
path (
str) – Path to the game file to load.- Return type
None
-
render(mode='human')[source]¶ Renders the current state of the game.
- Parameters
mode (
str) – The mode to use for rendering.- Return type
Optional[str]
-
step(command)[source]¶ Performs a given command.
- Parameters
command (
str) – Text command to send to the interpreter.- Return type
Tuple[GameState,float,bool]- Returns
A tuple containing the new game state, a reward for performing that command and reaching this new state, and whether the game is finished or not.
-
property
display_command_during_render¶ Enables/disables displaying the command when rendering.
- Return type
bool
-
class
textworld.core.Wrapper(env=None)[source]¶ Bases:
objectSpecial environment that wraps others to provide new functionalities.
Special environment that wraps other
Environmentobjects to provide new functionalities (e.g. transcript recording, viewer, etc).- Parameters
env (
Optional[Environment]) – environment to wrap.
-
property
display_command_during_render¶ - Return type
bool
-
property
unwrapped¶