Files
monitoring-tg/README.md
2026-06-04 15:31:10 +03:00

69 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# monitoring-tg
Сервис мониторинга Telegram-каналов для портала. Он сохраняет сообщения в
Postgres, раскладывает каналы по вертикалям/подразделам и выполняет AI-анализ
через OpenAI-compatible endpoint, общий с другими сервисами портала.
## Доступ
- Админские операции остаются за админом портала: portal прокидывает
`X-User-Is-Admin=1`.
- Отдел видит только свои подразделы, каналы, сообщения и промпты через
`X-User-Department-Id`.
- Руководитель отдела может создавать и редактировать подразделы своего отдела:
portal прокидывает `X-User-Is-Department-Head=1`.
- Пароли подразделов и IP allowlist удалены.
## Конфигурация
Основные переменные:
```env
TG_API_ID=
TG_API_HASH=
TG_PHONE=
TG_SESSION_STRING=
POSTGRES_HOST=postgres.monitoring-tg.svc.cluster.local
POSTGRES_PORT=5432
POSTGRES_USER=parser
POSTGRES_PASSWORD=parser
POSTGRES_DB=parser
PUBLIC_BASE_PATH=/api/monitoring-tg
LLM_ENABLED=true
LLM_BASE_URL=http://10.2.3.5:8002
LLM_API_KEY=
LLM_MODEL=qwen2.5-14b
```
Для локальной админской отладки можно задать `ADMIN_PASSWORD`, но в проде доступ
должен идти через портал.
## Запуск в k8s
Манифесты лежат в `k8s/`. Перед применением нужно заполнить `k8s/secrets.yaml`
реальными Telegram-кредами и, при необходимости, `LLM_API_KEY`.
```bash
kubectl apply -k k8s
```
Миграции выполняются entrypoint-ом контейнера перед запуском API.
## Структура
```text
src/parser_bot/
├── api/ FastAPI роуты + Pydantic-схемы
├── db/ SQLAlchemy модели + сессии
├── scheduler/ APScheduler-воркер периодического опроса
├── telegram/ Telethon-клиент
├── web/static/ страницы UI без бандлера
├── config.py pydantic-settings
└── main.py FastAPI lifespan + uvicorn
alembic/ миграции
k8s/ манифесты для портала
```