Ersatz Echos is an AI-powered history generator that creates rich, structured timelines for fictional worlds. With customizable parameters and the ability to draw inspiration from user-provided documents, Ersatz Echos crafts unique histories spanning centuries or millennia. The tool outputs its generated histories in a structured JSON format, making it easy to integrate with other world-building applications. Whether you're a game developer, novelist, or simply a creative enthusiast, Ersatz Echos provides a foundation for building immersive, consistent fictional universes.
- AI-driven history generation using advanced language models
- Customizable timeline parameters (start year, end year, number of events, etc..)
- Structured JSON output for easy integration with other tools
- Experimental features for enhanced world-building capabilities
- Ability to extract information from user-provided PDF documents for added context
- Access to an API (OpenAI, OpenRouter, etc.)
- Python 3.11+ installed
-
Clone the repository:
git clone https://github.com/DaemonIB/ersatz-echos.git -
Navigate to the project directory:
cd ersatz-echos -
Install the required dependencies:
pip install -r requirements.txt -
Copy the example configuration files:
cp user_context.example.json user_context.json cp config.example.json config.json -
Edit
config.jsonand replaceYOUR_API_KEY_HEREwith your LLM API key. -
(Optional) If you want to provide additional context for the LLM to base the timeline on:
- Edit
user_context.jsonand replace the sample data with your own data.
- Edit
Run the Python script:
python main.py --output history.json
The generated history will be saved to the file specified with the --output flag, or history.json if not specified.
config.json: Contains settings for the LLM API and other parameters.user_context.json: Allows you to provide additional context for the LLM to base the timeline on. The structure is generic, and any top-level category can be used (e.g.,Locations,Characters,Funny Hair Styles). Individual entities within each category need anameanddescription.
- The default model has been selected based on cost and ability to produce JSON. For OpenAI,
openai/gpt-3.5-turbo-0125is compatible, along with the models specified here. - Other models may work, but their success rate may be lower.
- Document Extraction: Enabled via the
document_extractionflag inconfig.json.
This project is licensed under Apache-2.0.