В современном мире ИИ развивается с бешеной скоростью, помогая реализовывать низкоуровневые задачи, где-то даже заменяя самого специалиста. Несколько месяцев назад ко мне пришел друг - у него свой бизнес, он начал жаловаться, что ему не хватает времени вести рабочие соц. сети. И тут я задумался: а что, если попробовать автоматизировать процесс полностью? Уменьшить рутину, убрать человеческие ошибки и сделать ведение контента максимально лёгким.
Как всё начиналось:
У друга есть Telegram-канал, куда он выкладывает информацию о своём продукте. Посты выглядят просто: 2–3 фото, описание, призыв к действию, ссылка на сайт. Однотипно, скучно, но без этого нельзя.
Каждый пост — копипаст с небольшой правкой. Рутина, которая съедает время.
А если поручить это боту? Причём не просто автоматически постить, а генерировать уникальный контент под каждый продукт с помощью ИИ.
Почему не готовые сервисы?
Я рассматривал SMM-панели и конструкторы автопостинга. Но у них есть минусы:
шаблонные тексты, которые не цепляют
нельзя гибко настраивать промты
нет привязки к вашей таблице с планом публикаций
обычно платно и с ограничениями
Поэтому я решил написать своего бота.
Архитектура решения:
Google Sheets (план публикаций)
↓
gsheet.py (парсинг)
↓
generator.py (OpenAI API)
↓
poster.py (Telegram Bot API)
↓
scheduler.py (планировщик)
Стек:
python-telegram-bot— отправка постовopenai— генерация текста (GPT-4.1-mini)google-api-python-client— чтение Google Sheetsasyncio+ ручной планировщик — ежедневный запускpython-dotenv— хранение токенов
Как это работает изнутри
1. Гугл-таблица — как CMS
Я создал таблицу с колонками:
Дата | Тема | Промт | Фото 1..7 | Характеристики |
|---|
Менеджер (или сам владелец) заполняет только: тему, промт, ссылки на фото и технические характеристики (если нужен товарный пост). Всё остальное делает бот.
2. Два режима генерации текста
В generator.py я сделал разделение:
Режим «каталог» (есть характеристики) — сухие данные превращаются в продающий пост:
Модель: Артикул Х
Размеры: 25×15 см
Материал: металл, матовое стекло
→ GPT превращает это в связный текст с эмоцией и призывом.
Режим «атмосфера» (нет характеристик) — чистый сторителлинг на заданную тему:
Тема: «Как цвет влияет на восприятие»
→ Генерируется 2–3 абзаца в лёгком, дизайнерском стиле.
3. Автохэштеги
Без хэштегов никуда. Функция build_hashtags() анализирует тему и характеристики, подбирает релевантные теги (например, #новинка, #обзор, #полезное). И добавляет фирменный хэштег бренда.
4. Telegram-публикация
Фото отправляются группой (до 7 штук), текст обрезается под лимит 1024 символа. Если фото нет — отправляется только текст.
5. Планировщик с московским временем
Готовые планировщики (schedule, apscheduler) не всегда корректно работают с часовыми поясами. Поэтому я написал свой scheduler_async() с ручным расчётом времени до следующего запуска (в конфиге задаётся время, например POST_TIME = "13:00").
Подводные камни, о которых молчат
Лимит caption в Telegram
1024 символа — мало. Пришлось писать функцию fit_to_caption(), которая аккуратно обрезает по точке или переносу строки, не разрывая слова.
GPT иногда врёт
Если в промте не запретить выдумывать характеристики — придумает несуществующие. В моём коде чётко написано: «Запрещено выдумывать характеристики, которых нет».
Google Sheets API — квота
Бесплатно 500 запросов в сутки. Для одного канала хватает, но если масштабировать — надо следить.
Результат: а нужен ли теперь контент-менеджер?
Спойлер: нужен, но его роль меняется.
Что делал раньше | Что делает бот |
|---|---|
Придумывал текст поста | ✅ Генерирует |
Форматировал | ✅ Форматирует |
Добавлял хэштеги | ✅ Подбирает |
Публиковал вручную | ✅ Постит по расписанию |
Планировал контент | ❌ Только человек |
Человек остаётся стратегом: выбирает тему, ставит задачи ИИ, проверяет качество. А бот берёт на себя чёрную работу.
За месяц использования появилась регулярность публикаций, а вовлеченность выросла - потому что посты перестали быть шаблонными.
Исходный код
Весь код выложен на GitHub. Главные файлы:
config.py— настройки и переменные окруженияgenerator.py— работа с OpenAIgsheet.py— чтение из Google Sheetsposter.py— отправка в Telegramscheduler.py— ежедневный запуск
Вывод
Давайте подведем статью к какому-то логическому завершению. Не было изобретено ничего нового, это скорее я решил поделиться с вами мыслями про автоматизацию, как и в прошлой статье про "поиск в проектах". Все равно нельзя полностью исключить человека из данной цепочки, ИИ не заменит (хотя я уже везде добавляю слово "вряд ли"), вряд ли заменит человека.
