Update extensions and documentation for LLM integration and CLI enhancements
- Added support for a new extension, `swarm-assistent`, in `extensions.example.yaml` with a requirement for `ollama`. - Enhanced the README.md to clarify the setup process and provide a quick start guide for using extensions. - Updated documentation in `llm.md` to reflect the opt-in nature of LLM support and provide clearer instructions for enabling it. - Improved the `autocomplete.md` to detail the automatic setup of word lists during the initial launch. - Revised `cli.md` to include new commands and options related to LLM runtime handling and extension management. - Enhanced the `spike-notes.md` to guide users through the first live run with a focus on LLM integration.
This commit is contained in:
@@ -1,75 +1,81 @@
|
||||
# gpu-rent
|
||||
|
||||
Прерываемый GPU в [Selectel](https://selectel.ru) + SwarmUI на `http://127.0.0.1:17801`.
|
||||
Модели и ComfyUI живут на сетевом диске — платишь за GPU только пока он поднят.
|
||||
Прерываемый GPU в [Selectel](https://selectel.ru) + [SwarmUI](https://github.com/mcmonkeyprojects/SwarmUI) на `http://127.0.0.1:17801`.
|
||||
|
||||
**Сначала ключи и квота GPU, не `up`.** → [`docs/setup.md`](docs/setup.md)
|
||||
Модели и ComfyUI живут на сетевом диске. **GPU платится только пока жив compute** (`up`…`stop` или idle-killer). Диск — **всегда**, даже после `stop`.
|
||||
|
||||
---
|
||||
|
||||
## Быстрый старт
|
||||
## С нуля → первая картинка
|
||||
|
||||
```powershell
|
||||
.\gpu-rent.ps1 doctor # preflight
|
||||
.\gpu-rent.ps1 flavors # что выберет фоллбек
|
||||
.\gpu-rent.ps1 dry-run # план без create
|
||||
.\gpu-rent.ps1 up --yes # GPU + SwarmUI + seed + туннель :17801
|
||||
.\gpu-rent.ps1 up --yes --no-tunnel # только облако
|
||||
.\gpu-rent.ps1 tunnel --open # снова открыть UI, если туннель закрыли
|
||||
.\gpu-rent.ps1 hold # отложить idle-killer
|
||||
.\gpu-rent.ps1 stop # гасить compute, диски оставить
|
||||
```
|
||||
Делай по порядку. Подробности и скрины панели — в [docs/setup.md](docs/setup.md).
|
||||
|
||||
| # | Шаг | Команда / действие |
|
||||
| --- | --- | --- |
|
||||
| 1 | Python 3.11+, клон репо | — |
|
||||
| 2 | Квота GPU в Selectel (> 0) или тикет | [setup §2](docs/setup.md#2-selectel-проект-и-квота-gpu) |
|
||||
| 3 | Сервисный пользователь + `.env` из RC | [setup §3](docs/setup.md#3-ключи-openstack-это-и-есть-api-key-для-gpu-rent) |
|
||||
| 4 | (Опц.) Civitai token + `models.yaml` | [setup §4](docs/setup.md#4-civitai-api-token-модели) |
|
||||
| 5 | Preflight | `.\gpu-rent.ps1 doctor` |
|
||||
| 6 | Поднять GPU + туннель | `.\gpu-rent.ps1 up --yes` |
|
||||
| 7 | Открыть UI | браузер сам / `.\gpu-rent.ps1 open` |
|
||||
| 8 | Закончить сессию | `.\gpu-rent.ps1 stop` |
|
||||
|
||||
Unix: `./gpu-rent.sh …` (один раз `chmod +x gpu-rent.sh`).
|
||||
|
||||
Лаунчер сам создаёт `.venv` и ставит пакет. Конфиг — **в корне репо**:
|
||||
|
||||
| Файл | Что |
|
||||
| --- | --- |
|
||||
| `.env` | из `env.example` — `OS_*`, Civitai |
|
||||
| `models.yaml` | из `models.example.yaml` — seed с Civitai |
|
||||
| `extensions.yaml` | из `extensions.example.yaml` |
|
||||
| `.gpu-rent/` | state, SSH-ключ (gitignore) |
|
||||
**Не начинай с `up`**, пока `doctor` не зелёный. Ключ панели `X-Token` для этого CLI **не подходит**.
|
||||
|
||||
---
|
||||
|
||||
## Команды
|
||||
## Обычный день
|
||||
|
||||
```powershell
|
||||
.\gpu-rent.ps1 up --yes # GPU + SwarmUI + туннель :17801
|
||||
# работаешь в браузере…
|
||||
# Ctrl+C в терминале = только туннель off, GPU жив
|
||||
.\gpu-rent.ps1 tunnel --open # снова UI
|
||||
.\gpu-rent.ps1 hold # отложить idle-killer
|
||||
.\gpu-rent.ps1 stop # погасить GPU, диски оставить
|
||||
```
|
||||
|
||||
| Важно | |
|
||||
| --- | --- |
|
||||
| `Ctrl+C` на туннеле | **не** гасит GPU |
|
||||
| Простой ~30 мин | idle-killer сам удалит compute |
|
||||
| Preemptible | ~24 ч → `EXPIRED`; `tunnel` / `up` поднимут снова |
|
||||
| Двойной клик лаунчера | задай `GPU_RENT_DEFAULT_ARGS=up --yes` в `gpu-rent.vars` |
|
||||
|
||||
---
|
||||
|
||||
## Команды (кратко)
|
||||
|
||||
| Команда | Смысл |
|
||||
| --- | --- |
|
||||
| `doctor` | Keystone, квота GPU, flavor, Civitai, манифесты |
|
||||
| `flavors` | Живой список по `FLAVOR_PREFERENCE` |
|
||||
| `up` / `up --yes` | Поднять GPU + туннель :17801 (браузер). Ctrl+C = туннель off |
|
||||
| `up --no-tunnel` | Только облако |
|
||||
| `up --no-spot` / `up --flavor ID` | Обычный тариф / явный flavor |
|
||||
| `tunnel` / `tunnel --open` | Повторный проброс; watchdog на EXPIRED |
|
||||
| `open` | Браузер на 17801 |
|
||||
| `hold` / `hold --minutes 90` / `hold --clear` | Пауза idle-killer |
|
||||
| `status` | Nova + диск + killer |
|
||||
| `seed-models` / `seed-extensions` | Докачать на живой диск |
|
||||
| `push` / `push-models` / `pull-output` | Локальные папки ↔ VM |
|
||||
| `resize-data --gb 400` | Диск только вверх |
|
||||
| `setup` | Wizard: `.env`, LLM, watchdog |
|
||||
| `doctor` | Preflight без create |
|
||||
| `flavors` / `dry-run` | Что выберет / план без денег |
|
||||
| `up` / `up --yes` | GPU + seed + туннель |
|
||||
| `up --ollama` | + Ollama (см. [docs/llm.md](docs/llm.md)) |
|
||||
| `tunnel` / `open` | Снова UI / браузер |
|
||||
| `hold` / `status` | Пауза killer / состояние |
|
||||
| `stop` / `destroy --i-understand-data-loss` | Стоп GPU / + диски |
|
||||
| `push` / `pull-output` / `seed-*` | Файлы ↔ VM |
|
||||
|
||||
Полный список: [docs/cli.md](docs/cli.md).
|
||||
|
||||
---
|
||||
|
||||
## Деньги и риски
|
||||
## Конфиг в корне репо
|
||||
|
||||
- **GPU** — пока жив compute (`up`…`stop` или idle-killer).
|
||||
- **Диск data** — **24/7**, даже после `stop`.
|
||||
- Цены в OpenStack API **нет** — смотри панель Selectel.
|
||||
- Preemptible по умолчанию (~24 ч) → `EXPIRED`; `tunnel` сам unshelve, иначе `up`.
|
||||
- Idle-killer: льгота после boot, потом N мин пустой очереди → delete. `hold` откладывает.
|
||||
- `Ctrl+C` на tunnel **не** гасит GPU.
|
||||
| Файл | Что |
|
||||
| --- | --- |
|
||||
| `.env` | из `env.example` — `OS_*`, Civitai (не в git) |
|
||||
| `gpu-rent.vars` | из example — несекретные дефолты, лаунчер |
|
||||
| `models.yaml` / `extensions.yaml` | манифесты (из `*.example.yaml`) |
|
||||
| `Models/` … | локальный push на `up` |
|
||||
| `.gpu-rent/` | state, SSH-ключ (gitignore) |
|
||||
|
||||
---
|
||||
|
||||
## Модели
|
||||
|
||||
1. Civitai-seed по `models.yaml` (нужен `CIVITAI_API_TOKEN`, хост `civitai.red`).
|
||||
2. Локальные `Models/`, `Wildcards/`, `CustomWorkflows/` — непустые едут на каждый `up`.
|
||||
|
||||
Пример в репо уже с Krea 2 + LoRA — скопируй в `models.yaml`.
|
||||
Лаунчер сам создаёт `.venv` и ставит пакет.
|
||||
|
||||
---
|
||||
|
||||
@@ -77,10 +83,11 @@ Unix: `./gpu-rent.sh …` (один раз `chmod +x gpu-rent.sh`).
|
||||
|
||||
| Док | Зачем |
|
||||
| --- | --- |
|
||||
| [docs/setup.md](docs/setup.md) | Ключи, квота, RC |
|
||||
| [docs/spike-notes.md](docs/spike-notes.md) | Чеклист живого spike |
|
||||
| [docs/cli.md](docs/cli.md) | Все команды и `.env` |
|
||||
| [docs/decisions.md](docs/decisions.md) | Продуктовые решения |
|
||||
| [docs/roadmap.md](docs/roadmap.md) | Что готово / что нет |
|
||||
| [docs/setup.md](docs/setup.md) | **Пошаговая подготовка** до первого `up` |
|
||||
| [docs/cli.md](docs/cli.md) | Все команды и переменные |
|
||||
| [docs/llm.md](docs/llm.md) | Ollama / llama.cpp |
|
||||
| [docs/models.md](docs/models.md) | Civitai + папка `Models/` |
|
||||
| [docs/spike-notes.md](docs/spike-notes.md) | Чеклист первого живого прогона |
|
||||
| [docs/README.md](docs/README.md) | Оглавление всего `docs/` |
|
||||
|
||||
MIT. Секреты и веса в git не коммитить.
|
||||
|
||||
Reference in New Issue
Block a user