Obsidian Semantic Search: So funktioniert ein lokaler Vektorindex ohne Vektordatenbank
OpenAI
Ollama
OpenRouter
Der Artikel erläutert die Implementierung der semantischen Suche im Obsidian-Plugin Vault Audit AI. Der Autor beschreibt, wie Markdown-Notizen in Vektoren umgewandelt werden, warum das System auf eine separate Vektordatenbank verzichtet und wie inkrementelles Indexieren Änderungen effizient verarbeitet.
Der Autor von Vault Audit AI, einem Obsidian-Community-Plugin, hat semantische Suche hinzugefügt, um die Einschränkungen der Volltextsuche in der Notizverwaltung zu beheben. Das Plugin ermöglicht es Benutzern, Notizen nach Bedeutung zu durchsuchen, nicht nur nach exakten Wortübereinstimmungen. Der Index wird im Obsidian-Vault gespeichert, ohne dass eine externe Vektordatenbank oder ein Server erforderlich ist. Das System funktioniert, indem es Markdown-Notizen in Abschnitte zerlegt, jeden Abschnitt mit einem Modell einbettet und die Vektoren in einem benutzerdefinierten LocalVectorStore speichert. Der Zerleger respektiert natürliche Dokumentgrenzen wie Überschriften und Listen und pflegt Metadaten wie Überschriftspfad, Inhalts-Hash und Quell-Offsets. Zu den Einbettungsanbietern gehören OpenRouter, OpenAI-kompatible APIs und Ollama, alle hinter einer gemeinsamen Schnittstelle. Der LocalVectorStore verwendet ein Manifest und eine Binärdatei für Vektoren, wobei atomare Schreibvorgänge Konsistenz gewährleisten. Die inkrementelle Indizierung vergleicht Metadaten und Inhalts-Hashes, um die Neuberechnung von Einbettungen für unveränderte Abschnitte zu vermeiden. Der Autor betont die Bedeutung der Trennung von Komponenten und erwähnt Herausforderungen mit asynchronen Rennbedingungen, die trotz bestandener Tests entdeckt wurden.
Quelle: Habr — хаб ИИ —
Original
