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

cp .env.example .env
./scripts/bootstrap.sh
echo "SELECT 1;" | ./bin/sqlai analyze-tsql

Verwendung (Copy & Paste)

T-SQL

cat query.sql | ./bin/sqlai analyze-tsql

Stored Procedure

cat dbo.usp_Something.sql | ./bin/sqlai analyze-proc

View

cat dbo.vw_Something.sql | ./bin/sqlai analyze-view

Execution Plan

  • Unterstützt Showplan XML oder Text.
./bin/sqlai analyze-plan --file showplan.xml

UTF-8 Migration Plan

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)

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
Description
Eine lokale AI Anwendung, welche die Unterstützung eines SQL Entwicklers oder Architekten in einem Projekt erlaubt.
Readme 57 KiB
Languages
Shell 100%