3.8 KiB
3.8 KiB
Мини‑игра «Выбери свою историю»
(Interactive Storytelling with LLM + Interrupt)
📖 Описание
solution.py реализует простую текстовую игру в стиле «выбери свою историю».
Процесс игры выглядит так:
- LLM генерирует начальную сцену и несколько вариантов действий героя.
- С помощью
langgraphвыполнение «приостанавливается» (interrupt). - Пользователь выбирает один из предложенных вариантов через консольный интерфейс (
questionary). - После выбора LLM дописывает короткую концовку, учитывая выбранное действие.
Таким образом игрок управляет сюжетом в реальном времени, а модель отвечает на его выборы.
⚙️ Предварительные требования
| Компонент | Версия |
|---|---|
| Python | 3.10+ |
| pip | - |
Важно: Для работы с LLM требуется ключ OpenAI API.
Установите переменную окруженияOPENAI_API_KEYперед запуском.
📦 Установка
# Клонируйте репозиторий (или скачайте файлы)
git clone https://github.com/yourname/text-adventure-llm.git
cd text-adventure-llm
# Создайте виртуальное окружение (рекомендуется)
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
# Установите зависимости
pip install -r requirements.txt
requirements.txt содержит:
langgraph>=0.1.0
langchain>=0.2.0
questionary>=1.10.0
openai>=1.0.0
▶️ Запуск
# Установите ключ OpenAI (пример)
export OPENAI_API_KEY="sk-..."
# Запустите игру
python solution.py
После запуска вы увидите:
LLM: "Ты стоишь на перекрестке в древнем городе. Что ты сделаешь?"
1) Пойти к рынку
2) Исследовать подземелье
3) Вернуться домой
Выберите действие (1/2/3):
Введите номер, и модель продолжит историю.
🎮 Пример игры
LLM: "Ты стоишь на перекрестке в древнем городе. Что ты сделаешь?"
1) Пойти к рынку
2) Исследовать подземелье
3) Вернуться домой
Выберите действие (1/2/3): 2
LLM: "Твое решение исследовать подземелье заставило тебя спуститься по узкой лестнице, ведущей в мрачные глубины. Внутри ты обнаружил..."
📚 Как это работает
- LangGraph управляет состоянием и прерываниями.
- ChatOpenAI (из
langchain) отвечает за генерацию текста. - questionary обеспечивает интерактивный выбор в консоли.
Вы можете расширить игру, добавив больше веток, логики выбора или даже графический интерфейс.
🤝 Вклад
Если хотите улучшить проект – создайте pull request!
Пожалуйста, придерживайтесь стиля кода и добавляйте тесты при необходимости.