О проекте
У публикации несколько этапов обработки. Нужно было видеть, откуда она пришла, что сделал OCR, как сработала классификация и какое решение принял оператор. Ошибки и очереди — на отдельных экранах.
Система собирала публикации, прогоняла их через OCR и классификацию, затем показывала оператору на проверку. Сервис удалён с VPS вместе с данными и бэкапами. Здесь остались обезличенные скрины, схемы и замеры.
- Архивный проект; сервис выведен из эксплуатации. Демо-ссылки и восстановления WTG нет.
- Статусы заданий и confidence не являются измерением точности OCR или моделей.
- Legacy noVNC и недоступные разделы не выдаются за работающие.
- Обнаруженный рост web до примерно 3,8 GiB описан как наблюдение; первопричина кода не установлена.
Скриншоты, схемы и исходные материалы сохранены на языке оригинала; подписи и описание переведены.
Архитектура и схемы
- Сбор и долгая обработка вынесены в задания с lease/heartbeat.
- OCR отделён от web и имеет самостоятельные очередь, статусы и попытки.
- Исходная публикация, промежуточные решения и итоговые материалы имеют разные роли.
- Архив содержит только обезличенные изображения, документацию и агрегаты; рабочая БД, сессии и резервные копии не сохранены.
Code-map: файлы и связи
Карта привязана к версии 21841487f524. В таблице — экран или API, связанный модуль и данные.
| Функция | Экран / API | Модуль | Данные / проверка |
|---|---|---|---|
| Авторизация | accounts | services/auth.py, vk_user_token.py | auth_accounts, account_communities; browser/API состояния рассматриваются раздельно |
| Создание и исполнение заданий | schedules, processing | services/admin_control.py, cli/admin_worker.py | admin_jobs, admin_job_step_logs; claim, heartbeat, retry, stale cleanup |
| Планирование API | schedules, group-pool | services/api_posts_schedule.py | api_schedule_steps, api_group_pool_items; поколение расписания, очередь, cooldown |
| Сбор | groups, posts | services/crawler.py, vk_parsers.py | communities, posts, post_media; источник, повторное чтение, нормализация |
| Профиль и маркет | groups tabs, market | community_profile.py, community_market.py, community_services.py | профиль, товары, услуги; фильтры и привязка к группе |
| Быстрый отбор | group-pool | fast_screen_pool.py, fast_wall_probe.py | fast_screen_pool_states, fast_screen_pool_checks; lease, due rows, retention |
| Pipeline | pipeline | services/content_pipeline.py | content_pipeline_runs/posts/items; этапы и сохранённые результаты |
| OCR | processing, post details | ocr.py, ocr_jobs.py, cli/ocr_worker.py, cli/ocr_sidecar.py | ocr_jobs, post_media; completed/failed, attempts, timeout |
| Канонические материалы | results | publication_materials.py, publication-intelligence | publication_decisions/materials/media; связь решения с исходником и версия |
| Разметка и teacher | labels, processing | publication_teacher.py | teacher runs/results/applications; разметка, расхождения, применение |
| Логи | logs, file-logs | web/app.py, helpers file logs | admin_job_logs, step logs, files; событийные и файловые следы |
| Выдача | Telegram / MAX | отдельные bot repositories | canonical output + bot tables; downstream использует подготовленные данные |
Как работать с картой
- Перед изменением найти функцию и пройти связи до API, состояния и хранилища.
- Проверить входы, ошибки, повторные события и зависимые сценарии.
- После изменения обновить карту и затронутые схемы вместе с кодом.
- Выполнить связанные проверки и привязать новые материалы к версии исходников.
Сценарии и API
- Просмотрите обезличенные расписания, группы, pipeline и материалы.
- Сопоставьте экран со строкой code-map и схемой данных.
- Откройте агрегаты очередей и истории, прочитайте дату и ограничения замера.
- Изучите акт удаления и сравнение диска/RAM до и после вывода из эксплуатации.
Проверка опубликованной версии
CI: prod-deploy ↗ · 61c78116 · исторический запуск другой версии · 2026-06-16T11:57:17Z
CI: prod-deploy ↗ · 1299a357 · исторический запуск другой версии · 2026-06-16T11:45:01Z
- 30 sanitized UI images checked before deletion
- Deletion and authoritative DNS removal verified
Эти проверки относятся к указанной версии. Коммерческие показатели и качество моделей на независимой выборке здесь не измерялись.
Измерения
- Сохранено 30 содержательных кадров фактического интерфейса.
- Дата, сценарий и версия указаны у каждого кадра.
- Зафиксировано 527 718 публикаций и 29 092 OCR-задания; это разные сущности и не показатели качества.
- WTG удалён после проверки локального архива; до очистки его каталог занимал около 104 GiB.
Запуск и эксплуатация
WTG не входит в механизм отката портфолио. /opt/wtg, собственные контейнеры, данные, бэкапы, доступы, конфигурации и DNS удалены после проверки локального архива.
GitHub-исходники и общие журналы ОС сохранены по согласованному решению. Отдельные workflow автодеплоя отключены, WTG-ключи удалены.
Результат подтверждает логическое удаление управляемых данных. Физическое стирание блоков хранилища провайдера из гостевой VPS подтвердить невозможно.
Checkout на сервере и опубликованный аудитированный репозиторий имеют разные SHA. Источник каждого вида evidence указан отдельно; соответствие старого image содержимому checkout не утверждается.
Стек
| Python / FastAPI / Jinja | Операционная админка, JSON API и orchestration. |
|---|---|
| PostgreSQL / SQLAlchemy / Alembic | Публикации, задания, версии решений, материалы и миграции. |
| PaddleOCR | Отдельный OCR sidecar и worker. |
| Docker / Nginx / systemd | Прежнее размещение семи служб и фоновые задания. |
Материалы и исходники
Документы code-map: июнь 2026, сохранённая история данных: июнь–июль. Архивирование и удаление: 7 сентября 2026.
Архив материалов на языке оригинала.