Files
gpu-rent/docs/autocomplete.md
T
Leonid Pershin 71f4e4c2e3 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.
2026-08-21 05:49:34 +03:00

97 lines
5.2 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.
# Autocomplete промптов SwarmUI
Официальная инструкция: [docs/Features/Autocompletions.md](https://github.com/mcmonkeyprojects/SwarmUI/blob/master/docs/Features/Autocompletions.md).
**По умолчанию включено** (`AUTOCOMPLETE_ENABLED=true`): на bootstrap CLI качает `danbooru.csv` и прописывает источник в Settings **до** первого старта SwarmUI. Ничего руками делать не нужно.
Выключить: `AUTOCOMPLETE_ENABLED=false` в `.env`.
## Поведение gpu-rent
| Момент | Действие |
| --- | --- |
| Первый диск / файла ещё нет | Скачать с GitHub на VM в `/mnt/swarm_data/Data/Autocompletions/<filename>`. Прописать `DefaultUser.AutoComplete.Source` в `Settings.fds` **до** первого старта SwarmUI |
| Каждый последующий `up` (диск уже есть) | Спросить GitHub blob `sha` того же пути. Если sha изменился — скачать заново, заменить файл, `systemctl restart swarmui` если UI уже крутится |
| `AUTOCOMPLETE_ENABLED=false` или URL пуст | Ничего не качать, стоковый SwarmUI (только синтаксис `<…>`, без booru-тегов) |
Это **не** одноразовый seed как модели: список тегов на GitHub обновляют. Проверка версии — часть каждого `up`, пока есть SSH.
Файл маленький (danbooru.csv ≈ 34 MB). Killer из‑за него не откладываем, но на первом bootstrap качаем **до** старта UI, вместе с extensions.
## Откуда файл
Дефолт — то, на что ссылается сама документация SwarmUI:
- репозиторий [DominikDoom/a1111-sd-webui-tagcomplete](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/tree/main/tags)
- путь `tags/danbooru.csv`
- raw: `https://raw.githubusercontent.com/DominikDoom/a1111-sd-webui-tagcomplete/main/tags/danbooru.csv`
Альтернативы из той же папки (`e621.csv`, `danbooru_e621_merged.csv`, …) или релизы [BetaDoggo/danbooru-tag-list](https://github.com/BetaDoggo/danbooru-tag-list/releases) — через конфиг, не хардкод в коде кроме дефолта.
## Куда класть
На data volume (уже примонтирован как `/SwarmUI/Data`):
```text
/mnt/swarm_data/Data/Autocompletions/danbooru.csv
/mnt/swarm_data/Data/Autocompletions/danbooru.csv.gpu-rent-meta.json
```
На data volume: `/mnt/swarm_data/Data/Autocompletions/danbooru.csv` (bind → `/opt/swarmui/Data/…`).
Sidecar meta (не отдавать в Output):
```json
{
"repo": "DominikDoom/a1111-sd-webui-tagcomplete",
"path": "tags/danbooru.csv",
"ref": "main",
"github_blob_sha": "7a3cba59…",
"filename": "danbooru.csv",
"fetched_at": "2026-08-21T00:00:00Z"
}
```
## Как узнать, что файл новый
Не сравнивать «дату файла на диске». GitHub Contents API:
```http
GET https://api.github.com/repos/{repo}/contents/{path}?ref={ref}
```
В ответе поле `sha` — blob git. Сравнить с `github_blob_sha` в sidecar. Совпало → ничего не качать. Другое → GET `download_url` (или raw), атомарно заменить файл, обновить sidecar.
Без токена GitHub лимит 60 запросов/час с IP VM — на один `up` хватает. Если 403 rate limit — пропустить обновление, не валить `up`.
Для URL не с GitHub (произвольный raw): `HEAD`/`GET` с `If-None-Match` / `Last-Modified`, хранить ETag в sidecar.
## Настройки SwarmUI до первого запуска
Положить/дописать в `/mnt/swarm_data/Data/Settings.fds` (Frenetic Data Syntax), пока SwarmUI ещё не стартовал:
```text
DefaultUser:
AutoComplete:
Source: danbooru.csv
EscapeParens: true
```
`Source` — имя файла **относительно** `Data/Autocompletions`, как в UI `AutoCompletionsSource`.
Если `Settings.fds` уже есть (повторный диск) и пользователь сменил список в UI — **не** перезаписывать `Source` на каждом `up`. Ставить Source только когда он пустой или мы его ещё ни разу не ставили (флаг в meta `settings_applied: true`).
После замены csv на уже живой VM: `systemctl restart swarmui` (хелпер `Reload()` при старте перечитает каталог).
## Конфиг
```env
AUTOCOMPLETE_ENABLED=true
AUTOCOMPLETE_GITHUB_REPO=DominikDoom/a1111-sd-webui-tagcomplete
AUTOCOMPLETE_GITHUB_PATH=tags/danbooru.csv
AUTOCOMPLETE_GITHUB_REF=main
AUTOCOMPLETE_FILENAME=danbooru.csv
```
Или один `AUTOCOMPLETE_URL=` для raw без GitHub sha (тогда версия по ETag).