Recherche sémantique dans Obsidian : comment un index vectoriel local fonctionne sans base de données vectorielle
OpenAI
Ollama
OpenRouter
Cet article explique la mise en œuvre de la recherche sémantique dans le plugin Obsidian Vault Audit AI. L'auteur décrit comment les notes Markdown sont converties en vecteurs, pourquoi le système évite une base de données vectorielle distincte, et comment l'indexation incrémentale gère efficacement les modifications.
L'auteur de Vault Audit AI, un plugin communautaire pour Obsidian, a ajouté la recherche sémantique pour répondre aux limites de la recherche en texte intégral dans la prise de notes. Le plugin permet aux utilisateurs de rechercher des notes par leur sens, et non seulement par correspondance exacte de mots. L'index est stocké à l'intérieur du coffre Obsidian sans nécessiter de base de données vectorielle externe ni de serveur. Le système fonctionne en découpant les notes Markdown en morceaux, en intégrant chaque morceau avec un modèle, et en stockant les vecteurs dans un LocalVectorStore personnalisé. Le découpeur respecte les limites naturelles du document comme les titres et les listes, et maintient des métadonnées telles que le chemin des titres, le hash de contenu et les décalages source. Les fournisseurs d'intégration incluent OpenRouter, les API compatibles OpenAI et Ollama, tous derrière une interface commune. Le LocalVectorStore utilise un manifeste et un fichier binaire pour les vecteurs, avec des écritures atomiques garantissant la cohérence. L'indexation incrémentale compare les métadonnées et les hash de contenu pour éviter de recalculer les intégrations pour les morceaux inchangés. L'auteur souligne l'importance de séparer les composants et mentionne des défis liés aux courses asynchrones qui ont été détectées malgré la réussite des tests.
Source: Habr — хаб ИИ —
original
