Подготовка данных: чанкинг корпоративных документов
Документ целиком редко попадает в эмбеддинг — регламенты, базы знаний, confluence-страницы разбиваются на фрагменты (чанки) перед векторизацией. Размер чанка и перекрытие между соседними чанками напрямую влияют на качество поиска: слишком крупный чанк размывает эмбеддинг (в одном векторе смешаны несколько тем), слишком мелкий теряет контекст.
Каждый чанк снабжается метаданными: источник документа, раздел, дата обновления, права доступа. Эти метаданные хранятся в реляционных колонках той же таблицы — фильтрация по ним выполняется обычным WHERE в SQL-запросе, без отдельного слоя логики.
Эмбеддинги генерируются внешней моделью (open-source или через API) и сохраняются в PostgreSQL вместе с текстом чанка. Хранить исходный текст рядом с вектором важно: без него после поиска пришлось бы делать отдельный запрос за содержимым фрагмента.