Steuer-News aktuell
Viele „KI-Chats“ wirken beeindruckend – solange sie nur allgemeines Wissen wiedergeben. In der Praxis (Audit, Compliance, Fachabteilungen) zählt aber etwas anderes: Antworten müssen aus konkreten Dokumenten stammen und nachvollziehbar belegt sein. Genau dafür eignet sich RAG (Retrieval-Augmented Generation): Erst werden passende Textstellen aus deinen Unterlagen gefunden, dann wird darauf basierend geantwortet.
In diesem Beitrag zeige ich ein Verfahren, das vollständig im Browser online läuft, aber trotzdem lokale Ordner einliest und einen Such-/Chat-Workflow ermöglicht – inklusive inkrementellem Update und sauberer Quellenreferenz:
PDF: Treffer mit Seitenzahl
Nicht-PDF (TXT/MD/CSV/JSON/XML/HTML/DOCX): Treffer mit Zeilen n–m
Hinweis: Das Beispiel nutzt im Kern ein Retrieval (BM25). Eine echte LLM-Antwortgenerierung kannst du optional später ergänzen (z. B. via API). Der zentrale Mehrwert hier ist der belastbare Retrieval-Layer inkl. Quellen.
1) Datenaufnahme (Ingestion)
Du lädst eine Dummy-Quelle (z. B. Wikipedia-Summary) per Button, um das System sofort zu testen.
Optional wählst du einen lokalen Ordner aus:
Chromium/Edge: showDirectoryPicker() (HTTPS oder localhost)
Firefox: Fallback per webkitdirectory
2) Parsing / Extraktion
PDF wird mit PDF.js seitenweise extrahiert, damit Treffer später korrekt als „Seite X“ referenziert werden können.
DOCX wird im Browser via Mammoth.js in Text umgewandelt.
Weitere Textformate werden direkt gelesen (CSV/JSON/XML/HTML werden dabei in ein gut chunkbares Textformat umgeformt).
3) Cleaning (Qualitätssicherung)
Whitespace-Normalisierung, aber Zeilen werden bewusst erhalten, damit wir später Zeilenbereiche als Quellenangabe ausweisen können.
Bei CSV: Erkennung des Trennzeichens und zeilenorientierte Darstellung.
Bei HTML: Entfernen von Skript/Style/Navigation und Extraktion des sichtbaren Textes.
4) Chunking
Dokumente werden in Chunks zerlegt, die „retrieval-freundlich“ sind:
wortsaubere Chunk-Grenzen (kein Start mitten im Wort)
Overlap (Überlappung) für Kontextstabilität
Zu jedem Chunk werden Metadaten berechnet:
PDF: page
Nicht-PDF: line_from / line_to (Zeilen n–m)
5) Index / Retrieval
Im Worker läuft ein BM25-Index:
Tokenisierung + Stopword-Filter (DE/EN)
BM25-Scoring
Ergebnisliste (Top-K) inkl. Kontext-Snippet um den Treffer herum (nicht einfach Chunk-Start)
6) Inkrementelles Update
Beim erneuten Ordner-Scan werden Dateien über Signatur erkannt (Pfad + Größe + lastModified):
unveränderte Dateien werden nicht neu verarbeitet
geänderte Dateien: alte Chunks werden gelöscht, neue erzeugt
gelöschte Dateien: Chunks werden entfernt
7) Persistenz (Cache)
Alle Chunks + Dateisignaturen werden in IndexedDB gespeichert:
Browser schließen/öffnen → Cache laden → sofort wieder suchbar
Kein Server-State nötig
Für professionelle Nutzung ist es nicht genug, „irgendwo stand das“ zu sagen. Du willst:
schnell zur Stelle springen
bei Reviews/Audits die Quelle belegen
Ergebnisse reproduzierbar machen
Darum ist die Quelle in unserem Tool nicht nur „Dokumentname“, sondern:
PDF Seite X
Text Zeilen n–m
Das ist die Brücke zwischen KI-UX und klassischer Nachvollziehbarkeit.
Damit das Ganze flüssig im Browser bleibt, gelten pragmatische Limits:
max. 2 MB pro Datei (konfigurierbar)
max. ~5 Mio Zeichen pro Scan (konfigurierbar)
Als Faustregel: Für interaktive Nutzung (ohne Warteorgien) ist ein Ordnerumfang im Bereich einige 10–200 Text/PDF-Seiten gut beherrschbar – abhängig von Gerät/Browser. Wenn du deutlich mehr brauchst:
aggressiver chunking/cleaning
Vorfilter (nur relevante Unterordner)
optional: „Index-Build“ in Batches, oder Worker-Sharding
interne Richtlinien, Arbeitsanweisungen, Prozessdokumente
Audit-/Prüfungsakten (PDF)
Log- und Exportdateien (CSV/JSON)
Projektdokumentation (MD/TXT)
Word-Dokumente als DOCX
Mit diesem Ansatz bekommst du eine nachvollziehbare RAG-Basis im Browser:
lokale Dokumente einlesen
inkrementell aktualisieren
schnell durchsuchen
Treffer mit Seiten und Zeilen belegen
Hierkommst du zum Online-Demo des RAG-Systems!
Wenn du darauf aufbauen willst, ist der nächste Schritt die Antwortgenerierung über ein LLM (API oder eigenes Modell) – aber der kritische Teil für Professionalität ist oft genau das, was hier schon steht: guter Index + gute Quellen.
Ein modernes IDEA Python Dashboard ermöglicht interaktive, datengetriebene Prüfungsanalysen – vollständig offline, datenschutzkonform und direkt in CaseWare IDEA 12 und 13 nutzbar.
In diesem Beitrag zeige ich, wie sich mit Python und Plotly eine professionelle Audit Visualisierung umsetzen lässt – als:
Plotly IDEA 12 und 13 Lösung
browserbasierte PyScript-Version
vollständig isoliertes Offline Audit Dashboard
Klassische Excel-Analysen stoßen bei:
Millionen Buchungen
Vendor Concentration
Ausreißeranalysen
Periodenprüfungen
schnell an Grenzen.
Mit Plotly erhältst du:
✔ Interaktive Kreuzfilterung
✔ Mehrfachselektion (Lasso / Box)
✔ KPI-Neuberechnung in Echtzeit
✔ Drilldown bis auf Belegebene
✔ Export als revisionssichere HTML-Datei
In IDEA 12 und 13 lässt sich Python direkt verwenden:
import pandas as pd
import plotly.express as px
df = pd.read_csv("buchungen.csv", sep=";")
fig = px.bar(
df.groupby("lieferant")["betrag"].sum().reset_index(),
x="betrag",
y="lieferant",
orientation="h",
title="Top Lieferanten"
)
fig.write_html("audit_dashboard.html", include_plotlyjs="inline")
Vorteile:
vollständige Offline-Fähigkeit
keine Cloud
GoBD-konform archivierbar
Für maximale Datensicherheit wird Plotly vollständig inline eingebettet:
fig.write_html(
"audit_dashboard.html",
include_plotlyjs="inline",
full_html=True
)
Kein CDN.
Kein externer Request.
Keine Datenübertragung.
Ideal für:
Banken
Behörden
Interne Revision
Prüfungsumgebungen mit Netzrestriktionen
Mit PyScript läuft Python direkt im Browser:
<py-script>
import pandas as pd
import plotly.express as px
df = pd.read_csv("data.csv")
fig = px.histogram(df, x="betrag")
fig
</py-script>
Einsatzbereiche:
Online-Demo
Schulungen
Workshops
Mandantenpräsentationen
Die folgende Tabelle zeigt die wichtigsten Visualisierungen für eine professionelle Audit Visualisierung:
| Visualisierung | Prüfungszweck |
|---|---|
| Zeitreihe | Perioden-/Cut-Off-Prüfung |
| Top-N Balken | Vendor Concentration |
| Histogramm | Verteilung / Häufungen |
| Boxplot | Ausreißer je Lieferant |
| Heatmap | Monat × Konto |
| Treemap | Kontenhierarchie |
| Sankey | Zahlungsflüsse |
| Waterfall | Saldenbrücke |
| KPI Gauge | Ausreißerquote |
| Tabelle Top 100 | Detailprüfung |
Diese lassen sich vollständig offline betreiben.
Beispiel: Vendor-Klick filtert Zeitreihe neu
barEl.on("plotly_click", function(ev){
const vendor = ev.points[0].y;
selectedVendors.add(vendor);
rerender();
});
Monatsauswahl:
lineEl.on("plotly_click", function(ev){
const month = normMonth(ev.points[0].x);
selectedMonths.add(month);
rerender();
});
Ergebnis:
KPIs passen sich an
Histogramm aktualisiert sich
Tabelle zeigt gefilterte Top-100
Ein Offline Audit Dashboard bietet:
Keine Cloud
Keine externe JavaScript-Quelle
Keine CDN-Abhängigkeit
Archivierung als HTML
Versionierbarkeit
Reproduzierbarkeit
Das ist ein entscheidender Vorteil gegenüber klassischen BI-Lösungen.
👉 Hier geht es zur Demo und Test mit eigenen Daten:
https://majo2000.bplaced.net/python/audit_plotly_dashboard.html
Dort kannst du:
Lieferanten selektieren
Monate filtern
KPIs live neu berechnen
Detailtabellen anzeigen
Ein Plotly IDEA 12 und 13 Dashboard ist:
interaktiv
datenschutzkonform
offlinefähig
explorativ
revisionssicher
Es verbindet moderne Datenvisualisierung mit den Anforderungen der Wirtschaftsprüfung.
BMF im November 2025: Bericht zur Evaluierung des Gesetzes zum Schutz vor Manipulationen an digitalen Grundaufzeichnungen (Kassengesetz)
Neue ZUGFeRD-Version 2.4 veröffentlicht - Veröffentlichung unter https://www.ferd-net.de/aktuelles-veranstaltungen/aktuelles/news/neue-zugferd-version-24-veroeffentlicht-1
Unterpositionen ab sofort umsatzsteuerkonform nutzbar
Download unter https://www.ferd-net.de/download-zugferd