85 lines
2.5 KiB
Markdown
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`
|