Генерация с дополнением из поиска — архитектурный подход, при котором языковая модель отвечает не только из своей «памяти», а с опорой на ваши документы и базы знаний. Ниже — как это устроено.
Два конвейера: индексация документов (один раз) и обработка запроса (каждый вопрос).
Документ разбивается на фрагменты (чанки). Каждый фрагмент превращается в числовой вектор — эмбеддинг, отражающий смысл текста, — и сохраняется в векторной базе.
Вопрос пользователя тоже превращается в вектор. База находит фрагменты, ближайшие по смыслу к вопросу, — даже если слова не совпадают дословно.
Найденные фрагменты подставляются в запрос к языковой модели как контекст. Ответ опирается на ваши данные — меньше галлюцинаций, точнее формулировки.
Типовые компоненты решения.
Исходные файлы и метаданные: откуда взят фрагмент, версия документа, права доступа.
Преобразует текст в векторы фиксированной размерности. От её качества зависит точность поиска.
Хранит эмбеддинги и ищет ближайшие по косинусной близости. Примеры: pgvector, Qdrant, Milvus.
Дополняет векторный поиск точным совпадением по словам — гибридный поиск повышает полноту выдачи.
Склеивает конвейер: принимает вопрос, ищет контекст, формирует промпт, возвращает ответ с источниками.
Финальное звено: генерирует ответ, опираясь на переданный контекст, а не только на обучающие данные.