Skip to content

πŸ“¦ Semantic Backup Explorer

CI Python Versions License: MIT Ruff codecov

Ein Python-basiertes Tool zur Synchronisation, Analyse und semantischen Durchsuchung von Backups auf externen Festplatten.

Der Semantic Backup Explorer hilft dir dabei, den Überblick über deine verstreuten Backups auf verschiedenen externen Laufwerken zu behalten. Der Fokus liegt auf einem einfachen One-Click Sync, um deine tÀgliche Arbeit schnell und unkompliziert zu sichern. Optional kannst du modernste KI-Technologie (Large Language Models) nutzen, um deine Dateien auffindbar zu machen.


πŸ€” Warum Semantic Backup Explorer?

Hast du mehrere externe Festplatten und mâchtest sicherstellen, dass dein aktuelles Projekt auf dem richtigen Backup-Stand ist? Oder suchst du verzweifelt nach Dateien, ohne jede Platte einzeln anschließen zu wollen?

Hier kommt der Semantic Backup Explorer ins Spiel:

  1. Blitzschneller Abgleich (One-Click Sync): WΓ€hle einen lokalen Ordner, und die App findet automatisch das passende Backup-GegenstΓΌck und zeigt dir, was fehlt.
  2. Kompakter Index: Die App speichert die Struktur deiner Festplatte in einer kleinen Textdatei. So weißt du immer, was wo liegt, auch wenn die Platte im Schrank liegt.
  3. KI-Suche (Optional): Die KI versteht ZusammenhΓ€nge (z.B. findet sie "Rechnungen", wenn du nach "Finanzen" suchst) und hilft dir, den richtigen Backup-Ordner zu finden.

🌟 Hauptfunktionen

  • πŸ”„ One-Click Sync: Kopiere fehlende oder neuere Dateien mit nur einem Klick auf dein Backup-Laufwerk.
  • πŸ“‚ Intelligenter Abgleich: Findet automatisch den richtigen Zielordner auf deinem Backup.
  • πŸ” Semantische Suche (Optional): Frage einfach: "Wo habe ich meine Python-Projekte gesichert?"
  • 🏷️ Laufwerks-Erkennung: Erkennt automatisch den Namen (Label) deiner Festplatten unter Windows.

πŸš€ Schnellstart (5 Minuten)

1. Installation

Basis (Sync & Index):

git clone https://github.com/dgaida/semantic-backup-explorer.git
cd semantic-backup-explorer
pip install -e .

Optional (Semantische Suche):

pip install -e ".[semantic]"
cp .env.example .env
# Trage deinen GROQ_API_KEY in .env ein

2. Web-App starten

python -m semantic_backup_explorer.cli.ui.gradio_app
Γ–ffne http://localhost:7860 und starte deinen ersten Sync!


πŸ— Architektur

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Gradio Web UI  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Sync & Compare  │◄────── Backup Index β”‚
β”‚ (Core Logic)    β”‚      β”‚ (Markdown)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ (Optional)
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ RAG Pipeline    │◄──────  ChromaDB    β”‚
β”‚ (Semantic)      β”‚      β”‚  (Embeddings)β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Projektstruktur

semantic_backup_explorer/
β”œβ”€β”€ cli/            # CLI-spezifische Logik & UI
β”‚   β”œβ”€β”€ commands/   # ZukΓΌnftige CLI Commands
β”‚   └── ui/         # Gradio Web Interface
β”œβ”€β”€ core/           # Kern-Businesslogik (BackupOperations)
β”œβ”€β”€ indexer/        # Scanning-Logik
β”œβ”€β”€ chunking/       # Markdown Partitionierung
β”œβ”€β”€ rag/            # Embedding & Retrieval
β”œβ”€β”€ compare/        # Folder Diffing
β”œβ”€β”€ sync/           # Datei Synchronisation
β”œβ”€β”€ utils/          # Hilfsfunktionen (Config, Logging, Paths)
└── exceptions.py   # Custom Exceptions

βš™οΈ Kernfunktionen

  • πŸ”„ One-Click Sync: Kopiere fehlende oder neuere Dateien mit nur einem Klick auf dein Backup-Laufwerk.
  • πŸ“„ Backup-Index: Erfasse die Struktur deiner Backup-Laufwerke als kompakte Markdown-Datei.
  • πŸ” Semantische Suche (Optional): Nutze KI (LLMs), um deine Backups in natΓΌrlicher Sprache zu durchsuchen.

❓ Troubleshooting

"GROQ_API_KEY nicht gefunden"

Stelle sicher, dass die .env Datei im Root-Verzeichnis existiert und einen gΓΌltigen API-Key enthΓ€lt:

echo "GROQ_API_KEY=gsk_xxx" > .env

"Python 3.14+ nicht unterstΓΌtzt"

Das Projekt nutzt ChromaDB, welches aktuell InkompatibilitΓ€ten mit Python 3.14+ aufweist. Nutze Python 3.10-3.13.


πŸ›  Entwicklung

Details zur Entwicklung, Testing und CI/CD findest du in der CONTRIBUTING.md. Detailed documentation is available in the docs/ folder.

Tests ausfΓΌhren

pytest

πŸ“œ Lizenz

MIT License