46 lines
2.0 KiB
Markdown
46 lines
2.0 KiB
Markdown
# Текстовая игра на основе LLM + interrupt
|
|
|
|
## Описание
|
|
|
|
Это простая консольная игра «Выбери свою историю», где генеративная модель (LLM) создаёт начало истории и варианты действий, а пользователь выбирает один из них. После выбора модель генерирует короткую концовку.
|
|
|
|
## Требования
|
|
|
|
- Python 3.10+
|
|
- OpenAI API ключ (или другая модель, настроенная через LangChain)
|
|
|
|
## Установка
|
|
|
|
```bash
|
|
git clone https://git.brojs.ru/kuzakhmetovartur/tekstovaya-igra-na-osnove-llm-interrupt
|
|
cd tekstovaya-igra-na-osnove-llm-interrupt
|
|
python -m venv venv
|
|
source venv/bin/activate # Windows: venv\Scripts\activate
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
Создайте файл `.env` в корне проекта и добавьте ваш ключ:
|
|
|
|
```
|
|
OPENAI_API_KEY=sk-...
|
|
```
|
|
|
|
## Запуск
|
|
|
|
```bash
|
|
python src/main.py
|
|
```
|
|
|
|
Игра начнётся в консоли. После появления вопросов выберите вариант, используя клавиши со стрелками, и нажмите `Enter`.
|
|
|
|
## Как работает
|
|
|
|
1. **intro_node** – генерирует завязку и три варианта действий.
|
|
2. **interrupt** – приостанавливает выполнение и передаёт варианты пользователю.
|
|
3. **ending_node** – после выбора пользователя генерирует короткую концовку.
|
|
|
|
Граф реализован с помощью `langgraph`, а прерывание обрабатывается через `interrupt(...)`. Состояние сохраняется в `InMemorySaver`, поэтому можно приостановить и возобновить игру в любой момент.
|
|
|
|
## Лицензия
|
|
|
|
MIT |