Архивный кейс · VK parser и контентный pipeline
WTG
WTG — VK parser и контентный pipeline. Система собирает публикации и связанные материалы через VK API и Playwright, сохраняет raw evidence, ставит OCR и классификацию в очередь и выводит результат оператору для проверки, разметки и решения о публикации. Страница фиксирует интерфейс, архитектуру, code-map и измерения проекта.
Расписания сбора и обработки
01 / Задача
Сбор публикаций, OCR и классификация. Архив
Нужно было объединить сбор контента из VK, обработку изображений и текстов и операторскую проверку в одном наблюдаемом процессе. Каждая стадия должна оставлять проверяемый результат и поддерживать повтор без потери исходных данных.
Сценарий: Сбор и ручная проверка обработанных публикаций.
Что делал
- Сбор, очереди, обработка и экран проверки оператором.
- Админка, модели данных и code-map.
02 / Реализация
Что отличает реализацию
Raw evidence хранится отдельно от производных данных. Очереди разделяют сбор, OCR, классификацию и редакционное решение; оператор видит источник и промежуточные результаты до публикации. Code-map связывает экран и API с модулем, таблицами и проверками, поэтому изменение можно проследить по всей цепочке.
Скриншоты
Экраны, формы, ошибкиСкриншоты, схемы и исходные материалы сохранены на языке оригинала; подписи и описание переведены.
03 / Технологии
Что использовано
Доли по размеру прикладных файлов Git в закреплённой версии. Каждый файл отнесён к одной подсистеме по правилам scripts/generate-stack-share.mjs; тесты, ассеты, зависимости и generated-файлы исключены. Округление — до 0,1%. Это состав кода, а не уровень владения технологиями.
Python / FastAPI / Jinja
Операционная админка, JSON API и orchestration.
PostgreSQL / SQLAlchemy / Alembic
Публикации, задания, версии решений, материалы и миграции.
PaddleOCR
Отдельный OCR sidecar и worker.
Docker / Nginx / systemd
Прежнее размещение семи служб и фоновые задания.
04 / Решения
Как устроен проект
- Сбор и долгая обработка вынесены в задания с lease/heartbeat.
- OCR отделён от web и имеет самостоятельные очередь, статусы и попытки.
- Исходная публикация, промежуточные решения и итоговые материалы имеют разные роли.
- Публичный архив содержит обезличенные изображения, документацию и агрегированные измерения без пользовательских идентификаторов.
05 / Проверка
Что сохранено
- Просмотрите обезличенные расписания, группы, pipeline и материалы.
- Сопоставьте экран со строкой code-map и схемой данных.
- Откройте агрегаты очередей и истории, прочитайте дату и ограничения замера.
Результаты проверок
- Сохранено 30 содержательных кадров фактического интерфейса.
- Дата, сценарий и версия указаны у каждого кадра.
- Зафиксировано 527 718 публикаций и 29 092 OCR-задания; это разные сущности и не показатели качества.
Ограничения
- Архивный кейс не содержит работающей демо-ссылки; поведение фиксируют обезличенные экраны, схемы и агрегированные измерения.
- Статусы заданий и confidence не являются измерением точности OCR или моделей.
- Legacy noVNC и недоступные разделы не выдаются за работающие.
- Наблюдавшийся рост памяти web-процесса описан как факт замера; первопричина в коде не установлена.
Технические заметки
Модули, API, схема данных, запуск и результаты проверок.
Документация →Материалы ↓