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

113 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Мини‑игра «Выбери свою историю»
## (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` перед запуском.
---
## 📦 Установка
```bash
# Клонируйте репозиторий (или скачайте файлы)
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` содержит:
```text
langgraph>=0.1.0
langchain>=0.2.0
questionary>=1.10.0
openai>=1.0.0
```
---
## ▶️ Запуск
```bash
# Установите ключ 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*!
Пожалуйста, придерживайтесь стиля кода и добавляйте тесты при необходимости.
---