Текст как точка в пространстве
Эмбеддинг — это превращение текста в список чисел (вектор), где близкие по смыслу фразы получают близкие векторы. «Как вернуть заказ» и «хочу оформить возврат» — разные слова, но почти одна точка в этом пространстве.
Это ключевое отличие от классического поиска по словам: тот не найдёт документ «Политика возвратов», если клиент написал «передумал покупать».
Как ищет векторная база
Векторная база хранит эмбеддинги фрагментов ваших документов и умеет очень быстро отвечать на вопрос «какие фрагменты ближе всего к этому вектору?».
// индексация: один раз при загрузке документов
for (const chunk of splitIntoChunks(document)) {
await vectorDb.upsert({
id: chunk.id,
vector: await embed(chunk.text),
payload: { text: chunk.text, source: document.name },
});
}
// поиск: на каждый вопрос клиента
const hits = await vectorDb.search(await embed(question), { limit: 5 });Что выбрать: готовое или своё
Для старта достаточно управляемого сервиса или лёгкой встраиваемой базы — счёт на тысячи документов они держат без проблем. Собственная инфраструктура нужна при жёстких требованиях к безопасности: тогда база разворачивается в вашем контуре, и данные не покидают компанию.
Как это укладывается в общую архитектуру — в статье про RAG, а состав решения — на странице RAG-систем.