mindnet/docs/Handbuch.md
Lars ce720090ec
Some checks failed
Deploy mindnet to llm-node / deploy (push) Failing after 1s
docs/Handbuch.md aktualisiert
2025-09-07 07:48:59 +02:00

5.7 KiB
Raw Blame History

📘 Mindnet Skript-Handbuch

Dieses Handbuch dokumentiert die implementierten Skripte für das Projekt mindnet Wissensnetzwerk.
Es beschreibt Zweck, Parameter und typische Aufrufe. Alle Beispiele sind geprüft und lauffähig.

Alle Skripte liegen in ~/mindnet/scripts/.
Ausführung erfolgt im aktivierten venv:

cd ~/mindnet
source .venv/bin/activate

1. Vault anlegen (für Tests)

make_test_vault.py

Zweck:
Erstellt einen kleinen, nachvollziehbaren Test-Vault mit Markdown-Dateien.
Szenarien: offene Links, nachträgliche Anlage fehlender Notes, geänderte Chunk-Grenzen.

Parameter:

  • --out PATH : Zielverzeichnis (Default: ./test_vault)
  • --force : Existierenden Ordner löschen und neu anlegen
  • --with-missing : Optional auch die missing-note gleich anlegen

Hinweise für Tests

  1. Erster Import (dry-run oder --apply): Es gibt einen „leeren“ Link missing-note.
  2. Lege danach eine Datei für „missing-note“ an (mit gleicher ID im YAML) und importiere erneut: -> Erwartung: Edges für ehemals leeren Link werden korrekt nachgezogen (references + backlink).
  3. Ändere den Body von exp-one.md so, dass andere Chunk-Grenzen entstehen und importiere erneut: -> Erwartung: Chunks/Edges/Note werden für betroffene Noten aktualisiert.

Kompatibel mit:

  • note.schema.json: 'created'/'updated' müssen strings sein. (Wichtig!)

Beispiele:

python3 -m scripts.make_test_vault --out ./test_vault --force
python3 -m scripts.make_test_vault --out ./test_vault --force --with-missing

2. Import in Qdrant

import_markdown.py

Zweck:
Importiert Notes/Chunks/Edges aus einem Vault nach Qdrant.

  • prüft Frontmatter
  • chunked Inhalte + Embeddings
  • erzeugt Edges (references, references_at, backlink)
  • erkennt geänderte Dateien automatisch
  • optional: Purge der alten Chunks/Edges pro Note

Parameter:

  • --vault PATH : (Pflicht) Vault-Verzeichnis
  • --apply : Änderungen wirklich durchführen (sonst Dry-Run)
  • --purge-before-upsert : Vor Upsert alte Chunks/Edges nur der geänderten Notes löschen
  • --note-id ID : Nur eine bestimmte Note importieren

Beispiele:

python3 -m scripts.import_markdown --vault ./vault
python3 -m scripts.import_markdown --vault ./vault --apply
python3 -m scripts.import_markdown --vault ./vault --apply --purge-before-upsert

3. Konsistenzprüfungen

audit_vault_vs_qdrant.py

Zweck:
Vergleicht Vault-Inhalte mit Qdrant.

  • Zählt Notes/Chunks/Edges
  • Verifiziert Anzahl Wikilinks vs. Edges
  • Meldet Mismatches pro Note

Parameter:

  • --vault PATH : Vault-Verzeichnis
  • --prefix STR : Prefix für Qdrant-Collections (Default: mindnet)

Beispiel:

python3 -m scripts.audit_vault_vs_qdrant --vault ./vault --prefix mindnet

validate_edges.py

Zweck:
Prüft die Edges-Collection in Qdrant.

  • Zählt Edges pro Typ
  • Kontrolliert Invarianten (z. B. jede Reference hat Backlink)
  • Listet unresolved Edges auf

Parameter:

  • --prefix STR : Prefix für Qdrant-Collections
  • --details : Detailausgabe mit Beispielen

Beispiel:

python3 -m scripts.validate_edges --prefix mindnet --details

4. Qdrant zurücksetzen

reset_qdrant.py

Zweck:
Setzt die Qdrant-Collections zurück.

  • „wipe“: löscht Collections komplett (inkl. Schema)
  • „truncate“: löscht nur Inhalte, behält Collections

Parameter:

  • --mode {wipe,truncate} : Aktion
  • --prefix STR : Prefix der Collections (Default: mindnet)
  • --yes : Automatische Bestätigung
  • --dry-run : Nur anzeigen, nicht ausführen

Beispiele:

python3 -m scripts.reset_qdrant --mode truncate --prefix mindnet --yes
python3 -m scripts.reset_qdrant --mode wipe --prefix mindnet --yes

5. Diagnose

diagnose_changed.py

Zweck:
Prüft, ob die Datei-Hashes (sha256) mit den gespeicherten hash_fulltext in Qdrant übereinstimmen.
Hilft, wenn der Importer zu viele Dateien als „changed“ erkennt.

Parameter:

  • --vault PATH : Vault-Verzeichnis
  • --prefix STR : Prefix (Default: mindnet)
  • --note-id ID : Nur bestimmte Note prüfen
  • --all : Alle Notes prüfen

Beispiel:

python3 -m scripts.diagnose_changed --vault ./vault --prefix mindnet --all

resolve_unresolved_references.py

Zweck:
Prüft offene Wikilinks (status=unresolved) und fügt Edges nach, wenn inzwischen passende Notizen existieren.

Parameter:

  • --prefix STR : Prefix für Qdrant-Collections
  • --apply : Änderungen wirklich ausführen (sonst nur Vorschau)

Beispiele:

python3 -m scripts.resolve_unresolved_references --prefix mindnet
python3 -m scripts.resolve_unresolved_references --prefix mindnet --apply

Typische Workflows

A) Vault neu importieren

python3 -m scripts.reset_qdrant --mode truncate --prefix mindnet --yes
python3 -m scripts.import_markdown --vault ./vault --apply
python3 -m scripts.audit_vault_vs_qdrant --vault ./vault --prefix mindnet

B) Änderungen einspielen (mit Purge für geänderte Notes)

python3 -m scripts.import_markdown --vault ./vault --apply --purge-before-upsert
python3 -m scripts.audit_vault_vs_qdrant --vault ./vault --prefix mindnet
python3 -m scripts.resolve_unresolved_references --prefix mindnet --apply
python3 -m scripts.validate_edges --prefix mindnet --details

D) Test-Vault Szenario durchspielen

python3 -m scripts.make_test_vault --out ./test_vault --force
python3 -m scripts.import_markdown --vault ./test_vault --apply
python3 -m scripts.audit_vault_vs_qdrant --vault ./test_vault --prefix mindnet