Files
jr-sql-ai/README.md

85 lines
2.5 KiB
Markdown

# jr-sql-ai (Terminal-first SQL Server Expert KI, lokal)
Ziel: Lokale Expert-KI für **SQL Server 2022** (T-SQL, Views, Stored Procedures, Execution Plans, UTF-8 Migration),
aufrufbar **vom Terminal**, ohne direkte DB-Verbindung (nur Copy & Paste / Dateien).
## Features
- **Einfacher Tech-Stack:** Docker + Ollama + Bash + curl + python
- **Host Networking:** nutzt den Host-Netzwerkstack (Routing/DNS wie Host; ideal wenn nur `br0` zuverlässig ist)
- **Auto-Updates:** Runtime + Models via `systemd --user` Timer
- **Viele Logs:** jede Ausführung schreibt detaillierte Logs unter `./logs/`
## Voraussetzungen (Arch Linux)
- docker + docker compose
- curl
- python (für JSON-Quoting/Parsing)
## Quickstart
```bash
cp .env.example .env
./scripts/bootstrap.sh
echo "SELECT 1;" | ./bin/sqlai analyze-tsql
```
## Verwendung (Copy & Paste)
### T-SQL
```bash
cat query.sql | ./bin/sqlai analyze-tsql
```
### Stored Procedure
```bash
cat dbo.usp_Something.sql | ./bin/sqlai analyze-proc
```
### View
```bash
cat dbo.vw_Something.sql | ./bin/sqlai analyze-view
```
### Execution Plan
- Unterstützt Showplan XML oder Text.
```bash
./bin/sqlai analyze-plan --file showplan.xml
```
### UTF-8 Migration Plan
```bash
cat schema_snippet.sql | ./bin/sqlai utf8-migration
```
## Prompt Library (Templates)
Unter `./prompts/` findest du Copy&Paste-Templates:
- `prompts/tsql_review.md`
- `prompts/plan_review.md`
- `prompts/utf8_migration_runbook.md`
- `prompts/indexing_checklist.md`
- `prompts/sniffing_stats_playbook.md`
- `prompts/proc_refactor_template.md`
- `prompts/view_analysis_template.md`
## Logs
- CLI Logs: `./logs/sqlai-YYYY-MM-DD.log`
- Bootstrap Logs: `./logs/bootstrap-YYYY-MM-DDTHH:MM:SS.log`
- Update Logs: `./logs/update-YYYY-MM-DDTHH:MM:SS.log`
Die Logs enthalten:
- Input-Bytes, Mode, Model
- Roh-Metriken aus Ollama (Token Counts, Durations)
- Fehler inkl. curl exit codes
## Auto-Updates aktivieren (systemd --user)
```bash
mkdir -p ~/.config/systemd/user
cp systemd/user/* ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now jr-sql-ai-update.timer
systemctl --user list-timers | grep jr-sql-ai
```
## Troubleshooting
- **API nicht erreichbar**: Prüfe `docker ps` und ob Port 11434 lokal erreichbar ist (Host-Netz).
- **Langsam/OOM**: setze `BASE_MODEL` kleiner (z.B. 7b) und re-run `./scripts/update.sh`.
- **Model fehlt**: `./scripts/update.sh` ausführen und prüfen ob `ollama list` im Container das Model zeigt:
`docker exec -it ollama ollama list`