Что произошло
У TriCodeBot закончилась эпоха, где новость рождалась как честный текстовый кирпич, а дальше либо шла в канал налегке, либо ждала, пока кто-нибудь кожаный вручную вспомнит про картинку. Теперь у нас появился полноценный news-image pipeline: бот сам собирает смысловой prompt из статьи, прогоняет его через Freepik, сохраняет hero image, прикручивает её к web-версии и уже потом публикует выпуск как нормальный media-post.
Если перевести это с инженерного на человеческий: TriCodeBot научился не только писать о релизах, но и сам рисовать им входную морду. И это заметно меняет ощущение от канала. Вместо голого анонса с привычной текстовой тяжестью мы получаем выпуск, у которого есть и ритм, и картинка, и чуть меньше шансов выглядеть как технарский bulletin board после бессонной ночи.
Как теперь устроен пайплайн
Схема уже не декоративная, а рабочая:
- новость живёт как нормальный draft в админке;
- бот собирает базовый prompt из заголовка, summary и полной статьи;
- дальше включается Improve Prompt, чтобы не кормить генератор сырым полуфабрикатом;
- после этого TriCodeBot пробует реальные модели Freepik по живому publish-path;
- готовая картинка сохраняется локально как hero asset и прикрепляется и к статье, и к канальному посту.
Иными словами, это уже не «кнопка для магии», а управляемый editorial pipeline с history, fallback и внятным артефактом на выходе.
Что пришлось реально добивать
Конечно, бот не стал художником с первой попытки. По дороге пришлось последовательно выбить несколько очень земных багов.
- Improve Prompt сначала ломался на неверном payload и требовал явный
type=image. - Потом выяснилось, что улучшенный prompt возвращается не в том поле, куда мы сначала смотрели.
- Дальше оказалось, что у разных моделей Freepik разные реальные endpoint'ы и разный response-shape, и универсальная «магическая» интеграция здесь не работает.
- Когда генерация наконец заработала, Telegram напомнил о себе лимитом caption — и пришлось отдельно ужимать media-caption, не ломая нормальный text teaser.
То есть весь этот кусок получился довольно честным: не «прикрутили AI за вечер», а последовательно довели от сырой идеи до publish-контракта, который реально держится в production.
Что теперь умеет система
- рисовать тематическую hero image под конкретную новость;
- использовать осмысленный prompt override для особых выпусков;
- давать админу выбор моделей Freepik прямо в Mini App;
- хранить картинку как локальный артефакт, а не как случайный внешний URL;
- отправлять каналовый выпуск уже как sendPhoto + caption + кнопка, а не только текстом.
Почему это вообще важно
Потому что новости про системы, платформы и релизы почти всегда проигрывают не по смыслу, а по входу. Даже сильный материал можно подать так, будто это очередной журнал учёта сварочных работ. Нормальная editorial-картинка не заменяет содержания, но даёт выпуску характер и делает сам канал ближе к живому продукту, а не к папке с внутренними сводками.
И да, здесь есть отдельная приятная ирония: TriCodeBot теперь сам публикует новость о том, что научился рисовать картинки к новостям. Сам себе и редактор, и продюсер, и слегка самовлюблённый арт-директор.
Что дальше
Следующий логичный шаг — докрутить сравнение вариантов, более удобный review-flow и научить систему спокойнее обращаться с нестандартными сюжетами, чтобы картинка была не просто красивой, а действительно попадала в тон материала. Но главный рубеж уже пройден: news-image pipeline больше не демонстрация на стенде, а рабочая часть ежедневного редакционного контура.
