Ell Adventure is an innovative text-based adventure game that leverages the power of Large Language Models (LLMs) and the ell framework to create dynamic, personalized gaming experiences.
- Dynamic narrative adaptation based on player choices
- Customizable game worlds using player-provided novels or custom descriptions
- Persistent game state across sessions
- Modular design for easy expansion and modification
- ell Framework: Core system for defining and managing the planner, tools, and agents
- ChromaDB: Persistent data storage and retrieval
- Textual: Text-based user interface
- Python 3.12+: Programming language
- Ensure you have Python 3.12+ installed on your system.
- Clone this repository:
git clone https://github.com/Nitewriter/ell-adventure.git cd ell-adventure
- Install Poetry if you haven't already:
pip install poetry
- Install the project dependencies:
poetry install
To start the adventure:
poetry run adventure
We use a Makefile to simplify common development tasks. Here are some useful commands:
To set up the virtual environment and install dependencies:
make
To run the linter (ruff):
make lint
To run the test suite:
make test
To format the code and sort the pyproject.toml file:
make format
To run both linting and formatting checks:
make check
To clean up generated files and caches:
make clean
To update project dependencies:
make update-deps
src/
: Source code for the gametools/
: Modular tools for game mechanicsagents/
: Dynamic agent definitionsui/
: Textual UI components
tests/
: Test suitedocs/
: Additional documentationsystem-design.md
: Detailed system design document
Contributions are welcome! Please read our CONTRIBUTING.md for details on how to submit pull requests, report issues, and suggest improvements.
This project is licensed under the MIT License - see the LICENSE file for details.
- The ell team for their powerful LMP framework
- The ChromaDB team for their efficient vector database
- The Textual team for their excellent TUI library