Add AI review workflow for Paperless documents

This commit is contained in:
2026-05-07 20:04:30 +02:00
parent 210b77876d
commit f913bc0ba6
24 changed files with 2169 additions and 15 deletions

View File

@@ -11,6 +11,7 @@ Begleitdienst zur Verwaltung von Vertragsmetadaten (Laufzeiten, Kündigungsfrist
-**Kategorie-Verwaltung:** Dropdown mit Vorschlägen, Inline-Neuanlage im Formular & Verwaltung unter Einstellungen.
-**Modernes React-Frontend** (Vite + MUI) mit Dashboard, Vertragsliste, Kalender, Detailansicht und umfangreichen Einstellungen.
-**Benachrichtigungen & Automatisierung:** Scheduler prüft Deadlines, optionaler Mailversand, ntfy-Push, iCal-Feed zum Abonnieren.
-**AI-gestützte Dokumentprüfung:** Paperless-Webhooks können neue Dokumente zur Analyse einreihen; Verträge werden nach manueller Freigabe angelegt und nach Paperless zurückgeschrieben.
-**Konfigurierbare Authentifizierung:** Optionales Login mit JWT, Benutzername/Passwort verwaltbar in den Settings.
-**Mehrsprachigkeit:** UI derzeit auf Deutsch und Englisch lokalisiert.
-**Docker-ready:** Backend und Frontend als Container, Konfiguration via `docker-compose.yml`.
@@ -99,6 +100,12 @@ Für Portainer-Deployments ist `docker-compose.yml` als Git-basierter Stack vorb
| `MAIL_SERVER` / `MAIL_PORT` / `MAIL_USERNAME` / `MAIL_PASSWORD` | *(leer)* | SMTP-Settings (TLS optional über `MAIL_USE_TLS`). |
| `MAIL_FROM` / `MAIL_TO` | *(leer)* | Absender/Empfänger für Mail-Benachrichtigungen. |
| `ICAL_SECRET` | *(leer)* | Optional vorgegebenes Token für den iCal-Feed. |
| `AI_ENABLED` | `false` | Aktiviert AI-Analyse, wenn Provider, Modell und API-Key gesetzt sind. |
| `AI_PROVIDER` | *(leer)* | `openai`, `openai-compatible` oder `gemini`. |
| `AI_BASE_URL` | *(Provider-Standard)* | Optionaler Endpoint für OpenAI-kompatible Anbieter oder eigene Gateways. |
| `AI_MODEL` | *(leer)* | Modellname für die Vertragsanalyse. |
| `AI_API_KEY` | *(leer)* | API-Key des AI-Anbieters. |
| `PAPERLESS_WEBHOOK_SECRET` | *(leer)* | Shared Secret für Paperless-Webhooks an `/api/integrations/paperless/webhook`. |
### Paperless optional nutzen
@@ -124,6 +131,9 @@ Die Sprache der automatisch verschickten Benachrichtigungen (Mail, ntfy) kannst
- `POST /categories` Neue Kategorie (legt an oder liefert vorhandene).
- `DELETE /categories/:id` Kategorie entfernen.
- `GET /integrations/paperless/search?q=` Paperless-Dokumente per Text oder ID finden.
- `POST /integrations/paperless/webhook` Neues Paperless-Dokument zur AI-Prüfung einreihen.
- `GET /ai/reviews` AI-Prüfwarteschlange abrufen.
- `POST /ai/reviews/:id/approve` Vertragsentwurf freigeben, Vertrag anlegen und Paperless aktualisieren.
- `GET /reports/upcoming?days=` Deadlines innerhalb der nächsten `days` Tage.
- `GET /calendar/feed.ics?token=` iCal-Feed für Kündigungsfristen.