Files
monitoring-tg/README.md
Grendgi 8259a01a88
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 5s
Route monitoring TG classification through AI service
2026-06-08 15:47:42 +03:00

59 lines
3.0 KiB
Markdown

# monitoring-tg
Backend-сервис мониторинга Telegram-каналов для Portal. Публичный API и
AI-классификация работают на Go, Python оставлен только как внутренний
MTProto/Telethon-адаптер для авторизации, опроса каналов и дозагрузки медиа.
Сервис сохраняет сообщения в Postgres, раскладывает каналы по
вертикалям/подразделам и выполняет AI-анализ через общий `ai-service`,
который уже сам обращается к OpenAI-compatible backend.
Пользовательский UI живёт в `portal/frontend/src/app/features/monitoring-tg`.
Этот сервис не отдаёт отдельные HTML-страницы и работает как API/worker за
портальным прокси `/api/monitoring-tg`.
## Доступ
- Админские операции остаются за ролью `admin` в Portal: portal прокидывает
`X-User-Is-Admin=1`.
- Отдел видит только свои подразделы, каналы, сообщения и промпты через
`X-User-Department-Id`.
- Руководитель отдела может создавать и редактировать подразделы своего отдела:
portal прокидывает `X-User-Is-Department-Head=1`.
- Пароли подразделов и IP allowlist удалены.
## Конфигурация
Сервис рассчитан на запуск только в k8s. Настройки хранятся в
`k8s/configmap.yaml`, секреты — в `k8s/secrets.yaml`. Локальный `.env` не
используется.
Локального админ-пароля нет: админские API доступны только через роль `admin`
в Portal.
## Запуск в k8s
Манифесты лежат в `k8s/`. Перед применением нужно заполнить `k8s/secrets.yaml`
реальными Telegram-кредами и `AI_SERVICE_TOKEN`.
```bash
kubectl apply -k k8s
```
Миграции выполняются entrypoint-ом контейнера перед запуском процессов.
## Структура
```text
src/parser_bot/
├── api/ внутренние FastAPI роуты Telegram-адаптера
├── db/ SQLAlchemy модели + сессии
├── scheduler/ APScheduler-воркер периодического опроса
├── telegram/ Telethon-клиент
├── config.py pydantic-settings
└── main.py FastAPI lifespan + uvicorn для внутреннего адаптера
cmd/server/ Go API для Portal
cmd/classifier/ Go-воркер фоновой LLM-классификации сообщений
alembic/ миграции
k8s/ манифесты для портала
```