Перейти к содержимому

Vector DB: хранилище эмбеддингов

Векторная база хранит эмбеддинги — числовые представления фрагментов текста, картинок или кода — и умеет быстро находить ближайшие по смыслу. Это основа семантического поиска: запрос «как ограничить доступ к админке для роли» находит документ, где написано «права роли редактора», хотя общих слов в них нет.

Без этого слоя RAG превращается в поиск по ключевым словам, а модель — в генератор ответов по памяти.

РешениеКогда подходит
PineconeНужен полностью управляемый сервис и быстрый запуск без эксплуатации
Qdrant, WeaviateНужен self-hosted контроль, гибкая фильтрация и hybrid search
Milvus / ZillizМасштаб до миллиардов векторов, отдельная инфраструктурная команда
pgvectorУже есть PostgreSQL и не хочется второй базы
Chroma, LanceDBПрототип, локальная разработка, встраивание в приложение

Практическое правило: выбирайте не лучшую векторную базу, а ту, которую команда сможет эксплуатировать. Отдельный кластер ради 50 тысяч чанков документации — обычно лишняя инфраструктура; pgvector рядом с рабочей базой закрывает тот же сценарий и упрощает бэкапы.

  • Hybrid search. Векторы плюс ключевые слова. Чистый семантический поиск плохо находит точные идентификаторы: wp_cache_get, артикулы, коды ошибок, имена функций.
  • Фильтрация по метаданным. Права, язык, версия документа, проект, дата. Фильтр после поиска по векторам деградирует: вы получаете «похожие, но недоступные» документы.
  • Multi-tenancy. Изоляция данных между клиентами и проектами на уровне запроса, а не после выдачи.
  • Обновление и удаление. Документы меняются; база должна уметь переиндексировать чанки, а не только добавлять.
документы → чанки → эмбеддинг-модель → векторы + метаданные → Vector DB
↑
запрос → эмбеддинг того же модели → поиск top-K → фильтр → контекст для модели

Два условия корректности: эмбеддинг-модель для запроса и для документов одна и та же, а метаданные заполняются при индексации, не при запросе.

  • Кто владеет индексом. Если чанки строятся вручную и разово, через месяц база отстанет от документации.
  • Есть ли план переиндексации. Смена модели эмбеддингов требует полного пересчёта — это часы и деньги, их стоит планировать.
  • Не хранится ли в векторах то, что нельзя. Персональные данные и секреты в эмбеддингах — та же утечка, что и в тексте.
  • Хватает ли фильтрации. Разграничение доступа после поиска — источник утечек: недоступный документ уже попал в контекст модели.