LocalAI/docs/webchat.md

50 lines
3.2 KiB
Markdown

# Web-Chat (Open WebUI)
Chat im Browser, ohne Client-Installation. Open WebUI läuft im selben Stack und spricht intern direkt mit llama-swap. Nach außen liegt es hinter Caddy auf Port **8801** (`WEBUI_PORT`). Dort greifen derselbe IP-Filter (`ALLOWED_NETS`) und ufw wie bei der API. Einen API-Key braucht der Browser nicht, Open WebUI hat einen eigenen Login.
| Zugang | URL |
|---|---|
| lokal | http://127.0.0.1:8801 |
| LAN | http://192.168.178.72:8801 |
| NetBird | http://alegab-pc.vpn.local:8801 |
`./scripts/start.sh` zeigt die aktuellen Adressen an.
## Erster Start
1. Einmalig den Port in der Firewall öffnen: `sudo ./scripts/firewall-ufw.sh`
2. Die URL öffnen und **sofort einen Account anlegen**. Der erste Account wird Admin.
3. Weitere Accounts landen als „ausstehend“ und müssen unter *Admin-Bereich → Benutzer* freigeschaltet werden. Wer niemanden sonst zulassen will: *Admin-Bereich → Einstellungen → Allgemein → Registrierung* abschalten.
## Was vorkonfiguriert ist
| Funktion | Modell | Hinweis |
|---|---|---|
| Chat | `qwen3.5-35b-a3b`, `glm-4.7-flash`, `qwen3.5-9b` | Modellwechsel lädt das Modell in llama-swap um (dauert einige Sekunden) |
| Dokumente / RAG (Datei in den Chat ziehen) | `nomic-embed` | |
| Spracheingabe (Mikrofon) | `whisper` | nur über HTTPS oder `localhost`, siehe unten |
| Bilder (Bild-Knopf im Chat) | `z-image` | verdrängt das Chat-Modell; der nächste Chat lädt es neu |
Die Auswahlliste zeigt nur die Chat-Modelle. `qwen2.5-coder-1.5b`, `nomic-embed`, `whisper` und `z-image` sind in `llama-swap/config.yaml` als `unlisted: true` markiert, weil sie im Chat-Feld nur einen Fehler liefern würden. Bilder erzeugt man über den Bild-Knopf im Chat, nicht über die Modellauswahl.
Die Chat-Modelle laufen mit `-np 1`, also mit einer Sitzung gleichzeitig. Wenn opencode gerade arbeitet, wartet der Web-Chat (und umgekehrt). Titel-Generierung nutzt dasselbe Modell und hängt sich hinten an. Autocomplete- und Folgefragen-Vorschläge sind deshalb abgeschaltet.
## Einstellungen ändern
Die Umgebungsvariablen in `docker-compose.yml` gelten **nur beim allerersten Start**. Danach speichert Open WebUI alles in seiner Datenbank. Spätere Änderungen macht man im *Admin-Bereich → Einstellungen* (Verbindungen, Dokumente, Audio, Bilder).
Die Daten (Accounts, Chats, Dokumente) liegen im Docker-Volume `localai_open-webui`.
- Sichern: `docker run --rm -v localai_open-webui:/d -v "$PWD":/b alpine tar czf /b/open-webui-backup.tgz -C /d .`
- Komplett zurücksetzen: `docker compose down && docker volume rm localai_open-webui`
## Spracheingabe von anderen Rechnern
Browser geben das Mikrofon nur auf HTTPS-Seiten oder `localhost` frei. Über `http://<server>:8801` bleibt der Mikrofon-Knopf daher wirkungslos. Für Chrome/Chromium gibt es eine Ausnahme pro Adresse:
`chrome://flags/#unsafely-treat-insecure-origin-as-secure` → `http://alegab-pc.vpn.local:8801` eintragen, neu starten.
Dateien hochladen (Audio-Datei transkribieren) funktioniert auch ohne HTTPS.
## Update
`OPEN_WEBUI_TAG` in `.env` anheben (Releases: https://github.com/open-webui/open-webui/releases), dann `docker compose up -d`. Open WebUI migriert die Datenbank selbst. Vorher sichern.