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 Usage

Installation

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_name="GPT-4o-Mini"
)

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_name="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
FifteenPuzzle
GuessTheNumber
GuessWho
Hangman
LogicPuzzle
MathProof
Minesweeper
Sudoku
TowerOfHanoi
TwentyQuestions
WordLadder
WordSearch

Two-Player Games

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

Multi-Player Games

Game Name Offline Play Players Online Play Documentation
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.5.tar.gz (165.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.5-py3-none-any.whl (224.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: textarena-0.3.5.tar.gz
  • Upload date:
  • Size: 165.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.5.tar.gz
Algorithm Hash digest
SHA256 a442d3feb64b0ef98c6e27bc10872e8d48c83666237524acd954e53cddacd211
MD5 9250da63a8f39706ebf927b8fd9d60e6
BLAKE2b-256 cd842baed61bfd8a6e3f8e290c5ca5938b196be3b46148cf1d0c1a3e60b82b96

See more details on using hashes here.

File details

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

File metadata

  • Download URL: TextArena-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 224.2 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 22a5bceff42a83f12057a5f11b33cd6cb54ff051ed79dd983c5ec4bbb4dffd88
MD5 853da567dc1b760175bfef2fb6f0ab2c
BLAKE2b-256 4fd0cd21fb45aa4ae5dbe6364f59b7cfa9318310f6e4f4a8e645744ed73e2590

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