dmilyin.ru AI-разработка · Нижний Новгород · обновлено 2026-07-09


Кейсы Клиентский проект

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

Продажи через Telegram-канал, а посты — руками. Собрал контент-систему под ключ: один контур рерайтит чужие посты, другой генерирует оригинальные посты с веб-поиском, модерацией и расписанием.

Обложка кейса: Контент-система для Telegram-канала под ключ: сбор с AI-рерайтом, генерация оригинальных постов и публикация по расписанию

Задача

Бизнес продаёт через Telegram-канал — канал и есть витрина. Чтобы он работал, нужен постоянный поток постов: и подборки по теме (то, что уже выходит в смежных каналах), и собственные экспертные посты про товар. Вручную это не тянется: владелец не может весь день мониторить чужие каналы, переписывать посты и сочинять новые.

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

Решение

Я собрал не «бота-рерайтера», а контент-систему управления каналом из двух рабочих контуров и общего слоя настроек. Один ответственный за весь стек: сбор, AI, админка, расписание, инфраструктура.

Контур 1 — входящий поток: сбор и рерайт, автономно. Userbot на Telethon подписан на тематические каналы-источники и слушает новые сообщения. Альбомы (несколько фото с одним grouped_id) буферизируются 3 секунды и собираются в единый пост; отдельно обработана сборка медиа из разных дата-центров Telegram (обход известных багов Telethon) и orphan-медиа без подписи, которое ждёт текст до 20 секунд. Сообщения складываются в очередь в PostgreSQL (async SQLAlchemy 2.0 + asyncpg, миграции Alembic), переписываются через AI с мульти-провайдером (OpenRouter / DeepSeek / Gemini) с ротацией ключей и fallback между провайдерами, и публикуются в целевой канал с заданным интервалом. Весь цикл крутят четыре фоновые задачи с разными интервалами — рерайт, сборка постов, закрытие orphan-медиа, публикация — с корректным завершением по SIGINT/SIGTERM. Файлы на диск не качаются: хранятся только file reference от Telegram.

Контур 2 — исходящий поток: генерация оригинальных постов, модерация, расписание. Бот на aiogram 3. На входе — название товара; дальше LangGraph-пайплайн делает веб-поиск через Tavily и генерирует экспертный пост через LLM с защитой от галлюцинаций (факты из поиска, а не из головы модели). Провайдеры тоже с ротацией и автофолбэком (ProviderRouter: OpenAI-совместимые + Gemini). Готовый черновик уходит в TG-админку: создание поста, очередь постов с пагинацией, модерация inline-кнопками (принять, отклонить, отредактировать, перегенерировать, удалить, теги), поддержка медиа и альбомов. Посты ставятся в очередь и публикуются по расписанию — APScheduler с cron, который настраивается прямо через бота, без рестарта. Через бота же меняются системный промпт, расписание и конфиг LLM-провайдеров. Доступ — по белому списку: аккаунты-админы и редакторы заносятся в whitelist чатов в БД, кого не добавили — бот игнорирует. В личке у админа полная админка, в рабочей группе несколько редакторов модерируют посты совместно через inline-кнопки.

Общий слой. Оба контура пишут в один целевой Telegram-канал и настраиваются через бота. Так из «канала, который ведут вручную» получается канал с очередью, расписанием и модерацией — то, чего в Telegram нет нативно.

Архитектура контент-системы: контур сбора с AI-рерайтом и контур генерации сходятся в один Telegram-канал, дальше — дистрибуция в VK

Контур 3 — дистрибуция в VK. Отдельный бот слушает целевой Telegram-канал и репостит контент в VK-группу с AI-рерайтом под площадку; управление через бот-команды (/start, /pause, /stats). Контур проще двух основных — по сути управляемый кросспост, — но он расширяет охват одного и того же контента на вторую площадку без двойной ручной работы.

TG-админка бота: создание поста, очередь, настройки промпта, расписания и LLM-провайдеров прямо в Telegram

Стек

Python · Telethon (userbot) · aiogram 3 (бот-админка) · LangGraph + Tavily (веб-поиск → генерация) · OpenRouter / DeepSeek / Gemini (ротация + fallback) · PostgreSQL · SQLAlchemy 2.0 (async) + asyncpg · Alembic · APScheduler (cron) · Docker + docker-compose · pytest

Результат

  • Канал ведётся как система, а не вручную: входящий контур сам собирает и рерайтит посты из источников, исходящий — генерирует оригинальные посты с веб-поиском, модерацией и публикацией по расписанию.
  • В Telegram добавлены очередь, расписание и админка с модерацией, которых там нет из коробки; владельцу остаётся одобрять и править готовые посты в один-два клика.
  • Надёжность под автономную работу: мульти-провайдер AI с fallback (один провайдер упал — подхватывает следующий), четыре фоновые задачи с graceful shutdown в контуре сбора, 103 теста и контейнеризация в контуре генерации — это production, а не скрипт «на коленке».
  • Третий контур разносит тот же контент в VK без отдельной ручной работы.

Инфографика «вручную vs с контент-системой»: 18–35 минут на пост против 6–12, ≈8 часов в неделю против ≈2

Оценочно, по отраслевым нормам 2026 (Sprout Social, Hootsuite, Buffer; сводки Stealth Agents и Picmim): ручное ведение контент-канала — это 18–35 минут на один пост, 4–7 постов в день силами одного человека и около 8 часов в неделю на канал, причём стабильный ритм 90 дней удерживает лишь ~61%. С автоматизацией те же ориентиры сдвигаются к 6–12 минутам на пост, 10–18 постам в день и ~2 часам в неделю при удержании ритма ~83%.