big
Исходный размер 1920x1080

Insight Bot: итоги года для Telegram-канала в формате сторис

big
Исходный размер 1920x1080

Миссия проекта:

Дать автору любого Telegram-канала посмотреть на свой канал со стороны — так же легко и весело, как Spotify Wrapped показывает итоги года в музыке.

Задачи, которые я перед собой поставила:


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

МОЯ РОЛЬ

Проект полностью мой — от идеи до запуска. Что я делала:


Продукт.

Придумала формат: колода сторис-карточек с ярлыками: архетип канала по Юнгу, хронотип («сова», «жаворонок»), уровень токсичности, языковой возраст.

Дизайн

Нарисовала в Figma фоны и вёрстку всех карточек колоды, всего 57 штук. Русскую и английскую версии вех карточек. Цифры и слова бот накладывает на мои фоны автоматически.

Все карточки в Figma

Разработка

Собрала бота на Python: чтение каналов, разбор текста (определение языка, леммы, имена, города, эмоции, мат), генерация карточек, очередь, оплата. Разрабатывала вместе с ИИ-ассистентом Claude: я ставила задачи, принимала решения и проверяла результат

Масштабирование

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

Запуск и эксплуатация

Сервер, оплаты, прокси, покупные аккаунты для просмотра каналов, рассылки пользователям, дашборд со всеми метриками, оповещения об ошибках.

0
1/2

КАК ЭТО РАБОТАЕТ

Присылаешь боту ссылку на канал — через полминуты получаешь колоду.

Исходный размер 1920x1080
Исходный размер 1920x1080

Стек технологий


Бот: aiogram 3.x
Telegram-клиент: Telethon (пул из 3 аккаунтов)
NLP: pymorphy3, Natasha NER, NLTK
Визуализация: matplotlib, wordcloud
База данных: SQLite (WAL mode)
Мониторинг: Prometheus, Sentry

Ключевые решения



— Пул аккаунтов — 3 Telethon-аккаунта с автоматической ротацией при FloodWait, приоритетная очередь для отложенных анализов
— Двухуровневый кэш — in-memory + диск (`cache/`) для минимизации запросов к API
— Потокобезопасные графики — только OOP API matplotlib
— Атомарные платежи — единая транзакция для обновления баланса + записи платежа, уведомление админа при сбое
— Ленивая загрузка NLP — модели pymorphy3/Natasha (~2с) загружаются при первом использовании, не при импорте

Конвейер анализа

боты-читатели — 10 ботов (Telethon bot-сессии), читают посты по id пачками по 100; без реакцийTelethon-аккаунт — основной: реакции и хиты для платных (параллельно ботам), запасное чтение; @ltdnt: только закрытые каналыпул разбора — 2 процесса ProcessPoolExecutor, прогреты при старте: pymorphy3, natasha, spaCyосновной цикл — asyncio-цикл бота: подсчёты Counter, build_v2_card_data, чтение SQLiteнейросеть — внешний API (Groq, модель Qwen): фраза, архетип, темы
поток рендера — 1 поток + Chromium (Playwright): HTML → JPEG, облака слов, эмодзи

🆓 Бесплатно — по последним 100 постам:

🪪 Обложка и канал в цифрах
☁️ Облако слов и самое частое слово
🧒 Языковой возраст

Исходный размер 1920x1080

💎 Полный анализ (за ⭐️) — до года канала:

Всё из бесплатного, плюс:
👤 Главный герой канала
😀 Палитра эмоций
📚 Словарный запас за год
🤬 Облако мата и токсичность
🌙 Хронотип
✨ Канал в одной фразе
🎭 Архетип Юнга
❤️ Реакции и хиты
🏁 Итоги года с редкостью ваших архетипов

0
1/2

КОЛОДА



— Обложка: сколько постов и с какой скоростью пишет канал
— Облако слов и самое частое слово
— Архетип по Юнгу: Шут, Мудрец, Бунтарь… и насколько он редкий
(«реже, чем у 94% каналов»)
— Хронотип: по времени постов — Сова, Жаворонок, Лунатик.
— Токсичность и облако мата — самая популярная для репостов карточка
— Языковой возраст: «канал звучит на 23 года»
— Визитка года: всё главное на одном кадре для сторис

Бот не генерирует карточки с нуля, он получает бекграунды куда вписывает уникальный текст

Карточки и используемые для анализа библиотеки Python

1/2

Очередь и защита

• Умная очередь: места для бесплатных, никто не ждёт вечно, /queue и /cancel
• Заявки и анализы переживают перезапуск, колода не приходит дважды
• Любая ошибка сразу приходит админу в Telegram
• Запасная нейросеть на случай лимита основной
• Сторож аккаунтов и читателей, внешний пульс
• Аудит перед запуском и закрытие всех находок
• /close и /open закрывают бота без перезапуска

Дизайн

Исходный размер 3600x2400
Исходный размер 1920x1080
Мы используем файлы cookies для улучшения работы сайта и большего удобства его использования. Более подробную информац...
Показать больше