Zum Hauptinhalt springen
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
.mdwird 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
.gitodernode_modules.
Robustheit
- PDF-Prüfung mit qpdf: Jedes PDF wird vorab mit
qpdf --checkgetestet. 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
.mdnicht 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 = Falsewerden 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]
