diff --git a/README.md b/README.md index c2c571c..7e918ac 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,92 @@ -# task-69b1a07c-tekstovaya-igra-na-osnove +# Text Adventure Game – LLM + Interrupt -Решения домашних заданий \ No newline at end of file +A lightweight text‑based adventure game that uses a large language model (LLM) to generate dynamic responses to player commands. +The project demonstrates how to integrate **LangChain** with an OpenAI chat model and use **Rich** for pretty console output. + +> ⚠️ **Prerequisites** – The code is written for Python 3.10+. +> It requires an OpenAI API key set in the environment variable `OPENAI_API_KEY`. + +--- + +## 📦 Installation + +```bash +# 1️⃣ Clone the repository (or copy the single file) +git clone https://github.com/yourname/text-adventure-llm.git +cd text-adventure-llm + +# 2️⃣ Create a virtual environment (recommended) +python -m venv .venv +source .venv/bin/activate # On Windows: .\.venv\Scripts\activate + +# 3️⃣ Install dependencies +pip install --upgrade pip +pip install langchain==0.1.0 # or the latest compatible version +pip install rich +``` + +> **Tip** – If you prefer a single‑file solution, just copy `solution.py` into your project directory and skip step 2. + +--- + +## 🚀 Running the Game + +```bash +# Make sure your OpenAI key is exported: +export OPENAI_API_KEY="sk-..." + +# Run the script +python solution.py +``` + +The game will start in an interactive console. +Type any command (e.g., `look around`, `go north`, `take sword`) and press **Enter**. +The LLM will generate a narrative response, which is printed with Rich formatting. + +--- + +## 📁 File Overview + +| File | Purpose | +|------|---------| +| `solution.py` | Main entry point – defines `TextAdventureGame` and runs the REPL loop. | + +If you want to experiment with different models or temperatures: + +```python +game = TextAdventureGame(model_name="gpt-4", temperature=0.5) +``` + +--- + +## 🎮 Example Session + +``` +$ python solution.py +Welcome to the LLM Adventure! Type your commands below. + +> look around +You find yourself in a dimly lit cavern, the walls dripping with moisture. A faint glow emanates from a crystal on the far wall. + +> take crystal +The crystal hums as you grasp it; its light warms your hand and reveals hidden runes etched into the stone floor. + +> go north +A narrow passage leads deeper underground. The air grows colder, and distant echoes hint at unseen dangers. + +... +``` + +--- + +## 🛠️ Extending + +- **Custom prompts** – Modify `TextAdventureGame` to prepend a system prompt or context. +- **Interrupt handling** – Add keyboard interrupt logic (`Ctrl+C`) to pause or exit gracefully. +- **State persistence** – Store the game state in a file or database for long‑term sessions. + +--- + +## 📄 License + +MIT © 2026. Feel free to fork, modify, and share! \ No newline at end of file