Распределённые системы · ИИ

Как устроена сеть сборщиков данных для Новосёлии

Три VPS, контейнерные работники, очереди и S3: как я разделяю исследование источника с ИИ и регулярное получение данных.

Подбор жилья начинается с данных

«Новосёлия» — информационный продукт ЛЮДИ.ПРО, который развивается вокруг разговора о будущем жилье и исследования рынка. Человеку нужны подходящие варианты и объяснение выбора. Чтобы такое объяснение опиралось на предметные сведения, система должна знать, откуда пришло описание проекта, когда его получили и какие ограничения есть у источника.

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

Работники и очереди на трёх VPS

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

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

Где применяется искусственный интеллект

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

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

Официальный источник и происхождение материалов

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

Так можно вернуться к происхождению конкретного утверждения. У исторической выгрузки остаётся её дата; у цены — источник и время наблюдения. Дальнейшая обработка должна учитывать эти сведения, особенно когда данные из разных источников расходятся.

Хранилище и проверяемая передача

На VPS остаются рабочие состояния и промежуточные ответы. Когда выгрузка сформирована и проверена, сборщик публикует её вместе с манифестом в независимое S3 хранилище. В манифесте учитываются длина, контрольная сумма и зависимости пакета. Если результат загрузки неизвестен, сначала проверяется уже ожидаемый объект — это позволяет продолжить ту же операцию.

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

Что уже работает и что ещё развивается

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

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

Обсудить разработку системы

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