2026-05-28 10:43:54 +00:00
2026-05-28 10:43:53 +00:00

Мини‑игра «Выбери свою историю»

(Interactive Storytelling with LLM + Interrupt)


📖 Описание

solution.py реализует простую текстовую игру в стиле «выбери свою историю».
Процесс игры выглядит так:

  1. LLM генерирует начальную сцену и несколько вариантов действий героя.
  2. С помощью langgraph выполнение «приостанавливается» (interrupt).
  3. Пользователь выбирает один из предложенных вариантов через консольный интерфейс (questionary).
  4. После выбора 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!
Пожалуйста, придерживайтесь стиля кода и добавляйте тесты при необходимости.


S
Description
Решение: текстовая игра на основе llm + interrupt
Readme 46 KiB
Languages
Python 100%