Универсальный AI-фреймворк на Python для семантического поиска, RAG, оркестрации LLM и рабочих процессов с языковыми моделями на базе векторной БД эмбеддингов.
kelindar/search
Библиотека Go для точного поиска векторов по косинусному сходству: поддерживает локальные эмбеддинги GGUF через llama.cpp и облачные — через API, совместимые с OpenAI.
- Звёзды
- 561
- Форки
- 24
- Открытые issues
- 5
- Последний коммит
- 2 месяца назад
Что это?
kelindar/search — библиотека Go для хранения векторов в индексе в памяти и поиска наиболее похожих записей по косинусному сходству. В основном пакете нет нативных зависимостей: он самостоятельно выполняет индексацию, поиск и сохранение данных. Библиотека подходит для небольших и средних наборов данных, где допустим точный перебор.
Провайдеры эмбеддингов вынесены в отдельные модули. Пакет llama запускает локальные модели GGUF, например MiniLM, через llama.cpp с помощью purego: по умолчанию на CPU, с возможностью задействовать слои GPU. Пакет openai обращается к API эмбеддингов, совместимым с OpenAI, в том числе к OpenRouter, используя только стандартную библиотеку. Индекс также может принимать результат любой функции, возвращающей []float32, через простой интерфейс.
Проект разделён на независимые модули Go, поэтому приложения подключают только нужного им провайдера. Для работы с локальными эмбеддингами сначала нужно собрать библиотеку-обёртку для llama.cpp под Linux, macOS или Windows.
Ключевые возможности
- 01Точный поиск векторов в памяти по косинусному сходству с сортировкой результатов по релевантности.
- 02Сохранение индекса с помощью функций для работы с файлами и io.Writer/Reader.
- 03Локальные эмбеддинги GGUF через llama.cpp с возможностью задействовать слои GPU.
- 04Облачные эмбеддинги через API, совместимые с OpenAI, включая OpenRouter; поддерживаются пакетные запросы.
- 05Независимая от провайдера архитектура: индекс может принимать векторы, возвращаемые любой функцией.
Сценарии использования
- Добавление семантического поиска в сервис Go с несколькими тысячами или десятками тысяч документов.
- Локальный запуск эмбеддингов с моделью GGUF, например MiniLM.
- Переключение между моделями эмбеддингов OpenAI и OpenRouter без изменения кода индекса.
- Создание прототипов функций поиска, где достаточно быстрого точного перебора.
Быстрый старт
- 1
Клонируйте репозиторий вместе с его подмодулями и файлами LFS
git submodule update --init --recursive - 2
Загрузите модель и тестовые векторы через Git LFS
git lfs pull - 3
Установите основную библиотеку поиска
go get github.com/kelindar/search
Что важно знать
- Поиск выполняется по точному совпадению и проверяет каждый вектор, поэтому подходит только для небольших и средних наборов данных.
- Для локальных эмбеддингов необходимо собрать нативную библиотеку llama.cpp с помощью CMake и компилятора C/C++.
- Требуется Go версии 1.27 или новее.
В подборках
Темы
Частые вопросы
- Что такое search?
- Библиотека Go для точного поиска векторов по косинусному сходству: поддерживает локальные эмбеддинги GGUF через llama.cpp и облачные — через API, совместимые с OpenAI. kelindar/search — библиотека Go для хранения векторов в индексе в памяти и поиска наиболее похожих записей по косинусному сходству. В основном пакете нет нативных зависимостей: он самостоятельно выполняет индексацию, поиск и сохранение данных. Библиотека подходит для небольших и средних наборов данных, где допустим точный перебор.
- search можно использовать бесплатно? Какая у него лицензия?
- search распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- search всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в search — 19 сент. 2026 г..
- Для чего можно использовать search?
- Добавление семантического поиска в сервис Go с несколькими тысячами или десятками тысяч документов. Локальный запуск эмбеддингов с моделью GGUF, например MiniLM. Переключение между моделями эмбеддингов OpenAI и OpenRouter без изменения кода индекса. Создание прототипов функций поиска, где достаточно быстрого точного перебора.
- Как установить search?
- Клонируйте репозиторий вместе с его подмодулями и файлами LFS: git submodule update --init --recursive Загрузите модель и тестовые векторы через Git LFS: git lfs pull Установите основную библиотеку поиска: go get github.com/kelindar/search
- Где скачать search?
- Исходный код и инструкции по установке — на GitHub: https://github.com/kelindar/search
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Open-source платформа для балансировки нагрузки и serving LLM, которая запускает инференс на ваших CPU или GPU с помощью llama.cpp.
Сервер на Rust для развертывания и обслуживания open-source-моделей эмбеддингов текста и ранжирования через HTTP и gRPC.
CLI для семантического поиска по коду с локальными эмбеддингами, анализом графа вызовов и MCP-сервером для AI-агентов — с приоритетом конфиденциальности.
Epsilla — векторная база данных с открытым исходным кодом на C++ для поиска похожих эмбеддингов, с фильтрацией метаданных, гибридным поиском и интеграциями для LLM-поиска.
Набор пакетов ROS 2 для запуска LLM на основе GGUF, мультимодальных моделей и аудиомоделей через llama.cpp в узлах ROS 2.