Векторные базы данных и RAG: как научить ИИ знать ваши данные
Языковые модели знают только то, что было в их обучающих данных. Чтобы ИИ отвечал про ваши документы, цены и процессы, нужен RAG (Retrieval-Augmented Generation) — архитектура, которая «подкладывает» модели нужные фрагменты вашей базы перед ответом. Разбираем, как это работает и какую векторную базу выбрать в 2026.
Как работает RAG
RAG состоит из четырёх шагов — embed, store, retrieve, generate:
- Embed: документы превращаются в эмбеддинги — числовые векторы, кодирующие смысл текста. Близкие по смыслу тексты получают близкие векторы.
- Store: векторы сохраняются в векторную базу данных (или в PostgreSQL с расширением pgvector).
- Retrieve: запрос пользователя тоже превращается в вектор, и база находит N самых похожих фрагментов (semantic search).
- Generate: найденные фрагменты подставляются в промпт вместе с вопросом — модель отвечает на основе ваших данных.
В отличие от обычных баз, которые ищут точные совпадения слов, векторная база ищет похожий смысл: «как убрать пятно» найдёт и «удаление загрязнений», даже если слова разные.
Минимальный пример: от текста к поиску
Концепция в коде (Python):
from openai import OpenAI
client = OpenAI()
# 1. Embed: превращаем документы в векторы
docs = ["Сайт грузится за 1,2 сек", "Доставка за 2 дня"]
vecs = client.embeddings.create(model="text-embedding-3-large",
input=docs).data
for v in vecs:
pg.execute("INSERT INTO chunks (embedding) VALUES (%s)", [v.embedding])
# 2. Retrieve: находим самый близкий фрагмент к запросу
q = client.embeddings.create(model="text-embedding-3-large",
input=["какая скорость сайта?"]).data[0].embedding
rows = pg.execute("SELECT text FROM chunks ORDER BY embedding <-> %s LIMIT 3",
[q]) # оператор <-> = косинусное расстояние
Плюс подставить найденные фрагменты в системный промпт LLM — и RAG готов. Это базовый уровень; 80% качества RAG даёт именно эта простая схема.
Сравнение векторных баз 2026
| Решение | Тип | Лучше всего для | Масштаб |
|---|---|---|---|
| pgvector | Расширение PostgreSQL | Продукшен на существующей PostgreSQL | До ~50 млн векторов |
| Chroma | Embedded | Прототипы и небольшие проекты | До ~1 млн |
| Qdrant | Отдельный сервис | Самостоятельный хостинг, низкая латентность | Миллионы+ |
| Weaviate | Отдельный сервис | Гибридный поиск, open-source | Миллионы+ |
| Milvus | Отдельный сервис | Очень большие корпуса | Сотни миллионов |
| Pinecone | SaaS | Полностью управляемый сервис | Неограниченно |
Главный совет практиков 2026: выбор базы решает меньше, чем качество данных. Одна и та же база даёт 90% и 40% точности в зависимости от того, как вы нарезали и очистили документы.
Что выбрать: рекомендации
- Прототип: Chroma — ставится одной строкой, идеально для экспериментов.
- Продукшен без новой инфраструктуры: pgvector — одна система меньше для поддержки, конкурентен по скорости.
- Высокая производительность и фильтры: Qdrant — лидер по латентности в независимых тестах.
- Гибридный поиск «из коробки»: Weaviate.
- Миллионы+ документов: Milvus или Pinecone.
Где RAG даёт сбои и как это чинить
| Проблема | Причина | Решение |
|---|---|---|
| Плохой retrieval | Слишком большие или мелкие чанки | Нарезка 300–800 токенов с перекрытием |
| Неверные ответы | Модель «перебивает» данные контекста | Инструкция «отвечай только по контексту» |
| Похожие, но нерелевантные результаты | Только векторный поиск | Hybrid search: вектор + ключевые слова (BM25) |
| Топ-3 не лучшие | Один проход поиска | Reranking: переранжирование найденных LLM |
| Устаревшие данные | Векторы не обновляются | Переиндексация при каждом изменении документа |
Тренд 2026 — agentic RAG: агент сам решает, искать ли в базе, в интернете или в коде, и переформулирует запрос. Плюс GraphRAG для связей между сущностями. Но начинайте с простого векторного RAG — он закрывает большинство задач.
«Качество RAG определяют не модель и не база, а инженерная гигиена: чистый парсинг, продуманная нарезка, актуальные эмбеддинги и регулярная оценка ответов. Инструменты поменяются — эти принципы останутся» — практика RAG-систем, 2026.
Соберите прототип по схеме выше за вечер: эмбеддинги → pgvector → подстановка в промпт. Затем измерьте долю корректных ответов на 20 реальных вопросах и улучшайте по таблице проблем. Это и есть путь к рабочему «ИИ-эксперту по вашим данным».