Векторная база данных отвечает на один вопрос, очень быстро
Дайте ей список чисел, и она вернёт хранимые списки, ближайшие к нему. В этом весь интерфейс.
Эти списки, это эмбеддинги. Модель эмбеддингов превращает фрагмент текста, описание товара или изображение в набор от нескольких сотен до нескольких тысяч чисел, расположенных так, что похожие смыслы оказываются рядом друг с другом, а что такое эмбеддинги в ИИ объясняет, как именно. Векторная база данных, это место, где живут эти списки, когда их у вас много. Она хранит каждый список с ID и метаданными, строит по ним индекс и отвечает на поиск ближайших соседей: "вот вектор запроса, дай мне десять самых близких".
Сложная часть, это слово быстро. Сравнение запроса с миллионом хранимых векторов по 1536 чисел каждый, это 1,5 миллиарда умножений, и делать это на каждое нажатие клавиши не масштабируется. Поэтому векторные базы данных используют приближённые индексы ближайших соседей, самый распространённый из которых HNSW, графовая структура из статьи 2016 года Малкова и Яшунина, которая проверяет несколько сотен кандидатов вместо всего миллиона и почти всегда возвращает правильный ответ. Это "почти" и есть компромисс: немного полноты в обмен на тысячекратное ускорение.
Ваша обычная база данных ищет совпадения слов; векторная база данных ищет совпадения смысла
Реляционная база данных находит строки, значения которых совпадают: WHERE customer_id = 4127. Полнотекстовый индекс находит документы, содержащие слова: возврат AND политика. Векторная база данных находит элементы, смысл которых близок: запрос "как мне вернуть деньги" находит фрагмент под заголовком "Возвраты и возмещения", хотя эти две фразы не имеют общих слов.
| Реляционная база данных | Полнотекстовый поиск | Векторная база данных | |
|---|---|---|---|
| Спрашивает | Какие строки совпадают с этим значением? | Какие документы содержат эти слова? | Какие элементы близки по смыслу к этому? |
| Индекс | B-дерево по столбцам | Инвертированный индекс по терминам | Граф или кластеризация векторов (HNSW, IVF) |
| Точность | Точная | Точная | Обычно приближённая |
| Хорошо для | ID, дат, сумм, соединений | Имён, кодов, точных фраз | Синонимов, перефразирования, разных языков, изображений |
| Плохо для | Смысла | Смысла | Точных строк, подсчёта, фильтрации по значению |
| Примеры | Postgres, MySQL, SQLite | Elasticsearch, Lucene | Pinecone, Weaviate, Qdrant, Milvus, Chroma, pgvector |
Последняя строка показывает, насколько размыта эта категория. pgvector добавляет векторные столбцы и индекс HNSW в обычный Postgres, а Elasticsearch несёт векторное поле с версии 7.0 в 2019 году и поиск HNSW с версии 8.0 в 2022 году. "Векторная база данных" часто, это возможность внутри базы данных, которую вы уже используете, а не новый продукт, и отдельные продукты конкурируют по масштабу и эксплуатационному удобству, а не в том, что Postgres не умеет.
Чат с документами, это векторный поиск с моделью на конце
У генерации с дополненным поиском (RAG), которую разбирает что такое RAG, есть шаг поиска и шаг написания. Векторная база данных, это шаг поиска.
- Разбить каждый документ на фрагменты по несколько сотен, до тысячи токенов.
- Создать эмбеддинг каждого фрагмента и сохранить векторы вместе с текстом фрагмента и источником в векторной базе данных.
- Когда приходит вопрос, создать его эмбеддинг и запросить у базы данных ближайшие фрагменты.
- Передать эти фрагменты языковой модели вместе с вопросом и дать ей написать ответ.
Шаги 1 и 2 происходят один раз, при добавлении документов. Шаги 3 и 4 происходят на каждый вопрос. Языковая модель никогда не видит всю коллекцию целиком, она видит пять или десять фрагментов, выбранных базой данных. Поэтому ответ настолько хорош, насколько хорош поиск: если ближайший вектор, это не тот фрагмент, модель уверенно отвечает не на тот вопрос, что что такое галлюцинация ИИ относит к сбою поиска, а не к выдумке.
Когда она нужна, а когда лучше отправить весь файл
Решение зависит от размера. Модель может рассматривать одновременно только своё контекстное окно, и за каждый токен внутри него платят на каждом ходе. Векторная база данных существует, чтобы поместить перед моделью только релевантный фрагмент. Для одного документа, который помещается целиком, поиск, это шаг, который можно пропустить; для коллекции, которая не помещается, это единственный вариант.
Сравним стоимость двух подходов на отчёте объёмом 300 000 токенов, несколько сотен страниц, с десятью вопросами, извлекая по пять фрагментов по 1000 токенов на вопрос. Отправка всего файла каждый раз, это 3 миллиона входных токенов. Извлечение пяти фрагментов по 1000 токенов на вопрос, это 50 000. По базовым входным тарифам из индекса стоимости моделей ИИ, полученным с OpenRouter 2026-08-20, разница составляет 60 раз для каждой модели. Кэширование промптов, там, где провайдер его предлагает, тарифицирует повторное чтение того же файла по цене от десятой доли до половины базовой, что сокращает разрыв примерно до 6 до 30 раз. Поиск всё равно выигрывает, но с меньшим отрывом.
Подход с целым файлом даёт что-то за эти деньги, когда файл укладывается в бюджет: контракт на 60 страниц, около 40 000 токенов, позволяет модели отвечать на вопросы, которым нужен весь документ сразу, например, "противоречит ли что-нибудь здесь пункту 14", что поиск задать не может, потому что он никогда не видит пункт 14 и противоречие в одной выборке. Отсюда правило: один документ или несколько идут целиком; библиотека идёт через векторную базу данных. Между этими двумя вариантами разбивайте загрузку по темам, чтобы модель получала нужный ей раздел.
Whizi отправляет сам текст, до 40 000 токенов на ход
Whizi не использует векторную базу данных для вашего чата. Когда вы прикрепляете файл, путь загрузки документов извлекает текст и отправляет его модели как текст промпта, в пределах фиксированного бюджета в 40 000 токенов на ход; более длинная загрузка обрезается, с уведомлением и пометкой прямо в сообщении об этом. Файлы проектов работают так же: функция проектов закрепляет до 10 файлов и пересобирает их текст в промпт при каждом сообщении, с ограничением в 32 000 символов на файл и 120 000 на весь блок проекта.
Ограничения, это грань конструкции. Закреплённый файл длиннее 32 000 символов обрезается, вложение длиннее бюджета в 40 000 токенов на ход обрезается, а проект, это папка, а не индексируемая библиотека. Компромисс осознанный: для контракта или статьи, которая укладывается в бюджет хода, наличие всего текста лучше, чем поиск по нему, и главная проверка, попросить модель процитировать использованный фрагмент, работает именно потому, что фрагмент присутствует целиком. Для тысячи документов правильный инструмент, это векторная база данных, а чат-приложение неправильный.
Из этого механизма следуют две привычки. Называйте файл в вопросе, если прикреплено несколько, иначе модель выбирает молча. И в любом ответе, на который вы будете опираться, просите цитату. Система поиска может вернуть не тот фрагмент; система с целым файлом может ответить по памяти, а не по файлу. Цитата ловит оба случая.
- Отправляйте один документ целиком; коллекцию держите за векторной базой данных
- Разбивайте длинную загрузку по темам, чтобы модель получала нужный вопросу раздел
- Просите модель процитировать использованный фрагмент, прежде чем полагаться на ответ
- Используйте обычный текстовый поиск для ID, кодов и точных фраз; векторный поиск ищет смысл, а не символы
- Считайте сбой поиска проблемой поиска: пересоздайте эмбеддинги с лучшей моделью или меньшими фрагментами, прежде чем винить модель, которая пишет ответ
Частые вопросы
Что такое векторная база данных простыми словами?
Хранилище списков чисел, которые модель ИИ использует для представления смысла, созданное для быстрого поиска ближайших совпадений. Вы даёте ей эмбеддинг вопроса, и она возвращает эмбеддинги, и текст за ними, которые означают что-то похожее. Это поисковая половина чата с документами всякий раз, когда коллекция слишком велика, чтобы отправить её целиком.
Нужна ли мне векторная база данных для работы с ИИ по моим документам?
Только если документы не помещаются в контекстное окно модели. Один отчёт или контракт можно отправить модели целиком, именно так Whizi поступает с вложениями и закреплёнными файлами проектов. Библиотека из тысяч документов требует поиска, а поиску нужен векторный индекс, будь то отдельный продукт или расширение Postgres вроде pgvector.
В чём разница между векторной базой данных и обычной базой данных?
Обычная база данных ищет совпадения значений: этот ID, эта дата, это точное слово. Векторная база данных ищет совпадения смысла, возвращая хранимые элементы, чьи эмбеддинги ближе всего к запросу. Обычно это приближённый поиск, использующий индекс вроде HNSW, который проверяет несколько сотен кандидатов вместо каждого элемента, и он плохо справляется с точным совпадением, с которым хорошо справляется обычная база данных.
Какие векторные базы данных используются чаще всего?
Pinecone, Weaviate, Qdrant, Milvus и Chroma, это распространённые отдельные продукты, а pgvector добавляет ту же возможность в Postgres. Elasticsearch и OpenSearch тоже поддерживают векторный поиск. Выбор обычно эксплуатационный, о масштабе и хостинге, потому что все они реализуют одну и ту же идею приближённого поиска ближайших соседей.
Сколько экономит поиск по сравнению с отправкой всего файла?
Десять вопросов по отчёту на 300 000 токенов стоят $6.00 на Claude Sonnet 5, если файл отправляется на каждом ходе, и $0.10, если вместо этого извлекается пять фрагментов по 1000 токенов, по базовым тарифам OpenRouter, полученным 2026-08-20. На GPT-5.6 Luna та же пара стоит $0.60 против $0.01. Соотношение 60 раз для каждой модели, потому что оба подхода платят одинаковую ставку за токен.