Gutachten-Modul¶
Das Gutachten-Modul ist das umfangreichste Modul der Suite (~5.500 LOC). Es unterstützt die vollständige Erstellung von Compliance-Gutachten für regulatorische Frameworks wie DORA, NIS2, CRA, ISO 27001, DSGVO, AI Act und BSI-Grundschutz.
Verzeichnisstruktur¶
gutachten/
├── __init__.py
├── __main__.py
├── config.py # Framework-Konfiguration + Prüfungsfokus
├── db.py # SQLite-Schema + CRUD
├── file_download.py # Framework-Dokumente herunterladen
├── io_xlsx.py # Fragebogen XLSX lesen/schreiben
├── io_pdf.py # PDF-Textextraktion (pdfplumber)
├── prompts.py # Fragen- und Gutachten-Prompts
├── gutachten_gen.py # Orchestrierung der Gutachten-Erstellung
├── gui_module.py # Hauptfenster (GutachtenModuleFrame)
├── _panel_gutachten.py # Fragebogen-Editor-Panel
└── _download_dialog.py # Download-Dialog
Unterstützte Frameworks¶
| Framework | Kürzel | Dokument-Typ | Download |
|---|---|---|---|
| Digital Operational Resilience Act | DORA |
EUR-Lex PDF | Automatisch |
| Network and Information Security 2 | NIS2 |
EUR-Lex PDF | Automatisch |
| Cyber Resilience Act | CRA |
EUR-Lex PDF | Automatisch |
| ISO/IEC 27001:2022 | ISO27001 |
XLSX-Fragebogen | Manuell einlegen |
| Datenschutz-Grundverordnung | DSGVO |
EUR-Lex PDF | Automatisch |
| EU AI Act | AI_ACT |
EUR-Lex PDF | Automatisch |
| BSI IT-Grundschutz | BSI |
BSI-Webseite | Automatisch |
Konfiguration¶
Datei: gutachten.config.json
| Schlüssel | Standard |
|---|---|
paths.dora_dir |
data/dora_downloads |
paths.nis2_dir |
data/nis2_resources |
paths.cra_dir |
data/cra_resources |
paths.iso_dir |
data/iso27001_questionnaires |
paths.dsgvo_dir |
data/dsgvo_resources |
paths.ai_act_dir |
data/ai_act_resources |
paths.bsi_dir |
data/bsi_resources |
paths.db_path |
data/db/gutachten.sqlite |
paths.prompts_dir |
out/gutachten/prompts |
paths.answers_dir |
out/gutachten/answers |
paths.fragebogen_dir |
out/gutachten/fragebogen |
paths.ausgefuellt_dir |
out/gutachten/ausgefuellt |
paths.gutachten_dir |
out/gutachten/gutachten |
| Schlüssel | Beschreibung |
|---|---|
ui.projekt_name |
Projektname für Dateinamen |
ui.frameworks |
Ausgewählte Frameworks (Liste) |
ui.pruefungsfokus |
Beschreibung des Prüfungsumfangs |
ui.debug_mode |
Debug-Logging aktivieren |
ui.test_mode |
Eingeschränkte Verarbeitung |
| Schlüssel | Beschreibung |
|---|---|
prompt.fragen_header |
Einleitung für Interview-Fragen-Prompt |
prompt.gutachten_header |
Einleitung für Gutachten-Prompt |
prompt.bewertung_skala |
["erfüllt", "teilweise erfüllt", "nicht erfüllt", "nicht anwendbar"] |
prompt.fragen_batch_size |
Fragen pro Prompt-Batch (Standard: 15) |
Datenmodelle¶
@dataclass
class Doc:
url: str
framework: str
doc_name: str
...
@dataclass
class ImportedQuestion:
question_id: str
framework: str
section_ref: str
title: str
question: str
answer: str | None
bewertung: str | None # "erfüllt" | "teilweise erfüllt" | ...
bemerkung: str | None
Datenbankstruktur¶
framework_documents¶
Metadaten zu heruntergeladenen/importierten Dokumenten.
framework_sections¶
Extrahierte Textabschnitte, indiziert nach Framework und Abschnittsreferenz (z.B. Art. 5).
framework_metadata¶
Konfigurationsschlüssel/-werte (z.B. Indexierungszeitpunkt).
PDF-Extraktion¶
gutachten/io_pdf.py nutzt pdfplumber zur Textextraktion:
- Seitenweise Extraktion
- Abschnittsidentifikation über Überschriften-Erkennung
- Referenzerkennung (Artikel-Nummern, Paragrafen)
- Seitenzahl-Persistenz für spätere Quellangaben
Gutachten-Generierung¶
gutachten/gutachten_gen.py orchestriert:
- Antworten aus DB laden
- Bewertungen aggregieren (Erfüllungsgrad je Framework)
- Gutachten-Prompt mit Antworten und Bewertungsskala erstellen
- JSON-Antwort von ChatGPT empfangen
- DOCX mit formatiertem Gutachten exportieren
DOCX-Ausgabe enthält:¶
- Deckblatt (Projektname, Frameworks, Datum, Prüfer)
- Executive Summary
- Framework-Kapitel mit Bewertungen
- Interviewtabelle (Frage / Antwort / Bewertung)
- Empfehlungen
- Quellen-/Regulatorik-Verzeichnis
Fragebogen-Editor (GutachtenEditorPanel)¶
gutachten/_panel_gutachten.py
Eine ttk.Frame-Unterklasse, die eine tabellarische Ansicht der Interview-Fragen mit: - Inline-Antwortbearbeitung - Bewertungs-Dropdown (erfüllt / teilweise erfüllt / nicht erfüllt / nicht anwendbar) - Freitextfeld für Bemerkungen - Navigation durch Fragen
GUI-Funktionen¶
| Funktion | Beschreibung |
|---|---|
| Framework-Download | Öffnet _DownloadDialog für automatische Downloads |
| PDFs einlesen | Extrahiert Text und speichert in DB |
| Interviewfragen generieren | Erstellt Fragen-Prompt aus DB-Inhalten |
| Fragebogen exportieren | XLSX-Fragebogen mit Fragen erstellen |
| Ausgefüllten Fragebogen importieren | Antworten aus XLSX in DB laden |
| Gutachten erstellen | Gutachten-Prompt generieren |
| Gutachten exportieren | Fertiges DOCX-Gutachten ausgeben |
Download-Dialog¶
gutachten/_download_dialog.py
Zeigt verfügbare Dokumente je Framework mit: - Download-Status (ausstehend / heruntergeladen / Fehler) - Manuelle Auswahl einzelner Dokumente - Fortschrittsanzeige - Fehlerprotokoll
Sicherheitshinweise¶
- Downloads werden nur von konfigurierten, bekannten URLs (EUR-Lex, BSI) durchgeführt
- Heruntergeladene PDFs werden auf Dateigröße geprüft
- XLSX-Fragebogen werden gegen Office-Archive-Validierung geprüft