﻿# Обновление документов RAG без старых фрагментов и неверных цитат

Явные версии документов и фрагментов RAG, удаление устаревших поисковых свидетельств и сохранение происхождения цитат отдельно от активного корпуса.

Автор: Команда Retrivium
Обновлено: 2026-11-03
Канонический URL: https://retrivium.ai/ru/journal/rag-document-updates-stale-chunk-citations/
Language: ru

Замена документа в RAG способна оставить старые фрагменты в поиске, даже когда загрузка выглядит успешной. Риск растёт, если правка меняет границы фрагментов или сокращает источник. Обновление следует рассматривать как публикацию новой версии свидетельств, а не набор независимых вставок векторов. Иначе отдельная успешная запись базы скрывает несогласованность корпуса, из которого модель собирает следующий ответ.

## Определите идентичность документа и фрагмента

Сохраните устойчивый идентификатор документа, явную ревизию источника и идентичности входящих в неё фрагментов. Одного порядкового номера недостаточно: вставка абзаца в начале способна сдвинуть последующие границы, не сохранив смысл прежней строки с тем же номером.

[Репозиторий pgvector](https://github.com/pgvector/pgvector) документирует обычные вставку, изменение и удаление строк рядом с векторным поиском. Эти примитивы полезны, но не определяют политику версий приложения. До проектирования процедуры запишите, какие строки составляют одну полную ревизию источника и какие условия делают её доступной новым запросам.

## Сохраните происхождение свидетельств

[Модель документа Docling](https://docling-project.github.io/docling/concepts/docling_document/) описывает структурированное содержимое и происхождение. Свяжите с фрагментом положение источника, извлечённый текст и версию преобразования. Одного вектора недостаточно для восстановления проверяемой цитаты после изменения исходного документа, особенно при перестановке или повторной обработке разделов.

Для перемещённых разделов сравните старые и новые положения свидетельств. Номер страницы и символьное смещение после перевёрстки могут указывать на другой текст. Историческая цитата сохраняет смысл как ссылка на прежний источник, даже если эта версия исключена из активного поиска по текущему состоянию корпуса.

## Различайте upsert и полную замену

[Справочник INSERT PostgreSQL](https://www.postgresql.org/docs/current/sql-insert.html) описывает `ON CONFLICT` для конфликтующих строк. Обновление совпадающих идентификаторов автоматически не удаляет остальные строки прежней ревизии документа. Полнота очистки остаётся отдельной ответственностью приложения и не следует из успешного завершения одной операции записи базы.

В учебном примере документ раньше давал четыре фрагмента, а теперь два. Обновление первых двух оставляет другие два доступными поиску. Успешная операция не подтверждает чистоту активного корпуса. Сопоставляйте итоговый набор строк с манифестом нового документа, а не только считайте успешные вызовы вставки или отсутствие ошибок.

## Опубликуйте полную границу ревизии

Подготовьте новые фрагменты и эмбеддинги с новой ревизией, проверьте манифест и затем разрешите поиск нужной версии. Выберите подходящий механизм транзакции или публикации приложения. Не заявляйте атомарную замену между независимыми сервисами без фактической процедуры, которая действительно обеспечивает такую границу видимости обновления.

Проверьте поиск во время перехода, включая запрос между этапами индексации. Результат из смешанных ревизий способен содержать противоречия. Сохраните прежнее состояние на оговорённый срок восстановления, не оставляя его случайно допустимым для обычного поиска и новых вопросов о текущем содержимом документа.

## Испытайте правки, удаление и цитаты

В учебном документе измените факт, удалите раздел и перенесите другой. Ищите текущий факт и удалённую формулировку. Рассмотрите возвращённую ревизию и цель цитаты, а не принимайте правдоподобное резюме модели за подтверждение удаления лишних фрагментов из активного набора свидетельств.

Затем откройте ссылку прежнего ответа по принятой политике исторического разрешения. Отделите это поведение от доступного новым вопросам корпуса. Полезная процедура объясняет полный активный набор, обрабатывает удалённые свидетельства и сохраняет смысл исторических ссылок вместо незаметной подмены их первоначального содержимого новой версией документа.

## Материалы по теме

[Локальный RAG-сервер: какие компоненты размещать рядом с GPU](/ru/journal/rag-server-local-architecture/), [PostgreSQL и pgvector для RAG: когда хватит существующего сервера](/ru/journal/pgvector-rag-server/).
