Consolidated local ollama model logic
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user