TGViewer
Симулейтив Симулейтив @simulative_official · 7.47K subscribers
Post #3484 895
✨ Чистим документы одной кнопкой ✨

Привет! На связи Валерия Елпатьевская, ментор курса «Инженер данных» 👋🏻

Думаете, дата-инженер — это человек, который просто переливает данные из одной базы в другую?

Это всё ещё является частью работы дата-инженера, но со временем начали появляться новые задачи. Сегодня всё больше задач связано с AI и RAG-системами. Данные всё ещё нужно «переливать», но только уже в векторные базы, при этом не ломая индекс. При этом желательно подумать об эффективности пайплайна и не делать одно и то же дважды.

Представьте: вчера вы проиндексировали 100 тысяч документов, а сегодня несколько из них изменились. Что делать?

Удалить всё и векторизовать заново? Долго и дорого. К тому же в продовой среде приведёт к временной недоступности документов.

Просто добавить новые векторы? Получим дубликаты.

Здесь на помощь приходит Record Manager из LangChain. Его задача — отслеживать, какие документы уже были проиндексированы, и понимать, что с ними произошло при следующем запуске пайплайна.


Самый простой вариант (для тестов) — InMemoryRecordManager:

record_manager = InMemoryRecordManager(
namespace="documents"
)
record_manager.create_schema()


В реальных проектах, конечно, используют record manager, который пишет информацию в базу данных, например, в SQLRecordManager. Но принцип работы у них один.

При индексации каждому документу задаётся уникальный идентификатор, например путь к файлу или ID записи в базе данных. Дальше достаточно передать этот ключ в функцию индексации с помощью source_id_key="source".

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

Если хэш совпадает, значит, чанк не изменился и повторно считать эмбеддинг не нужно. А если хэш изменился, то чанк удаляется из векторной базы, а на его место записывается новый.

Получается, что одна небольшая настройка избавляет сразу от множества проблем: дубликатов, устаревших данных и лишних вычислений.

Именно такие детали редко обсуждают, когда говорят про RAG. А ведь именно они являются залогом надёжной системы, которую можно безопасно запускать в продакшене.

Такие детали — не сломать индекс, не задублировать чанки и не пересчитывать эмбеддинги зря — мы разбираем на курсе «Инженер данных». Если хотите строить RAG-пайплайны, которые выдерживают продакшен, а не разваливаются на втором запуске, — приходите: 26 июля завершается набор!


✅ Записаться на курс: simulative.ru/data-engineer

📈 Симулейтив | 📱 ВК | 📱 YouTube | 📱 Канал о DS
  • 👍 4
  • ❤ 1
  • 🔥 1
More from @simulative_official
  1. Sep 25, 2026⚡️ Через 10 минут начинаем! Валерия Елпатьевская уже на месте. Показываем, как собрать ETL…
  2. Sep 25, 2026Сегодня собираем ETL-пайплайн на данных GitHub — от источника до дашборда Сегодня в 19:00…
  3. Sep 24, 2026💻💻💻💻💻 Собираем ETL-пайплайн на данных GitHub Как данные проходят путь от внешнего сер…
  4. Sep 24, 2026Post #3582
  5. Sep 23, 2026Что происходит между вопросом бизнеса и готовым дашбордом? Сегодня в 19:00 покажем этот пу…
  6. Sep 21, 2026💻💻💻💻💻Как устроена работа аналитика в среднем бизнесе? Хотите понять, чего ждать, если…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →