Files
task-69b1a07c-tekstovaya-ig…/README.md
T

101 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Мини‑игра «Выбери свою историю»
## 📖 Описание
Это интерактивная текстовая игра, в которой **LLM** генерирует сюжет, а пользователь в реальном времени делает выбор.
Граф построен на **LangGraph** и использует паттерн *humanintheloop*: после генерации сцены LLM «приостанавливается», пользователь выбирает вариант, а затем LLM дописывает короткую концовку.
## 🚀 Установка
```bash
# Клонируйте репозиторий
git clone https://github.com/yourname/interactive-story.git
cd interactive-story
# Создайте виртуальное окружение (необязательно, но рекомендуется)
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Установите зависимости
pip install langgraph==0.0.38 \
langchain==1.2.10 \
langchain-openai==1.1.9 \
questionary
```
> **Важно**:
> - Для работы с OpenAI нужен ключ `OPENAI_API_KEY`.
> - Если вы хотите использовать другую модель, настройте `ChatOpenAI` в `solution.py`.
## 📂 Структура проекта
```
interactive-story/
├── solution.py # Основной скрипт с логикой графа
└── README.md
```
## 🏃‍♂️ Запуск
```bash
python solution.py
```
### Что происходит при запуске
1. **Инициализация** – создаётся граф, LLM и чекпоинтер.
2. **Генерация темы** – LLM создаёт тему/завязку.
3. **Сцена** – LLM генерирует описание текущей сцены.
4. **Опции** – LLM выдаёт 3‑4 варианта действий.
5. **Пауза** – пользователь выбирает вариант через консоль.
6. **Концовка** – LLM дописывает короткую концовку, учитывая выбор.
7. **Вывод** – финальный текст выводится в консоль.
## 📌 Пример использования
```text
$ python solution.py
LLM: Выберите тему истории:
1) Приключение в космосе
2) Тайна древнего замка
3) Путешествие во времени
Выберите вариант (1‑3): 2
LLM: Вы выбрали «Тайна древнего замка».
Сцена: Вы стоите перед массивным замком, его стены покрыты мхом...
LLM: Что вы будете делать?
1) Подойти к воротам
2) Осмотреть окрестности
3) Выйти обратно
Выберите вариант (1‑3): 1
LLM: Вы подошли к воротам. Они открылись, и внутри...
Концовка: Вы нашли сокровище и спасли королевство. Поздравляем!
```
## 🔧 Как изменить модель
В `solution.py` найдите строку:
```python
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.7)
```
Замените `model` на нужный вам, например `"gpt-3.5-turbo"` или `"gpt-4o"`.
Если используете другую поставку, настройте `ChatOpenAI` согласно документации LangChain.
## 📚 Что дальше
- Добавьте более сложные состояния (например, инвентарь, здоровье героя).
- Переведите игру в веб‑интерфейс с помощью Streamlit.
- Расширьте количество вариантов и уровней сложности.
## 🤝 Вклад
Пожалуйста, открывайте Issues и Pull Requests. Любые улучшения приветствуются!
---
**Автор:** *Ваше имя*
**Дата:** *20260529*