Добавлен 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 | любой актуальный |
## ⚙️ Предварительные требования Для работы с OpenAI API понадобится ключ `OPENAI_API_KEY`.
Установите переменную окружения:
| Технология | Версия |
|------------|--------|
| Python | ≥ 3.10 |
| pip | |
**API‑ключ OpenAI** должен быть доступен в переменной окружения `OPENAI_API_KEY` (или вы можете задать его вручную в коде).
---
## 📦 Установка
```bash ```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-..." 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 python solution.py
``` ```
После запуска вы увидите: Вы увидите в консоли начальную историю, список вариантов действий и сможете выбрать один из них. После выбора LLM сгенерирует короткую концовку.
1. Сгенерированное вступление и варианты действий. ## Пример работы
2. Вопрос с выбором через `questionary`.
3. Короткая концовка, основанная на вашем выборе.
--- ```
> Запуск игры...
## 🎮 Пример Начальная сцена:
Вы просыпаетесь в темном лесу. Вокруг слышен шорох ветвей.
Что вы будете делать?
```text 1) Пойти к свету
> python solution.py 2) Остановиться и послушать шумы
Welcome to the LLM Adventure! 3) Спрятаться за деревом
You find yourself in a dimly lit cavern. A faint glow emanates from a stone altar. Выберите номер варианта: 1
What do you do?
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...
``` ```
--- > **Важно**
> Если при запуске возникнет ошибка `openai.error.AuthenticationError`, проверьте корректность переменной `OPENAI_API_KEY`.
## 📚 Как это работает
- **StateGraph** управляет состоянием игры.
- `interrupt` заставляет граф остановиться и передать управление пользователю.
- После выбора пользовательского действия состояние обновляется и LLM продолжает генерацию.
--- ---
## 🤝 Вклад *Автор: [Ваше имя]*
*Дата: 20260528*
Если хотите улучшить игру (добавить больше веток, использовать другие модели, добавить сохранение прогресса), создайте pull request. Убедитесь, что тесты проходят (`pytest`).
---
## 📄 Лицензия
MIT © 2026