feat(orgs): KI-Verarbeitung organisationsweit einstellbar
Der Monitor löst den KI-Weg als Lage vor Organisation vor Servervorgabe auf und liest dafür das Org-Setting ai_backend. Geschrieben werden konnte es bisher nur direkt in der Datenbank, eine Oberfläche gab es nicht. Für einen Kunden, der die DSGVO-Fassung will, ist das der praktisch wichtigste Weg, denn der stellt einmal zentral um und nicht Lage für Lage. Das Feld steht jetzt dort, wo die Pipeline-Sprache schon steht, also als eigene Spalte in der Lizenztabelle der aktiven Lizenz, und zusätzlich im Anlege-Dialog für neue Organisationen. Drei Werte. Leer bedeutet Servervorgabe, cli den heutigen Weg über Anthropic, bedrock die EU-Fassung über AWS Bedrock in Frankfurt mit Recherche über den europäischen Suchindex staan. Der Leerstring ist dabei ein gültiger Wert und keine fehlende Angabe. Der Router prüft deshalb auf None statt auf Wahrheit, sonst ließe sich eine gesetzte Vorgabe nie wieder auf die Servervorgabe zurücknehmen. 26 Prüfungen, ohne Datenbank und ohne Netz. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -46,7 +46,7 @@ src/:
|
||||
health_run.py: "In-Memory-Status des manuellen Health-Runs (pure Funktionen, unit-testbar). Der Knopf Jetzt prüfen ruft die geteilten Dienste source_health + source_suggester auf (POST /api/sources/health/run, Polling über GET /health/run-status). Zusätzlich zum Monitor-Nachtjob um 04:00. Status ist nach Neustart idle, partieller Stand heilt beim nächsten Lauf"
|
||||
|
||||
routers/:
|
||||
organizations.py: "CRUD Mandanten (organizations + Org-Settings + Token-Budget)"
|
||||
organizations.py: "CRUD Mandanten (organizations + Org-Settings inkl. output_language und ai_backend + Token-Budget)"
|
||||
licenses.py: "CRUD Lizenzen (Org-Lizenzen, Ablauf, Nutzer-Limit, Module, Credits-Stellwerte inkl. Periode; Helper insert_license_row wird auch vom Org-Anlegen genutzt). Kein Credits-Übertrag mehr (Produktentscheidung 07/2026, ungenutzte Credits verfallen)"
|
||||
users.py: "CRUD User pro Org, Magic-Link-Einladung an info@aegis-sight.de"
|
||||
sources.py: "Vereinte Quellenliste (GET /api/sources?scope=all|global|tenant inkl. org_name + health_status), Stats/Languages, Einzelquellen-Health (GET /{id}/health), Aufgaben-Badge (GET /tasks/summary), Promote, Discovery, PDF-Upload, KI-Vorschläge, Klassifikation"
|
||||
@@ -219,6 +219,7 @@ tests:
|
||||
test_models.py: Pydantic-Validierung (MagicLink, Org, License, User)
|
||||
test_source_meta.py: Single Source of Truth Konsistenz
|
||||
test_imports.py: alle Backend-Module importierbar (Syntax-Catchnet)
|
||||
test_org_ki_vorgabe.py: organisationsweiter KI-Weg (ai_backend), Modelle, Router und Oberflaeche. Der Leerstring bedeutet Servervorgabe und muss von einer fehlenden Angabe unterscheidbar bleiben
|
||||
|
||||
philosophie:
|
||||
- reine Unit-Tests, kein DB-Zugriff, kein HTTP-Server
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren