Files
tekstovaya-igra-na-osnove-l…/README.md
T

3.6 KiB
Raw Blame History

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 на соответствующий провайдер.

🚀 Установка

# 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:

langchain>=0.2.0
langgraph>=0.1.0
questionary>=1.10.0
rich>=13.0.0
openai>=1.0.0   # если используете OpenAI

▶️ Запуск

# Установите переменную окружения с ключом API (пример для Linux/macOS)
export OPENAI_API_KEY="sk-..."

# Для Windows:
set OPENAI_API_KEY=sk-...

python solution.py

После запуска вы увидите интерактивный диалог в терминале. Выбирайте варианты, и история будет развиваться.


📋 Пример работы

> Начало истории:
Вы просыпаетесь в таинственном лесу. Вокруг слышен шорох ветра.
Варианты действий:
  1) Исследовать ближайший домик
  2) Пойти к озеру
  3) Остановиться и послушать тишину

Выберите номер: 2

> Вы выбрали: "Пойти к озеру"
LLM продолжает историю...

📚 Что дальше?

  • Добавьте более сложные ветки и условия.
  • Сохраните состояние в файл, чтобы игрок мог возобновить игру позже (langgraph.checkpoint.file).
  • Интегрируйте голосовой ввод/вывод для более «живого» опыта.

📄 Лицензия

MIT © 2026