Repolode
philippgille

philippgille/chromem-go

Встраиваемая в Go векторная база данных с интерфейсом, похожим на Chroma, без сторонних зависимостей и с поддержкой сохранения на диск.

Open source альтернатива:Pinecone

Звёзды
1,075
Форки
78
Открытые issues
21
Последний коммит
2 месяца назад

Что это?

chromem-go — векторная база данных, которая работает внутри Go-программы, как SQLite внутри приложения: отдельный сервер не нужно устанавливать и обслуживать. Она хранит документы вместе с их эмбеддингами и может создавать эмбеддинги самостоятельно через такие провайдеры, как OpenAI, Ollama, Cohere и Mistral, либо принимать уже вычисленные.

Библиотека предназначена для retrieval augmented generation (RAG), семантического поиска и подобных задач при небольших и средних нагрузках, а не для миллионов документов. Поиск перебирает все варианты и выбирает ближайшие по косинусному сходству; запросы можно фильтровать по метаданным или по наличию либо отсутствию строки в тексте документа. По умолчанию данные хранятся в памяти; также доступно их немедленное сохранение в файлы и экспорт или импорт всей базы для резервного копирования.

API повторяет основные методы Chroma (add, query, get, create и delete collections) и дополняет их более идиоматичными для Go вариантами. Проект находится в бета-версии, поэтому до выхода v1.0.0 возможны несовместимые изменения.

Ключевые возможности

  • 01Работает непосредственно внутри Go-приложения, без внешних зависимостей и отдельного сервера.
  • 02Создаёт эмбеддинги через OpenAI, Azure OpenAI, Ollama, Cohere, Mistral и других провайдеров либо принимает заранее вычисленные векторы.
  • 03Полный поиск по косинусному сходству с фильтрами по метаданным и содержимому документов.
  • 04Хранение данных в памяти с возможностью немедленно сохранять их в файлы.
  • 05Экспорт и импорт всей базы данных, при необходимости — со сжатием и шифрованием.

Сценарии использования

  • Добавление ответов на вопросы с использованием RAG в Go-сервис без развёртывания отдельной векторной базы данных.
  • Семантический поиск по небольшому или среднему набору документов внутри CLI- или десктопного приложения.
  • Создание прототипов функций на основе эмбеддингов в Go перед выбором более крупной базы данных.

Быстрый старт

  1. 1

    Установите библиотеку с помощью go get

    go get github.com/philippgille/chromem-go@latest
  2. 2

    Импортируйте chromem-go, создайте базу данных в памяти и коллекцию, затем добавьте документы и выполните запрос (см. минимальный пример)

Что важно знать

  • Проект находится в бета-версии; до выпуска v1.0.0 могут появиться несовместимые изменения.
  • Проект рассчитан на простоту и небольшие или средние объемы данных, а не на миллионы документов.
  • Для создания эмбеддингов по умолчанию используется OpenAI, поэтому нужен API-ключ, если не настроить другого провайдера.

В подборках

Темы

Частые вопросы

Что такое chromem-go?
Встраиваемая в Go векторная база данных с интерфейсом, похожим на Chroma, без сторонних зависимостей и с поддержкой сохранения на диск. chromem-go — векторная база данных, которая работает внутри Go-программы, как SQLite внутри приложения: отдельный сервер не нужно устанавливать и обслуживать. Она хранит документы вместе с их эмбеддингами и может создавать эмбеддинги самостоятельно через такие провайдеры, как OpenAI, Ollama, Cohere и Mistral, либо принимать уже вычисленные.
chromem-go можно использовать бесплатно? Какая у него лицензия?
chromem-go распространяется с открытым исходным кодом под лицензией MPL-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
chromem-go всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в chromem-go — 6 сент. 2026 г..
Для чего можно использовать chromem-go?
Добавление ответов на вопросы с использованием RAG в Go-сервис без развёртывания отдельной векторной базы данных. Семантический поиск по небольшому или среднему набору документов внутри CLI- или десктопного приложения. Создание прототипов функций на основе эмбеддингов в Go перед выбором более крупной базы данных.
Как установить chromem-go?
Установите библиотеку с помощью go get: go get github.com/philippgille/chromem-go@latest Импортируйте chromem-go, создайте базу данных в памяти и коллекцию, затем добавьте документы и выполните запрос (см. минимальный пример)
Где скачать chromem-go?
Исходный код и инструкции по установке — на GitHub: https://github.com/philippgille/chromem-go

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Epsilla — векторная база данных с открытым исходным кодом на C++ для поиска похожих эмбеддингов, с фильтрацией метаданных, гибридным поиском и интеграциями для LLM-поиска.

875+1 за неделю46C++Apache-2.0Обновлён в прошлом месяце

Java-библиотека, которая предоставляет приложениям на JVM единый API для LLM-провайдеров и векторных хранилищ, а также поддерживает вызов инструментов, агентов и RAG.

13,4 тыс.+38 за неделю2,7 тыс.JavaApache-2.0Обновлён 12 часов назад

Milvus — распределённая векторная база данных с открытым исходным кодом для масштабного хранения эмбеддингов и поиска по ним, подходящая для AI-поиска и RAG-приложений.

46,6 тыс.+77 за неделю4,3 тыс.GoApache-2.0Активно поддерживаетсяОбновлён 16 часов назад

Локальный векторный индекс и инструментарий для RAG: пересчитывает эмбеддинги по запросу и сокращает объём хранения примерно на 97%, позволяя искать личные данные на ноутбуке.

13,8 тыс.+100 за неделю1,3 тыс.PythonMITАктивно поддерживаетсяОбновлён 3 дня назад