Consolidated local ollama model logic

This commit is contained in:
2026-04-07 15:42:00 +02:00
parent 9d8aa88bd0
commit 7309541c24
9 changed files with 1171 additions and 527 deletions
+36 -59
View File
@@ -1,73 +1,50 @@
# JR SQL AI GUI (Ollama)
# SQL AI native Ollama package v3
Schlanke, stabile GUI für **Arch Linux / Hyprland (Wayland)**, um ein Ollama-Modell (z.B. `jr-sql-expert:latest`) bequem zu nutzen.
Dieses Paket konsolidiert dein Setup auf **lokales Ollama** statt Docker.
## Features
## Enthalten
- Zwei Bereiche:
- **Prompt/Kontext** (links)
- **Antwort** (rechts) inkl. **Markdown Rendering**
- **Streaming** (Antwort läuft live ein)
- Buttons:
- **An AI senden**
- **Antwort kopieren** (Markdown)
- **Copy SQL only** (extrahiert SQL aus ```sql```-Blöcken bzw. SQL-ähnlichen Code-Fences)
- **Modell aktualisieren (pull)** über Ollama API
- **Ollama Runtime updaten** (optional) via Docker (`docker pull` + `docker restart`)
- `scripts/bootstrap-native.sh`
- `scripts/update-native.sh`
- `scripts/selftest-native.sh`
- `scripts/cleanup-docker-ollama.sh`
- `scripts/common.sh`
- `sql_ai_gui_local_ollama.py`
## Voraussetzungen
## Wesentliche Änderungen
- Ein laufender Ollama Server (bei dir z.B. Docker Container auf `127.0.0.1:11434`)
- Python 3.11+ empfohlen
- kein `docker compose` mehr in Bootstrap/Update/Selftest
- Autostart der lokalen Ollama-Runtime über `systemctl --user start ollama.service` oder Fallback `ollama serve`
- gemeinsamer Lock gegen parallele Modellupdates
- robuste Verifikation über `/api/tags`
- GUI nutzt das lokale `ollama`-Binary für Modellverwaltung und Rebuild des Expert-Modells
- GUI nutzt die lokale Ollama-API für performantes Streaming
## Installation (Arch Linux)
## Erwartete Projektstruktur
### Systempakete (minimal)
```bash
sudo pacman -S pyside6 python-requests
```
- `.env`
- `Modelfile`
- `bin/sqlai`
- `scripts/`
### Optional: venv (isoliert)
```bash
python -m venv .venv
source .venv/bin/activate
pip install PySide6 requests
```
## Start
## Nützliche .env Werte
```bash
python sql_ai_gui.py
OLLAMA_URL=http://127.0.0.1:11434
OLLAMA_BIN=ollama
BASE_MODEL=qwen2.5-coder:14b
EXPERT_MODEL=jr-sql-expert
EXTRA_MODELS="sqlcoder"
OLLAMA_AUTOSTART=1
OLLAMA_SYSTEMD_SERVICE=ollama.service
OLLAMA_SYSTEMD_SCOPE=auto
```
Falls Qt/Wayland zickt (selten), erzwingen:
## Empfohlene Reihenfolge
```bash
QT_QPA_PLATFORM=wayland python sql_ai_gui.py
./scripts/cleanup-docker-ollama.sh
./scripts/update-native.sh
./scripts/selftest-native.sh
python ./sql_ai_gui_local_ollama.py
```
## Konfiguration
Per Environment Variablen (optional):
- `OLLAMA_BASE_URL` (Default: `http://127.0.0.1:11434`)
- `OLLAMA_MODEL` (Default: `jr-sql-expert:latest`)
- `OLLAMA_DOCKER_CONTAINER` (Default: `ollama`)
Beispiel:
```bash
OLLAMA_MODEL="jr-sql-expert:latest" OLLAMA_BASE_URL="http://127.0.0.1:11434" python sql_ai_gui.py
```
## Sicherheit
- Standardmäßig wird nur auf `127.0.0.1` gearbeitet.
- Runtime-Update nutzt `docker`. Wenn dein User keine Docker-Rechte hat, wird das fehlschlagen.
## Repo Layout
- `sql_ai_gui.py` die App (single-file)
- `docs/` kurze Doku (Markdown)
- `requirements.txt` falls du lieber via pip installierst
## License
MIT (siehe LICENSE)