Контекст
How2AI — Telegram-канал с активным комьюнити по теме ИИ. Целевая аудитория — техническая, обсуждения сложные. Спамеры мимикрируют: вместо явной рекламы — «вопрос с примером», где пример — это ссылка на их продукт.
Архитектура
Два слоя классификации, потому что один слой даёт либо много false-positive (бан полезных вопросов), либо пропускает контекстный спам.
- Слой 1 — Claude Sonnet: дешёвая, быстрая (~1 сек), отлавливает явное: рекламные блоки, фишинг, известные паттерны. Confidence > 0.9 — мгновенный бан.
- Слой 2 — GPT-4 с контекстом: для сообщений 0.5 < confidence < 0.9 — анализирует в контексте последних 10 сообщений. «Это нормальный вопрос с примером или замаскированная реклама?»
- Очередь на проверку: если оба слоя не уверены — сообщение остаётся, админ получает уведомление и решает.
- Логи: все решения в PostgreSQL, каждое можно проверить и оспорить через команду в Telegram.
Метрики
За 6 месяцев непрерывной работы:
- Явный спам (реклама, ссылки, фишинг): 100% отлов
- Контекстный спам: ~92% отлов, 8% false-negative
- Спам в публичном канале: ~30/день → 0–2/день
- Нагрузка админов на модерацию: −10× по времени
Ограничения
3% false-positive по сложным сообщениям с обилием ссылок — попадают в очередь на проверку, а не в моментальный бан. Это компромисс: либо медленнее (но точнее), либо мгновенный бан с риском задеть полезное сообщение. Выбрали первый путь.
Контекстный спам с тонкой завуалированной рекламой ловим ~92%. Для оставшихся 8% требуется итеративная докрутка промптов и базы примеров — это непрерывный процесс.