Zum Hauptinhalt springen
Drucken

AI Knowledge Sync: NAS-Archiv als lokale KI-Wissensdatenbank

Ein Python-Skript, das E-Book-, PDF-, Text- und Quellcode-Archive von einer SMB-Freigabe (NAS) rekursiv in Markdown-Dateien umwandelt. Die Ausgabe lässt sich direkt mit KI-Werkzeugen wie Claude Code durchsuchen und nutzen. Die Originale auf dem NAS werden nie verändert.

Was es macht

  • Bindet die SMB/CIFS-Freigabe schreibgeschützt ein (ro,nosuid,nodev,noexec). Das Passwort liegt nur in einer kurzlebigen Datei mit Modus 0600 und wird nicht auf der Kommandozeile übergeben.
  • Hängt die Freigabe am Ende wieder aus, wenn das Skript sie selbst eingebunden hat.
  • Konvertiert PDF, EPUB, Text und Quellcode usw..alle nach Markdown. Die Endung .md wird angehängt (script.py → script.py.md), Quellcode landet in Codeblöcken mit passender Sprache.
  • Verarbeitet unveränderte Dateien nicht erneut. Geprüft werden Größe und Änderungszeit; SHA256 ist optional.
  • Läuft parallel (Standard: 20 Worker) und überspringt Dateien über 50 MB, Binärdateien und typische Ordner wie .git oder node_modules.

Robustheit

  • PDF-Prüfung mit qpdf: Jedes PDF wird vorab mit qpdf --check getestet. Beschädigte PDFs werden optional über eine temporäre Kopie repariert. Kann qpdf sie nicht retten, werden sie ohne langen Traceback übersprungen.
  • Gute Ergebnisse bleiben erhalten: Markdown-Dateien werden atomar geschrieben (temporäre Datei, dann ersetzen). Ein fehlgeschlagener Neuversuch kann eine bereits gute .md nicht mehr zerstören.
  • Defekte Dateien werden gemerkt: Sie werden beim nächsten Lauf übersprungen, solange sich Größe und Änderungszeit nicht ändern. Mit SKIP_KNOWN_BAD_FILES = False werden sie bei jedem Lauf neu versucht.
  • Ein Fehler stoppt nie den Gesamtlauf.

Bedienung

  • Der Gesamtbalken zeigt die Datenmenge. Darunter gibt es eine Zeile pro laufender Konvertierung mit Seiten- bzw. Kapitelfortschritt (SHOW_WORKER_BARS).
  • Strg+C stoppt sauber: Laufende Dateien werden abgebrochen, Index, Manifest und Fehlerprotokoll werden noch geschrieben, und die Freigabe wird ausgehängt. Der nächste Lauf macht dort weiter. Ein zweites Strg+C beendet sofort.

Ausgabe im Zielordner

Datei Inhalt
*.md konvertierte Dokumente in der Ordnerstruktur der Quelle
INDEX.md verlinkte Gesamtübersicht
manifest.json Metadaten aller Dateien, Grundlage für inkrementelle Läufe
fehlerprotokoll.tsv alle bekannten defekten Dateien mit Fehlertext
ai_knowledge_sync.log Detailprotokoll

Voraussetzungen und Start

bash
sudo apt install cifs-utils qpdf
pip install pdfplumber ebooklib beautifulsoup4 tqdm
python3 ai_knowledge_sync.py

Server, Freigabe, Unterordner, Zielordner, Worker-Zahl und die übrigen Optionen stehen oben im Skript im Konfigurationsblock. Benutzername und Passwort werden beim Start abgefragt. Alternativ kann eine geschützte Credentials-Datei verwendet werden (CREDENTIAL_MODE = "file").

Hier das Python Script zum [Download] 50,8 KB [SHA256=a63d6bb508101483ddeba8e94e4a1658254d9fecc4da3abdc2d6dda716601d35]