main
Мини‑игра «Выбери свою историю»
📖 Описание
Это интерактивная текстовая игра, в которой LLM генерирует сюжет, а пользователь в реальном времени делает выбор.
Граф построен на LangGraph и использует паттерн human‑in‑the‑loop: после генерации сцены LLM «приостанавливается», пользователь выбирает вариант, а затем LLM дописывает короткую концовку.
🚀 Установка
# Клонируйте репозиторий
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
🏃♂️ Запуск
python solution.py
Что происходит при запуске
- Инициализация – создаётся граф, LLM и чекпоинтер.
- Генерация темы – LLM создаёт тему/завязку.
- Сцена – LLM генерирует описание текущей сцены.
- Опции – LLM выдаёт 3‑4 варианта действий.
- Пауза – пользователь выбирает вариант через консоль.
- Концовка – LLM дописывает короткую концовку, учитывая выбор.
- Вывод – финальный текст выводится в консоль.
📌 Пример использования
$ python solution.py
LLM: Выберите тему истории:
1) Приключение в космосе
2) Тайна древнего замка
3) Путешествие во времени
Выберите вариант (1‑3): 2
LLM: Вы выбрали «Тайна древнего замка».
Сцена: Вы стоите перед массивным замком, его стены покрыты мхом...
LLM: Что вы будете делать?
1) Подойти к воротам
2) Осмотреть окрестности
3) Выйти обратно
Выберите вариант (1‑3): 1
LLM: Вы подошли к воротам. Они открылись, и внутри...
Концовка: Вы нашли сокровище и спасли королевство. Поздравляем!
🔧 Как изменить модель
В solution.py найдите строку:
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.7)
Замените model на нужный вам, например "gpt-3.5-turbo" или "gpt-4o".
Если используете другую поставку, настройте ChatOpenAI согласно документации LangChain.
📚 Что дальше
- Добавьте более сложные состояния (например, инвентарь, здоровье героя).
- Переведите игру в веб‑интерфейс с помощью Streamlit.
- Расширьте количество вариантов и уровней сложности.
🤝 Вклад
Пожалуйста, открывайте Issues и Pull Requests. Любые улучшения приветствуются!
Автор: Ваше имя
Дата: 2026‑05‑29
Description
Languages
Python
100%