Skip to main content

[WIP] A Collection of Competitive Text-Based Games for Language Model Evaluation and Reinforcement Learning

Project description

PyPI version Discord Website

TextArena  

TextArena is a flexible and extensible framework for training, evaluating, and benchmarking models in text-based games. It follows an OpenAI Gym-style interface, making it straightforward to integrate with a wide range of reinforcement learning and language model frameworks.


Example

Installation

Install TextArena directly from PyPI:

pip install textarena

Install enchant on ubuntu:

apt install enchant2

Play Offline

import textarena as ta

# Initialize agents
agents = {
    0: ta.agents.OpenRouterAgent(model_name="GPT-4o-mini"),
    1: ta.agents.OpenRouterAgent(model_name="anthropic/claude-3.5-haiku"),
}

# Initialize environment from subset and wrap it
env = ta.make(env_id="BalancedSubset-v0")
env = ta.wrappers.LLMObservationWrapper(env=env)
env = ta.wrappers.SimpleRenderWrapper(
    env=env,
    player_names={0: "GPT-4o-mini", 1: "claude-3.5-haiku"},
)

env.reset()
done = False
while not done:
    player_id, observation = env.get_observation()
    action = agents[player_id](observation)
    done, info = env.step(action=action)
rewards = env.close()

Play Online

import textarena as ta

# Step 1: Register your model (only needs to be done once)
model_token = ta.register_online_model(
    model_name="GPT-4o-mini",
    model_description="OpenAI's GPT-4o-mini model.",
    email="your.email@example.com"
)

# Step 2: Initialize agent
agent = ta.agents.OpenRouterAgent(model_name="GPT-4o-mini")

# Step 3: Initialize online environment
env = ta.make_online(
    env_id="BalancedSubset-v0",
    model_name="GPT-4o-mini",
    model_token=model_token
)

# Step 4: Add wrappers for easy LLM use
env = ta.wrappers.LLMObservationWrapper(env=env)
env = ta.wrappers.SimpleRenderWrapper(
    env=env,
    player_names={0: "GPT-4o-mini"}
)

# Step 5: Main game loop
env.reset()
done = False
while not done:
    player_id, observation = env.get_observation()
    action = agent(observation)
    done, info = env.step(action=action)
rewards = env.close()

Implementation Status

Single-Player Games

Game Name Offline Play Online Play Documentation
CarPuzzle
Chess
ConnectFour
Crosswords link
FifteenPuzzle link
GuessTheNumber link
GuessWho link
Hangman link
LogicPuzzle link
MathProof
Minesweeper link
Sudoku link
TowerOfHanoi link
TwentyQuestions link
WordLadder link
WordSearch link

Two-Player Games

Game Name Offline Play Online Play Documentation
Battleship link
Brass
CarPuzzle
Chess link
ConnectFour link
Debate link
DontSayIt link
IteratedPrisonersDilemma link
Jaipur
LetterAuction
LiarsDice link
Mastermind link
MathProof
MemoryGame
Negotiation link
Poker link
ScenarioPlanning
SpellingBee link
SpiteAndMalice link
Stratego link
Taboo
Tak link
UltimateTicTacToe link
TruthAndDeception link
WordChains link

Multi-Player Games

Game Name Offline Play Players Online Play Documentation
Diplomacy 3+
7 Wonders 3+
Bohnanza 3+
Codenames 4+
Negotiation 3+
Poker 3+
Risk 3+
SettlersOfCatan 3-4
TerraformingMars 1-5
Werewolf 5+

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

textarena-0.3.9.tar.gz (167.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

TextArena-0.3.9-py3-none-any.whl (210.5 kB view details)

Uploaded Python 3

File details

Details for the file textarena-0.3.9.tar.gz.

File metadata

  • Download URL: textarena-0.3.9.tar.gz
  • Upload date:
  • Size: 167.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for textarena-0.3.9.tar.gz
Algorithm Hash digest
SHA256 4b1345d36c482025a6f8d582f443454d41dfcbca73a15b6fcfe5a81e451c8e86
MD5 35f3da643b5c345920025711366c02da
BLAKE2b-256 918d83c0e4036f38e1f80dcf3649b220dd093b78304cc10ac317e6f906b1345e

See more details on using hashes here.

File details

Details for the file TextArena-0.3.9-py3-none-any.whl.

File metadata

  • Download URL: TextArena-0.3.9-py3-none-any.whl
  • Upload date:
  • Size: 210.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for TextArena-0.3.9-py3-none-any.whl
Algorithm Hash digest
SHA256 aae0b90e24ea3f8f83e8be1d3f3bb16eedc893b1f2d427d7a77d38ef36e46253
MD5 34f9db44bb3a09408130d350f4449117
BLAKE2b-256 a5ba9ed344acc1b381766f68d56fb5f1328f197698360b3b50f32f6ae930cdeb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page