
При разработке SpamAway (антиспам-бота для Telegram) встал вопрос выбора модели. Бот должен в реальном времени проверять входящие сообщения, классифицировать их и при необходимости удалять. Нагрузка небольшая, но постоянная: 10–15 чатов, до 5000 сообщений в сутки.
Казалось бы, логично использовать отечественные решения: GigaChat или YandexGPT. Они отлично понимают русский сленг, сарказм и специфические “крипто-офферы”. Однако при попытке вписать их в бесплатный тир (freemium) или низкий бюджет начинаются проблемы.
Стек и условия задачи
Для классификации сообщения используется промпт с несколькими примерами (few-shot).
Средний размер сообщения: 50–100 токенов.
Промпт с контекстом и правилами: ~500 токенов.
Итого: ~600 токенов на одну проверку.
Цель: найти модель с бесплатным лимитом, достаточным для 1000+ проверок в сутки без задержек.
GigaChat (Сбер)
Сбер предлагает заманчивый Freemium для физических лиц через GigaChat API. По документации это выглядит щедро:
900 000 токенов в год для модели Lite.
50 000 токенов для Pro и Max.
Но есть критическое ограничение: один поток. Это означает, что API обрабатывает строго один запрос в единицу времени. Если в три разных чата одновременно прилетели сообщения, бот будет проверять их в очереди. Для антиспам-фильтра, где важна скорость реакции, это неприемлемо.
Математика лимитов тоже расстраивает. 900 000 токенов / 600 на проверку = всего 1500 проверок в год. Это меньше пяти проверок в день. Для живого чата такой лимит исчерпается за полчаса.
YandexGPT (Yandex AI Studio)
У Яндекса ситуация иная. Честного бесплатного тира для API по сути нет. Есть стартовый грант (~4000 рублей на 60 дней) при регистрации в Yandex Cloud.
Цены после гранта:
YandexGPT 5.1 Lite: 20 копеек за 1000 токенов.
YandexGPT 5.1 Pro: 40 копеек за 1000 токенов.
Проверка одного сообщения обойдется в 0,012 рубля. Это дешево, но требует привязки карты, работы с биллингом облака и оплаты в рублях. Для пет-проекта или Open Source инструмента это лишний порог входа.
Gemini Flash (Google)
На этом фоне Google Gemini 2.5 Flash выглядит как “чит-код”. Бесплатный уровень (Free tier) предлагает:
15 запросов в минуту (RPM).
1 миллион токенов в день.
Отсутствие лимита на количество потоков (в рамках RPM).
Даже при 600 токенах на сообщение мы получаем около 1600 проверок в день абсолютно бесплатно. Этого с запасом хватает для SpamAway.
Сводная таблица
Параметр |
GigaChat Free |
YandexGPT (Lite) |
Gemini Flash (Free) |
|---|---|---|---|
Бесплатный лимит |
1500 пров./год |
Грант на 60 дней |
~1600 пров./день |
Параллельность |
1 поток |
Несколько |
15 RPM |
Цена (100K токенов) |
~6.5 руб (пакет) |
20 руб |
$0 |
Работа из РФ |
Нативно |
Нативно |
Через прокси/VPN |
Ограничения и выводы
Российские нейронки отлично справляются с качеством текста, но их API-политика пока не дружелюбна к маленьким бесплатным проектам. Лимиты Сбера ориентированы скорее на “попробовать один раз”, чем на постоянную работу бота. Яндекс же сразу переводит в коммерческую плоскость Cloud-инфраструктуры.
Gemini Flash — лидер для селф-хостинг решений благодаря огромному бесплатному окну. Главный риск здесь — нестабильность доступа из РФ, что решается поднятием прокси-сервера.
В проекте SpamAway выбор сделан в пользу Gemini. Это позволяет держать бота бесплатным для сообществ, не жертвуя скоростью и качеством фильтраци
Подробнее о настройке и архитектуре антиспам-системы я пишу в своем канале: @popovvii.
Noizefan
Как решаете 503 This model is currently experiencing high demand. Spikes in demand are usually temporary. Please try again later. ?
Нужно DLQ с отлёжкой, бесплатно - не равно "можно некачественно".
Это, если что, не что-то узкое или специфичное, а 10-15% от всех сделанных лично у меня
StudyQA Автор
Справедливое замечание. 503 действительно прилетает, особенно в пиковые часы.
У меня реализовано так: при 503 или 429 сообщение уходит в retry-очередь с экспоненциальным backoff (1с, 3с, 9с, максимум 3 попытки). Если все три попытки неудачные, сообщение пропускается без проверки и логируется для ручного разбора.
Для антиспама на моем уровне это допустимый компромисс: лучше пропустить одно сообщение, чем задержать очередь. Спамеры редко отправляют одно сообщение, второе или третье уже поймается. Полноценный DLQ с отложенной обработкой тоже вариант, но для антиспама теряет смысл: если проверять сообщение через 5 минут, спам уже прочитали. Скорость реакции важнее 100% coverage.
10-15% ошибок это много. У меня в среднем 2-3%, но бывают всплески до 8-10% на 15-20 минут. Если у вас стабильно 10-15%, возможно стоит посмотреть в сторону нескольких API-ключей с round-robin или fallback на вторую модель?
ASD2003ru
Можно посмотреть в сторону omniroute . Позволяет объединять разных провайдеров и модели + делать fallback + балансировку. В принципе на бесплатных провайдерах/моделях можно собрать.