Добавлен README.md

This commit is contained in:
2026-05-28 15:50:10 +00:00
parent 253c549384
commit f572659a0b
+69 -84
View File
@@ -1,110 +1,95 @@
# Text Adventure with LLM and Interrupts
*A minimal “chooseyourownstory” game powered by LangGraph, LangChain & OpenAI*
# Мини‑игра «Выбери свою историю»
---
## Описание
## 📖 Описание
Проект реализует интерактивную текстовую игру на основе больших языковых моделей (LLM).
Сценарий игры строится следующим образом:
`solution.py` реализует простую интерактивную историю, где:
1. **LLM** генерирует начальную завязку и несколько вариантов действий для главного героя.
2. С помощью **LangGraph** выполнение модели ставится в состояние *прерывания* – пользователь получает список вариантов через консольный интерфейс.
3. Пользователь выбирает один из вариантов при помощи `questionary`.
4. После выбора LLM дописывает короткую концовку, учитывая выбранный путь.
1. **LLM** генерирует начальный сюжет и несколько вариантов действий.
2. Граф приостанавливает выполнение (interrupt) и выводит варианты пользователю через `questionary`.
3. После выбора пользовательского действия LLM дописывает короткую концовку.
Таким образом игрок участвует в создании истории в реальном времени, а модель реагирует на его решения.
Таким образом игрок видит цепочку:
`LLM → пауза → выбор → LLM`.
## Предварительные требования
---
| Пакет | Версия |
|-------|--------|
| Python | 3.10+ |
| pip | любой актуальный |
## ⚙️ Предварительные требования
| Технология | Версия |
|------------|--------|
| Python | ≥ 3.10 |
| pip | |
**API‑ключ OpenAI** должен быть доступен в переменной окружения `OPENAI_API_KEY` (или вы можете задать его вручную в коде).
---
## 📦 Установка
Для работы с OpenAI API понадобится ключ `OPENAI_API_KEY`.
Установите переменную окружения:
```bash
# Клонируйте репозиторий
git clone https://github.com/your-username/text-adventure.git
cd text-adventure
# Создайте виртуальное окружение (рекомендуется)
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
# Установите зависимости
pip install -r requirements.txt
```
`requirements.txt`:
```text
langgraph>=0.1.0
langchain-openai>=0.2.0
questionary>=1.10.0
rich>=13.0.0
```
---
## ▶️ Запуск
```bash
# Убедитесь, что переменная окружения установлена
export OPENAI_API_KEY="sk-..."
```
# Запустите игру
## Установка
1. Клонируйте репозиторий (или скачайте файлы):
```bash
git clone https://github.com/yourname/text-adventure.git
cd text-adventure
```
2. Создайте и активируйте виртуальное окружение:
```bash
python -m venv .venv
source .venv/bin/activate # Linux/macOS
.\.venv\Scripts\activate # Windows
```
3. Установите зависимости из `requirements.txt` (или вручную):
```bash
pip install -r requirements.txt
```
Если файла нет, установите пакеты по отдельности:
```bash
pip install langgraph langchain langchain-openai questionary rich
```
## Запуск
После установки и настройки переменной окружения просто запустите скрипт:
```bash
python solution.py
```
После запуска вы увидите:
Вы увидите в консоли начальную историю, список вариантов действий и сможете выбрать один из них. После выбора LLM сгенерирует короткую концовку.
1. Сгенерированное вступление и варианты действий.
2. Вопрос с выбором через `questionary`.
3. Короткая концовка, основанная на вашем выборе.
## Пример работы
---
```
> Запуск игры...
## 🎮 Пример
Начальная сцена:
Вы просыпаетесь в темном лесу. Вокруг слышен шорох ветвей.
Что вы будете делать?
```text
> python solution.py
Welcome to the LLM Adventure!
1) Пойти к свету
2) Остановиться и послушать шумы
3) Спрятаться за деревом
You find yourself in a dimly lit cavern. A faint glow emanates from a stone altar.
What do you do?
Выберите номер варианта: 1
1️⃣ Inspect the altar
2️⃣ Search for an exit
3️⃣ Sit and wait
Вы выбрали: "Пойти к свету"
Your choice: 1
The altar is covered with ancient runes. As you touch them, a burst of light surrounds you...
Концовка:
Вы идёте по тропинке, пока не видите маленькую хижину. Внутри вы находите старую книгу...
```
---
## 📚 Как это работает
- **StateGraph** управляет состоянием игры.
- `interrupt` заставляет граф остановиться и передать управление пользователю.
- После выбора пользовательского действия состояние обновляется и LLM продолжает генерацию.
> **Важно**
> Если при запуске возникнет ошибка `openai.error.AuthenticationError`, проверьте корректность переменной `OPENAI_API_KEY`.
---
## 🤝 Вклад
Если хотите улучшить игру (добавить больше веток, использовать другие модели, добавить сохранение прогресса), создайте pull request. Убедитесь, что тесты проходят (`pytest`).
---
## 📄 Лицензия
MIT © 2026
*Автор: [Ваше имя]*
*Дата: 20260528*