# Interactive Text Adventure with LLM & Interrupts **Solution:** `solution.py` --- ## 📖 Описание `solution.py` реализует мини‑игру «Выбери свою историю» на основе больших языковых моделей (LLM). 1. **Генерация начала** – LLM создаёт завязку и несколько вариантов действий. 2. **Пауза (interrupt)** – граф LangGraph ставит паузу, ожидая выбора игрока. 3. **Выбор пользователя** – через консольный интерфейс `questionary` пользователь выбирает вариант. 4. **Продолжение истории** – после выбора LLM дописывает дальнейший сюжет. Граф построен с помощью `langgraph`, а состояние сохраняется в памяти (`InMemorySaver`). Для вывода текста используется `rich`. --- ## ⚙️ Предварительные требования | Пакет | Версия | |-------|--------| | Python | 3.10+ | | langchain | ≥0.2.0 | | langgraph | ≥0.1.0 | | questionary | ≥1.10.0 | | rich | ≥13.0.0 | | openai (или любая LLM‑провайдер) | – | > **Важно**: > - Для работы с OpenAI понадобится переменная окружения `OPENAI_API_KEY`. > - Если используете другую модель, замените импорт `ChatOpenAI` на соответствующий провайдер. --- ## 🚀 Установка ```bash # 1. Клонируйте репозиторий (или скопируйте файл solution.py) git clone https://github.com/yourusername/interactive-adventure.git cd interactive-adventure # 2. Создайте виртуальное окружение (рекомендуется) python -m venv .venv source .venv/bin/activate # Windows: .\.venv\Scripts\activate # 3. Установите зависимости pip install -r requirements.txt ``` `requirements.txt`: ```text langchain>=0.2.0 langgraph>=0.1.0 questionary>=1.10.0 rich>=13.0.0 openai>=1.0.0 # если используете OpenAI ``` --- ## ▶️ Запуск ```bash # Установите переменную окружения с ключом API (пример для Linux/macOS) export OPENAI_API_KEY="sk-..." # Для Windows: set OPENAI_API_KEY=sk-... python solution.py ``` После запуска вы увидите интерактивный диалог в терминале. Выбирайте варианты, и история будет развиваться. --- ## 📋 Пример работы ```text > Начало истории: Вы просыпаетесь в таинственном лесу. Вокруг слышен шорох ветра. Варианты действий: 1) Исследовать ближайший домик 2) Пойти к озеру 3) Остановиться и послушать тишину Выберите номер: 2 > Вы выбрали: "Пойти к озеру" LLM продолжает историю... ``` --- ## 📚 Что дальше? - Добавьте более сложные ветки и условия. - Сохраните состояние в файл, чтобы игрок мог возобновить игру позже (`langgraph.checkpoint.file`). - Интегрируйте голосовой ввод/вывод для более «живого» опыта. --- ## 📄 Лицензия MIT © 2026 ---