Как я перестал листать новостные каналы в Telegram: AI-бот присылает мне сводку дня в четырёх абзацах

Я хочу знать, что происходит в мире, но не хочу ради этого листать ленту. В новостных каналах сотни постов в день, и большая часть из них через неделю никому не будет важна: локальные события, фотографии животных, реклама, посты про одно и то же и т.п. Чтобы найти среди этого пару действительно важных новостей, уходит полчаса, и всё равно попадаются бесполезные посты.

Мне нужна была короткая сводка два раза в день: только главное, минимум времени, максимум информации. Готового решения под себя я не нашёл, поэтому собрал своё — Telegram-бота, который сам читает 8 новостных каналов и присылает сводку дня утром и вечером.

Собрал автоматизацию через Claude Code. Без него это заняло бы слишком много часов, и, возможно, я бы вообще не довёл проект до конца.

Как это выглядит для меня

В 07:00 и в 18:00 в личку приходит одно сообщение на 200–280 слов. Это не список постов, а связный текст из четырёх абзацев:

1. Главное событие в мире за период.

2. Россия — крупные события: внешняя и внутренняя политика, законы и т.п.

3. Другой регион мира, где Россия не главная тема. Например, выборы в Европе, крупные события в других странах.

4. Экономика, технологии и наука.

В каждом абзаце ключевые слова — это ссылки на исходный пост, так что любую новость можно открыть и прочитать подробнее. На всё уходит пара минут.

Вот кусок реальной сводки:

Пост новостного бота. Сгенерировано нейросетью.
Пост новостного бота. Сгенерировано нейросетью.

Ботом пользуемся вчетвером.

Как устроена логика (техническая часть)

Проект на Node.js. Логика разбита на пять шагов.

Шаг 1: сбор постов. Бот подключается к моему Telegram-аккаунту через пользовательскую сессию и забирает посты за последние 24 часа из 8 публичных каналов, российские и зарубежные. Подписываться на каналы для этого не нужно. Вместе с текстом приходит число просмотров каждого поста.

Обычный бот так не умеет: он видит посты канала, только если он там администратор. Поэтому ботов два — один читает каналы от моего имени, второй рассылает готовую сводку.

Шаг 2: убираем повторы и рекламу. Бот помнит, какие посты уже попадали в сводки, и пропускает их. Потом работает простой фильтр по регулярным выражениям: всё с пометкой #реклама, промокодами, «подпишись на канал» и рекламным токеном erid выбрасывается сразу. Делать это нужно до ранжирования: рекламный пост может набрать просмотров не меньше, чем настоящая новость.

Шаг 3: отбор по просмотрам. С каждого канала берутся самые просматриваемые посты: топ 10–20% с лимитом от 6 до 10 постов на канал. Лимит нужен, чтобы в спокойный день канал не протолкнул в сводку хвост постов, которые никто не читал. В среднем из ~240 постов за выпуск до нейросети доходит ~30.

Шаг 4: сводка через нейросеть. Отобранные посты вместе со ссылками уходят в GPT-5.4 с промптом, в котором описаны структура из четырёх абзацев, лимит слов и правила оформления ссылок. Вместе с постами нейросеть получает предыдущую сводку и инструкцию не повторяться. Если за полдня по теме ничего не изменилось, она к ней не возвращается.

Шаг 5: рассылка. Второй бот отправляет текст всем получателям. Подключиться может только тот, чей username я заранее добавил в список приглашённых. Если на бота наткнётся незнакомый человек, тот просто не получит ответа.

Всё крутится на бесплатном тарифе облачного хостинга, данные лежат в бесплатной облачной базе. Расписание проверяется раз в минуту, а сама сводка запускается в заданное время. Если сервер перезагрузится, бот не отправит один и тот же выпуск дважды: дата последней отправки сохраняется в базе.

Веб-панель

Чтобы ничего не менять в коде, я сделал страницу настроек. В ней можно:

- включить или выключить утренний и вечерний выпуск и поменять время;

- добавить или отключить канал и для каждого задать, какой процент лучших постов брать и сколько максимум;

- посмотреть, кто получает сводку, и пригласить нового человека;

- отредактировать промпт прямо в браузере или сбросить его к стандартному;

- нажать «Запустить сейчас» и посмотреть историю запусков: сколько постов было, сколько отобрано, всё ли прошло нормально.

Промпт к боту менял несколько раз, на основе обратной связи пользователей и своих предпочтений.

Стоимость

Около 200 рублей в месяц за обращения к OpenAI, это примерно 3 рубля за выпуск. Хостинг и база бесплатные. С конца августа бот отправил больше 80 сводок без единого сбоя.

Итог

Теперь я трачу на новости пару минут утром и пару минут вечером и знаю всё главное. В ленту новостных каналов я почти не захожу.

В своём Telegram-канале я делюсь такими проектами и рассказываю, как автоматизировать рутину с помощью нейросетей. Если есть вопросы по логике бота или промпту — пишите в комментариях.

33