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:
+81
-38
@@ -1,79 +1,122 @@
|
||||
# LLM рядом со SwarmUI (opt-in)
|
||||
|
||||
По умолчанию поднимается только SwarmUI. Ollama или llama.cpp — по флагу, `LLM_RUNTIME` в `gpu-rent.vars` / `.env`, или через wizard.
|
||||
По умолчанию поднимается **только SwarmUI**. Ollama или llama.cpp — отдельно, когда нужны (помощь с промптами и т.п.).
|
||||
|
||||
## Включение
|
||||
---
|
||||
|
||||
## Быстрый путь
|
||||
|
||||
### Вариант A — wizard
|
||||
|
||||
```text
|
||||
gpu-rent setup # спросит none/ollama/llamacpp + пресет моделей
|
||||
gpu-rent up --ollama # разово
|
||||
gpu-rent up --llm llamacpp
|
||||
# или в gpu-rent.vars:
|
||||
gpu-rent setup
|
||||
```
|
||||
|
||||
Выбери `ollama` или `llamacpp`, при Ollama — пресет моделей. Значение пишется в `gpu-rent.vars` (`LLM_RUNTIME=…`).
|
||||
|
||||
### Вариант B — флаг на `up`
|
||||
|
||||
```text
|
||||
gpu-rent up --yes --ollama
|
||||
gpu-rent up --yes --llm llamacpp
|
||||
```
|
||||
|
||||
### Вариант C — вручную в vars
|
||||
|
||||
```env
|
||||
LLM_RUNTIME=ollama
|
||||
```
|
||||
|
||||
Без параметров `gpu-rent` показывает help (не `up`). Double-click лаунчеры: `GPU_RENT_DEFAULT_ARGS=up --yes`. `gpu-rent up` без `--yes` спросит про LLM, если в vars ещё `none`. Полный doctor: `gpu-rent up -v`.
|
||||
Потом обычный `gpu-rent up --yes`.
|
||||
|
||||
## Порты (только loopback + туннель)
|
||||
Чтобы **выключить** LLM на следующих сессиях: `LLM_RUNTIME=none` (на `up` старые unit’ы `gpu-rent-ollama` / `gpu-rent-llamacpp` останавливаются).
|
||||
|
||||
| Сервис | VM | localhost |
|
||||
Голый `gpu-rent` без args — help, не `up`. Двойной клик: `GPU_RENT_DEFAULT_ARGS=up --yes` в `gpu-rent.vars`. Полный doctor на up: `up -v`.
|
||||
|
||||
---
|
||||
|
||||
## Порты (loopback + туннель)
|
||||
|
||||
| Сервис | На VM | На ноутбуке |
|
||||
| --- | --- | --- |
|
||||
| SwarmUI | 7801 | 17801 |
|
||||
| Ollama | 11434 | 17811 |
|
||||
| llama.cpp | 8080 | 17812 |
|
||||
| SwarmUI | 7801 | **17801** |
|
||||
| Ollama | 11434 | **17811** |
|
||||
| llama.cpp | 8080 | **17812** |
|
||||
|
||||
```text
|
||||
gpu-rent tunnel
|
||||
gpu-rent open --llm # http://127.0.0.1:17811 (Ollama)
|
||||
# клиент:
|
||||
set OLLAMA_HOST=http://127.0.0.1:17811
|
||||
gpu-rent open --llm
|
||||
```
|
||||
|
||||
## Ollama models
|
||||
Клиент Ollama:
|
||||
|
||||
Как Civitai `models.yaml`:
|
||||
```text
|
||||
# Windows PowerShell
|
||||
$env:OLLAMA_HOST = "http://127.0.0.1:17811"
|
||||
```
|
||||
|
||||
- `ollama-models.example.yaml` — в git
|
||||
- `ollama-models.yaml` — локальный (gitignore)
|
||||
После успешного `up`/`tunnel` CLI печатает access-card со всеми URL и MCP-сниппетом.
|
||||
|
||||
На `up` при `LLM_RUNTIME=ollama` CLI делает `ollama pull` по списку. Уже скачанные не трогает; лишние на диске не удаляет.
|
||||
---
|
||||
|
||||
### Пресеты setup
|
||||
## Ollama: модели
|
||||
|
||||
| Файл | Роль |
|
||||
| --- | --- |
|
||||
| `ollama-models.example.yaml` | шаблон в git |
|
||||
| `ollama-models.yaml` | твой список (gitignore) |
|
||||
|
||||
На `up` при `LLM_RUNTIME=ollama` CLI делает `ollama pull` по списку. Уже скачанные теги **точно** не трогает (`foo:3b` ≠ `foo:7b`). Лишние модели на диске не удаляет.
|
||||
|
||||
### Пресеты `setup`
|
||||
|
||||
| preset | tag | зачем |
|
||||
| --- | --- | --- |
|
||||
| **recommended** | `huihui_ai/qwen2.5-abliterate:7b` | RU/EN, ~5GB, мало отказов — помощь с промптами |
|
||||
| **recommended** | `huihui_ai/qwen2.5-abliterate:7b` | RU/EN, ~5 GB, меньше отказов |
|
||||
| light | `qwen2.5:3b` | быстрее, слабее |
|
||||
| stock | `qwen2.5:7b` | официальный, больше цензуры |
|
||||
| stock | `qwen2.5:7b` | официальный |
|
||||
| alt | `richardyoung/qwen2.5-7b-instruct-abliterated` | другой abliterate |
|
||||
| empty | `[]` | только runtime |
|
||||
| empty | `[]` | только runtime, pull руками |
|
||||
|
||||
Community abliterate-модели без гарантий безопасности — для личного prompt-help / NSFW-тегов рядом со SwarmUI.
|
||||
Community abliterate-модели без гарантий безопасности — для личного prompt-help рядом со SwarmUI.
|
||||
|
||||
Поле `default: true` в yaml — preferred модель (лог / подсказка); pull идёт по всему списку.
|
||||
|
||||
---
|
||||
|
||||
## llama.cpp
|
||||
|
||||
Ставит `llama-server` и systemd. GGUF клади вручную в `/mnt/swarm_data/llamacpp/models` на data-диске (или через SSH), затем `systemctl restart gpu-rent-llamacpp`.
|
||||
1. `LLM_RUNTIME=llamacpp` или `up --llamacpp`
|
||||
2. CLI ставит `llama-server` + systemd `gpu-rent-llamacpp`
|
||||
3. Положи GGUF в `/mnt/swarm_data/llamacpp/models` (SFTP / `gpu-rent ssh`)
|
||||
4. `systemctl restart gpu-rent-llamacpp` на VM
|
||||
|
||||
## Idle-killer
|
||||
Без GGUF unit может стартовать, но API бесполезен — смотри `gpu-rent logs` / `journalctl -u gpu-rent-llamacpp`.
|
||||
|
||||
Busy также если идёт `ollama pull` (маркер младше ~45 мин), в Ollama есть loaded model, или llama.cpp занимает слоты. Зависший маркер `.gpu-rent-ollama-pulling` старше 45 мин idle-killer сбрасывает.
|
||||
---
|
||||
|
||||
## Supply-chain (install на VM)
|
||||
## Idle-killer и LLM
|
||||
|
||||
Скрипты `install_ollama.sh` / `install_llamacpp.sh` по умолчанию тянут upstream **без pin** (Ollama: `curl|sh`; llama.cpp: GitHub `latest`). Это риск подмены артефакта.
|
||||
Busy (не гасить GPU), если:
|
||||
|
||||
Рекомендуется задать pin через env при bootstrap (или патч vars / future hooks):
|
||||
- идёт `ollama pull` (маркер младше ~45 мин; старше — сбрасывается);
|
||||
- в Ollama есть загруженная модель;
|
||||
- llama.cpp занимает слоты.
|
||||
|
||||
Ошибка установки LLM на `up` — **fail** (не тихий лог): почини или поставь `LLM_RUNTIME=none`.
|
||||
|
||||
---
|
||||
|
||||
## Supply-chain (опциональный pin)
|
||||
|
||||
По умолчанию install-скрипты тянут upstream **без pin** (Ollama: `curl|sh`; llama.cpp: GitHub `latest`) — риск подмены. В логе будет `WARN`.
|
||||
|
||||
Жёстче — задай env на VM / при bootstrap:
|
||||
|
||||
```bash
|
||||
# Ollama — GitHub release + checksum
|
||||
OLLAMA_VERSION=0.6.5
|
||||
OLLAMA_SHA256=<sha256 of ollama-linux-amd64.tgz>
|
||||
|
||||
# llama.cpp — tag или прямой URL + checksum
|
||||
LLAMACPP_TAG=b4690
|
||||
# или:
|
||||
LLAMACPP_ASSET_URL=https://github.com/ggerganov/llama.cpp/releases/download/...
|
||||
LLAMACPP_SHA256=<sha256 of archive>
|
||||
# или LLAMACPP_ASSET_URL=... + LLAMACPP_SHA256=...
|
||||
```
|
||||
|
||||
Без этих переменных в логе будет `WARN` про отсутствие pin/checksum.
|
||||
|
||||
Reference in New Issue
Block a user