Автономный телеграм канал, который ведут локальные нейросети
Причины
Канал Нейроведунья — демонстрация возможностей локальных автоматизаций на lowcode-платформе n8n и локальных нейросетей для генерации текстового и визуального контента на имеющемся оборудовании: Raspberry Pi 5 и MacBook Air M1 8GB. В данный момент используются:
Кейс можно масштабировать на другие задачи связанные с автоматической генерацией контента.
Архитектура
Ядро проекта — платформа для low-code автоматизаций n8n, которая работает в Docker на домашнем сервере Raspberry Pi 5.
Для подготовки контента использовался следующий подход с предварительным планированием контента:
- В одной таблице данных хранятся тезисы: темы постов — при желании их можно добавлять вручную.
- В другой таблице данных хранится контент-план: текст поста, промт для создания изображения, ссылка на изображение.
- Изображения хранятся на локальном SFTP-сервере.
Для автономного создания контента в автоматическом режиме, с помощью триггера-планировщика cron запускаются следующие потоки:
- Создание текста с помощью LM Studio
- Создание изображений с помощью ComfyUI
- Размещение поста
- Управляющие потоки
Также реализованы вспомогательные потоки:
- Отправка уведомления в Telegram
- Отправка ошибки в Telegram
Создание текста
Создание текста происходит в ночь с пятницы на субботу. Для создания текста используется LM Studio с моделью Gemma 3 4B, которая работает на MacBook Air M1 8GB.
Поток практически линейный, потому что LM Studio отправляет ответ на запрос, который запрашивает генерацию.
Создание текста происходит в 2 этапа:
- Создание тезисов
- Создание постов и промтов для изображений
Создание тезисов запускается, если их меньше двух: первый для текущей недели, второй — для анонса темы следующей недели в последнем посте. Тезисы формируются в 2 этапа:
- Придумать теорию заговора, перевернуть ее с ног на голову: подготовить тезис, и прислать в формате: теория, тезис, заблуждение о тезисе и правда о тезисе.
- Вырезать теорию заговора, оставив только тезис, заблуждение и правду — тем самым перевернув теорию заговора с ног на голову.
Дата и время постов генерируются случайным образом:
- Информационный пост: понедельник или вторник с 20:30 до 21:30.
- Пост с историей: среда или четверг с 20:30 до 21:30.
- Ритуал: пятница с 20:30 до 21:30.
- Выводы и анонс темы следующей недели: воскресенье с 18:30 до 20:30.
Далее генерируются сами посты и промты на английском для создания изображений. После создания поста и промта для изображения, они записываются в таблицу данных контент-планов вместе с датой публикации.
Создание промтов — самая сложная и долгая часть реализации. Слабые модели не очень корректно воспринимают контекст, постоянно нарушают инструкции, галлюцинируют и повторяются.
Создание изображений
Создание изображений происходит в ночь с субботы на воскресенье. Для создания изображений используется ComfyUI с моделью SDXL Turbo, которая работает на MacBook Air M1 8GB.
Для всех постов недели запускается генерация изображений по англоязычным промтам, потому что русскоязычные промты генерируют изображения в стиле 19 века. Вместо людей на изображениях — антропоморфные коты, потому что с генерацией кошачьих мордочек слабая нейросеть справляется значительно лучше, чем с человеческими лицами.
Запуск создания изображения осуществляется отдельным запросом. Далее запускается цикл, который раз в некоторое время проверяет состояние генерации изображения. После того, как изображение сгенерировано — оно открывается и загружается по SFTP, а путь к нему записывается в таблицу с контент-планом. Цикл генерирует изображения для всех постов недели.
Размещение поста
Поток размещения поста запускается ежедневно и проверяет, есть ли в контент-плане посты на текущую дату. Если есть — запускается ожидание времени публикации.
В зависимости от наличия ссылки на путь к изображению, происходит размещение поста: если она есть, изображение загружается по SFTP и в телеграм отправляется картинка с подписью, но если ссылки на путь нет — в телеграм выкладывается простой текстовый пост.
Управляющие и вспомогательные потоки
Управляющие потоки для создания текста и изображений запускаются вечером в день генерации контента и отправляют уведомление в Telegram о необходимости запустить приложение и загрузить ИИ-модель. Ночью, после нескольких часов ожидания, запускается основной генерирующий поток, который также можно запустить вручную, если во время автоматического выполнения произошла ошибка.
Вспомогательные потоки — единые для всех проектов и их задача отправлять предупреждения и ошибки в Telegram.
Результаты
В результате мне удалось создать развлекательный псевдоэотерический контент про то, что вышки 3G и 5G защищают от порчи и сглаза, а смартфон — это цифровой щит. Использование слабых локальных моделей на низкопроизводительном оборудовании не портит содержание, а создает дополнительный юмористический аспект.
Используемые практики планирования контента в дальнейшем можно применить для автоматической подготовки контента для контент-менеджеров, SMM-специалистов, email-маркетологов и даже написания полноценных статей — при условии использования производительных облачных или локальных моделей.