KI-gestützte Planungsunterstützung (4.5.9) + Kompetenzkatalog-Import (8.1.2)

KI-Unterstützung: neuer Einstellungen-Tab (Anmeldung, Guthaben) und Button im
Planungs-Tab, der Einheiten+Stunden als JSON an ein neues PHP-Backend (ai-backend/)
sendet und die Antwort als prüfbare Vorschlagsliste zurückbringt. Provider-Aufruf,
Guthabenverwaltung und Abrechnung nach echten Token-Kosten laufen serverseitig, der
Desktop-Client sieht nie einen LLM-API-Key. Zentral abgesichert: eine von der KI
zurückgegebene Stunden-Id, die zu keiner echten Lesson der Einheit passt, wird nie
als Update übernommen, sondern immer als neue Stunde behandelt.

Kompetenzkatalog-Import (8.1.2): JSON-Export/Import für Kompetenzkataloge.
This commit is contained in:
2026-08-16 01:31:14 +02:00
parent 2b4fda7bb3
commit 8495e1b8d0
40 changed files with 2326 additions and 51 deletions
+29
View File
@@ -0,0 +1,29 @@
<?php
declare(strict_types=1);
// CLI-Helfer zum Anlegen des ersten Nutzers (oder weiterer Lehrer später), siehe README.md.
// Aufruf: php scripts/create-user.php <benutzername> <passwort> [startguthaben_usd]
require_once __DIR__ . '/../db.php';
if (PHP_SAPI !== 'cli') {
fwrite(STDERR, "Nur über die Kommandozeile ausführen.\n");
exit(1);
}
[, $username, $password, $startBalance] = array_pad($argv, 4, null);
if ($username === null || $password === null) {
fwrite(STDERR, "Aufruf: php scripts/create-user.php <benutzername> <passwort> [startguthaben_usd]\n");
exit(1);
}
$config = require __DIR__ . '/../config.php';
$pdo = ai_backend_db($config);
$hash = password_hash($password, PASSWORD_DEFAULT);
$balance = $startBalance !== null ? (float) $startBalance : 0.0;
$stmt = $pdo->prepare('INSERT INTO users (username, password_hash, balance_usd) VALUES (?, ?, ?)');
$stmt->execute([$username, $hash, $balance]);
echo "Nutzer '$username' angelegt, Startguthaben: " . number_format($balance, 2) . " USD.\n";