Búsqueda Semántica en Obsidian: Cómo Funciona un Índice Vectorial Local sin una Base de Datos Vectorial
OpenAI
Ollama
OpenRouter
El artículo explica la implementación de la búsqueda semántica en el plugin Vault Audit AI de Obsidian. El autor describe cómo las notas Markdown se convierten en vectores, por qué el sistema evita una base de datos vectorial separada y cómo el indexado incremental maneja los cambios de manera eficiente.
El autor de Vault Audit AI, un plugin de la comunidad de Obsidian, añadió la búsqueda semántica para abordar las limitaciones de la búsqueda de texto completo en la toma de notas. El plugin permite a los usuarios buscar notas por significado, no solo por coincidencias exactas de palabras. El índice se almacena dentro de la bóveda de Obsidian sin necesidad de una base de datos vectorial externa o un servidor. El sistema funciona dividiendo las notas de Markdown en fragmentos, incrustando cada fragmento con un modelo y almacenando los vectores en un LocalVectorStore personalizado. El divisor respeta los límites naturales del documento, como encabezados y listas, y mantiene metadatos como la ruta del encabezado, el hash del contenido y los desplazamientos de la fuente. Los proveedores de incrustación incluyen OpenRouter, API compatibles con OpenAI y Ollama, todos detrás de una interfaz común. El LocalVectorStore utiliza un manifiesto y un archivo binario para los vectores, con escrituras atómicas que garantizan la consistencia. La indexación incremental compara metadatos y hashes de contenido para evitar recomputar incrustaciones para fragmentos sin cambios. El autor destaca la importancia de separar los componentes y menciona los desafíos con las carreras asíncronas que se detectaron a pesar de pasar las pruebas.
Fuente: Habr — хаб ИИ —
original
