Framework de IA todo en uno para Python, basado en una base de datos de embeddings, que ofrece búsqueda semántica, RAG, orquestación de LLM y flujos de trabajo con modelos de lenguaje.
kelindar/search
Biblioteca de Go para buscar vectores por similitud coseno exacta, con embeddings GGUF locales opcionales vía llama.cpp y embeddings en la nube mediante API compatibles con OpenAI.
- Estrellas
- 561
- Forks
- 24
- Issues abiertos
- 5
- Último commit
- hace 2 meses
¿Qué es?
kelindar/search es una biblioteca de Go para almacenar vectores en un índice en memoria y encontrar las entradas más similares por similitud coseno. El paquete principal no tiene dependencias nativas y se encarga por sí solo de la indexación, la búsqueda y la persistencia, por lo que es adecuado para conjuntos de datos pequeños y medianos en los que resulta aceptable hacer un recorrido exacto.
Los proveedores de embeddings son módulos independientes. El paquete llama ejecuta modelos GGUF locales, como MiniLM, mediante llama.cpp y purego; usa la CPU de forma predeterminada y permite habilitar capas de GPU. El paquete openai llama a endpoints de embeddings compatibles con OpenAI, incluido OpenRouter, usando solo la biblioteca estándar. Cualquier función que devuelva un []float32 también puede alimentar el índice mediante una interfaz pequeña.
El proyecto se divide en módulos de Go independientes para que las aplicaciones solo incorporen el proveedor que usan. Para usar embeddings locales, primero hay que compilar una biblioteca wrapper de llama.cpp para Linux, macOS o Windows.
Funciones clave
- 01Búsqueda exacta por similitud coseno en vectores en memoria, con resultados ordenados por relevancia.
- 02Persistencia del índice mediante funciones para archivos y io.Writer/Reader.
- 03Embeddings GGUF locales mediante llama.cpp, con capas de GPU opcionales.
- 04Embeddings en la nube mediante API compatibles con OpenAI, incluido OpenRouter, con solicitudes por lotes.
- 05Diseño independiente del proveedor: cualquier función que devuelva vectores puede alimentar el índice.
Casos de uso
- Añadir búsqueda semántica a un servicio de Go con unos pocos miles o decenas de miles de documentos.
- Ejecutar embeddings completamente de forma local con un modelo GGUF como MiniLM.
- Alternar entre modelos de embeddings de OpenAI y OpenRouter sin cambiar el código del índice.
- Crear prototipos de funciones de recuperación cuando un recorrido exacto sea suficientemente rápido.
Inicio rápido
- 1
Clona el repositorio con sus submódulos y archivos LFS
git submodule update --init --recursive - 2
Obtén el modelo y los datos de prueba de vectores mediante Git LFS
git lfs pull - 3
Instala la biblioteca de búsqueda principal
go get github.com/kelindar/search
Antes de usarlo
- La búsqueda es exacta y recorre todos los vectores, por lo que solo es adecuada para conjuntos de datos pequeños y medianos.
- Los embeddings locales requieren compilar una biblioteca nativa de llama.cpp con CMake y un compilador de C/C++.
- Requiere Go 1.27 o posterior.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es search?
- Biblioteca de Go para buscar vectores por similitud coseno exacta, con embeddings GGUF locales opcionales vía llama.cpp y embeddings en la nube mediante API compatibles con OpenAI. kelindar/search es una biblioteca de Go para almacenar vectores en un índice en memoria y encontrar las entradas más similares por similitud coseno. El paquete principal no tiene dependencias nativas y se encarga por sí solo de la indexación, la búsqueda y la persistencia, por lo que es adecuado para conjuntos de datos pequeños y medianos en los que resulta aceptable hacer un recorrido exacto.
- ¿search es gratuito? ¿Qué licencia tiene?
- search es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿search sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de search fue el 19 sept 2026.
- ¿Para qué puedo usar search?
- Añadir búsqueda semántica a un servicio de Go con unos pocos miles o decenas de miles de documentos. Ejecutar embeddings completamente de forma local con un modelo GGUF como MiniLM. Alternar entre modelos de embeddings de OpenAI y OpenRouter sin cambiar el código del índice. Crear prototipos de funciones de recuperación cuando un recorrido exacto sea suficientemente rápido.
- ¿Cómo se instala search?
- Clona el repositorio con sus submódulos y archivos LFS: git submodule update --init --recursive Obtén el modelo y los datos de prueba de vectores mediante Git LFS: git lfs pull Instala la biblioteca de búsqueda principal: go get github.com/kelindar/search
- ¿Dónde consigo search?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/kelindar/search
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Balanceador de carga y plataforma de servicio de LLM de código abierto que ejecuta inferencias en tu propia infraestructura de CPU o GPU con llama.cpp.
Servidor basado en Rust para desplegar y servir modelos open source de embeddings de texto y reranking mediante HTTP y gRPC.
CLI con prioridad en la privacidad para buscar código por significado, con embeddings locales, análisis del grafo de llamadas y un servidor MCP para agentes de programación con IA.
Epsilla es una base de datos vectorial open source en C++ para búsquedas de similitud entre embeddings, con filtros de metadatos, búsqueda híbrida e integraciones de recuperación para LLM.
Conjunto de paquetes de ROS 2 para ejecutar LLM basados en GGUF y modelos de visión y audio mediante llama.cpp dentro de nodos de ROS 2.