Документация

Аудит источников/коллекторов перед интеграцией с QazPipe

Короткий вывод

В текущей кодовой базе нет директории/модуля collector* и прямой интеграции с QazPipe-сборщиками.

Поиск в *.py не нашёл стабильных импортов/вызовов qazpipe (кроме roadmap/документации и одной локальной команды в Telegram-боте).

Что сейчас играет роль сборщиков данных (внутренние источники)

1) services/ingestion_service.py – автоингест внешних новостных фидов

  • Источники: GDELT, ReliefWeb, GDACS.
  • Точки запуска:
  • services/worker.py (ARQ cron jobs: cron_ingest_gdelt, cron_ingest_reliefweb, cron_ingest_gdacs).
  • cli.py (cron-ingest-* команды).
  • Рекомендуемое решение:
  • Оставить, пока QazPipe не возьмёт этот слой целиком.
  • Если перенос на QazPipe, заменить вызовы этим cron/CLI на вебхуки/очередь с идемпотентным апи-входом.

2) telegram_buffer_bot.py – Telegram-скрипт сборки ссылок

  • Роль: подписка на URL из TG-чата/группы и сохранение в buffer_link.
  • Уровень интеграции: автономный скрипт вне основного Flask/FastAPI runtime.
  • Рекомендуемое решение:
  • Перенести в QazPipe либо удалить из runtime, если приём URL уже сделан через QazPipe.
  • Пока не трогаем, если на проде на этом процессе завязаны ручные рабочие потоки.

3) app/services/media_integration.py – интеграция с QazLake (поиск/добавление фото)

  • Это не collector тикетов, это enrichment-слой для UI/отчётов.
  • К возрату в QazPipe не относится.

Что вообще отсутствует как QazPipe-интеграция

  • Нет внутренних модуля/сервиса вида qazpipe_collector*, collectors/*, pipes/*.
  • Нет явного API-контракта импортера в QazPipe для:
  • Telegram-каналов,
  • X/Twitter,
  • централизованной дедупликации пост/материалов.

Рекомендуемый следующий шаг

  1. Сделать один endpoint в crisis-monitor типа POST /api/integrations/qazpipe/events (идемпотентный),
  2. Перенести telegram_buffer_bot на этот endpoint (или убрать, если QazPipe будет push-ить напрямую),
  3. Перенести auto-ingestion в QazPipe только если там будет собственный нормализатор/дедуп и тот же контракт полей title/summary/source/occurred_at.