Obsidian semantisch zoeken: hoe een lokale vectorindex werkt zonder een vectordatabase
OpenAI
Ollama
OpenRouter
Het artikel legt de implementatie van semantisch zoeken in de Obsidian-plugin Vault Audit AI uit. De auteur beschrijft hoe Markdown-notities worden omgezet in vectoren, waarom het systeem een aparte vectordatabase vermijdt, en hoe incrementele indexering wijzigingen efficiënt verwerkt.
De auteur van Vault Audit AI, een Obsidian Community Plugin, heeft semantisch zoeken toegevoegd om de beperkingen van full-text zoeken in het notitieprogramma aan te pakken. De plugin stelt gebruikers in staat om notities te doorzoeken op betekenis, niet alleen op exacte woordovereenkomsten. De index wordt opgeslagen in de Obsidian-vault zonder dat er een externe vectordatabase of server nodig is. Het systeem werkt door Markdown-notities op te splitsen in stukken, elk stuk te embedden met een model, en de vectoren op te slaan in een aangepaste LocalVectorStore. De chunker respecteert natuurlijke documentgrenzen zoals koppen en lijsten, en behoudt metadata zoals het koppad, de inhoudshash en bruto-offsets. Embeddingproviders zijn onder andere OpenRouter, OpenAI-compatibele API's en Ollama, allemaal achter een gemeenschappelijke interface. De LocalVectorStore gebruikt een manifest en een binair bestand voor vectoren, met atomic writes voor consistentie. Incrementele indexering vergelijkt metadata en inhoudshashes om het opnieuw berekenen van embeddings voor ongewijzigde stukken te voorkomen. De auteur benadrukt het belang van het scheiden van componenten en noemt uitdagingen met asynchrone races die werden opgevangen ondanks dat tests slaagden.
Bron: Habr — хаб ИИ —
origineel
