Lokaler Rechtschreib- und Grammatikserver als Drop-in-Ersatz für LanguageTool. Läuft komplett offline mit GGUF-Modellen über llama.cpp — kein Cloud-Zugang nötig.
- Startet einen Express-Server auf Port 9099 (LanguageTool-kompatibles API)
- Lädt beim Start ein GGUF-Modell einmalig über
llama-server(Port 8081 intern) - Nutzt GPU-Offloading via Vulkan (AMD/NVIDIA) — Modell bleibt dauerhaft im Speicher
- Vergleicht Original- und korrigierten Text mit einem LCS-Diff und gibt Fehler mit Offsets zurück
- Node.js
- llama.cpp gebaut mit Vulkan-Support (siehe unten)
- Ein GGUF-Modell im Ordner
models/
Modelle als .gguf-Datei in den Ordner models/ legen.
Aktives Modell in config.js über SELECTED_MODEL_ID auswählen.
| ID | Dateiname | Größe | Geschwindigkeit | Qualität | Download |
|---|---|---|---|---|---|
| 1 | rwkv7-2.9B-g1-q4_k_m.gguf |
1.9 GB | < 10 s | befriedigend (de/en/fr) | shoumenchougou/RWKV7-G1d-2.9B-GGUF |
| 2 | Mistral-Nemo-Instruct-2407-Q6_K.gguf |
9.4 GB | ~30 s | gut | bartowski/Mistral-Nemo-Instruct-2407-GGUF |
| 3 | Qwen2.5-7B-Instruct-Q6_K.gguf |
5.8 GB | < 10 s | gut, passt komplett in 8 GB VRAM ✅ | bartowski/Qwen2.5-7B-Instruct-GGUF |
Empfehlung: Modell 3 (Qwen2.5-7B) bei GPU mit ≥ 6 GB VRAM.
Nur einmalig nötig. Danach liegen die Binaries in llama.cpp/build/bin/.
cd llama.cpp
cmake -B build -DGGML_VULKAN=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build --target llama-server -j$(nproc)Vulkan muss auf dem System installiert sein (vulkaninfo zum Prüfen).
Für AMD: libvulkan_radeon, für NVIDIA: libvulkan_nvidia / CUDA-Build.
node spellcheck-server.jsoder
npm startBeim ersten Start wird das Modell geladen — das dauert je nach Größe 5–60 Sekunden. Danach ist der Server bereit und bleibt bis zum Beenden geladen.
curl -X POST http://localhost:9099/v2/check \
-H "Content-Type: application/json" \
-d '{"text":"Das ist einn Test mit Fehlern. Und dies ist ein anderer Satz der auch einen Fehla hat.", "language":"de-DE"}'Mit optionalen Prüfungs-Headern:
curl -X POST http://localhost:9099/v2/check \
-H "Content-Type: application/json" \
-H "X-Exam-Name: Mathe-Schularbeit" \
-H "X-Student-Name: Max Mustermann" \
-H "X-Exam-Pin: 1234" \
-d '{"text":"Das ist einn Test mit Fehlern.", "language":"de-DE"}'Unterstützte Sprachen: de-DE, de-AT, de-CH, en-US, en-GB, it-IT, fr-FR, fr-CH
Im Unterordner LT/ befindet sich Klartext, ein Electron-basierter Editor zum direkten Testen des Servers.
Er zeigt Fehler farbkodiert als Unterstreichungen im Text und listet sie in einer Seitenleiste auf.
cd LT
npm install # einmalig
npm run devOder direkt aus dem Projektroot:
npm run klartextDer Spellcheck-Server muss laufen (
npm startim Projektroot), bevor der Editor geöffnet wird.
spellcheck-server.js — Express-Server, Route, Startup
config.js — Modelle, Ports, Pfade (hier SELECTED_MODEL_ID ändern)
llm-server.js — llama-server starten/stoppen
inference.js — Prompt aufbauen, HTTP-Call, Rohtext bereinigen
diff.js — Word-Diff (LCS), Whitespace-Check, LT-Response bauen
LT/ — Klartext Test-Editor (Electron + Vue)
models/ — GGUF-Modelldateien (nicht im Git)
llama.cpp/ — llama.cpp Quellcode + Build-Artefakte (nicht im Git)
