Delete directory 'solutions/69b1a07c67bbf488a1177da4_текстовая_игра_на_основе_llm___interrupt'

This commit is contained in:
2026-05-27 11:01:55 +00:00
parent 03ec9595ce
commit 07f45a8135
@@ -1,138 +0,0 @@
# Interactive Story Game with LLM and Interrupts
A lightweight “chooseyourownadventure” text game that uses a large language model (LLM) to generate story snippets, pauses for user input, then continues the narrative based on the chosen option. The project demonstrates how to build a LangGraph pipeline with humanintheloop interruptions and checkpoints.
---
## 📖 Overview
1. **LLM generates an opening scene** a short paragraph describing the setting and presenting several possible actions.
2. **Interrupt** the graph pauses, displaying the options in the console via `questionary`.
3. **User selects an option** the choice is stored in the graph state.
4. **LLM writes a brief ending** that follows the chosen path.
The result is a chain of prompts:
`LLM → pause & user input → LLM (ending)`.
---
## 🚀 Getting Started
### Prerequisites
- Python 3.10+
- An OpenAI API key (or any other model supported by LangChain)
> **Tip:** If you prefer not to use OpenAI, replace the `OpenAI` wrapper with another LangChain LLM provider in `main.py`.
### Installation
```bash
# Clone the repo
git clone https://github.com/your-username/interactive-story-game.git
cd interactive-story-game
# Create a virtual environment (optional but recommended)
python -m venv .venv
source .venv/bin/activate # On Windows: .\.venv\Scripts\activate
# Install dependencies
pip install langgraph==0.1.2 \
langchain==1.2.10 \
langchain-openai==1.1.9 \
questionary
```
> **Environment variable**
> Set your OpenAI key before running the game:
> ```bash
> export OPENAI_API_KEY="sk-..."
> # Windows PowerShell
> $env:OPENAI_API_KEY = "sk-..."
> ```
---
## 📁 Project Structure
| File | Purpose |
|------|---------|
| `main.py` | Entry point builds the graph, runs it, and handles user interaction. |
| `graph.py` | Defines the LangGraph nodes, state schema, and interrupt logic. |
| `utils.py` | Helper functions (e.g., prompt templates). |
| `requirements.txt` | List of dependencies (for reproducibility). |
---
## 🛠️ Running the Game
```bash
python main.py
```
You will see something like:
```
=== Interactive Story ===
Topic: A mysterious forest
Scene:
You find yourself at the edge of a dark, misty forest. The trees loom overhead, their branches tangled like fingers.
Options:
1) Step into the forest.
2) Walk along the clearing's edge.
3) Call out for help.
Enter your choice (13):
```
After you type `1`, the game will ask the LLM to finish the story based on that choice and print a short ending.
---
## 🔧 Customization
### Changing the Prompt
Edit `utils.py`:
```python
def generate_scene_prompt(topic: str) -> str:
return f"Topic: {topic}\nWrite a short opening scene with 3 possible actions."
```
### Adding More Nodes
You can split the graph into separate nodes for “generate scene” and “write ending”, or add additional decision points.
---
## 🎮 Example Session
```text
$ python main.py
=== Interactive Story ===
Topic: A forgotten laboratory
Scene:
The lab is dimly lit, with humming machines and a faint smell of ozone. In the center lies an ancient console flickering with static.
Options:
1) Approach the console.
2) Inspect the surrounding equipment.
3) Leave the lab immediately.
Enter your choice (13): 2
Ending:
You carefully examine the equipment, discovering a hidden panel that opens to reveal a secret passage. The adventure continues...
```
---
## 📜 License
This project is released under the MIT License feel free to adapt and expand it for your own experiments with LLMs and humanintheloop systems.
---