Мой путь разработчика телеграм ботов. Бот ПостМастер9000
Всем привет. Меня зовут Евгений. По образованию я культуролог, по деятельности - арбитражник.
Полтора месяца назад решил немного расширить знания и начал изучать ботостроение в телеграм, так как это направление показалось мне достаточно перспективным. Плюсом добавил к практическому изучению генеративные нейросети.
Спустя месяц на выходе получилось несколько тг-ботов (о них расскажу в следующих постах), но флагманский - ПостМастер9000.
Что это за бот?
ПостМастер9000 автоматически наполняет телеграм каналы с помощью LLM постами по заданным критериям с заданной периодичностью. Механизм простой: нужно добавить канал, выставить настройки и всё, дальше бот будет наполнять канал разнообразным контентом.
Тех. часть
Изначально технически всё готовилось достаточно просто. Прототип был написан за день (Python+json для хранения данных) + 2 дня отлов багов и тестирование и ещё 1 день - доработка части функционала.
Самые главные сложности были связаны с LLM. Как оказалось генеративные нейронки (даже мощные и дорогие) откровенно туповаты для сложной и разнообразной генерации.
Перепробовал разные LLM, множество настроек промтов. В итоге, финальный промт собирается как конструктор, создавая почтив всегда уникальный промт и на выходе уникальный пост.
Плюсом многие LLM, особенно семейства mini, не любят придерживаться строгих промтов, особенно в ограничениях количества символов. Решение - переход на флагманские LLM с кешированием.
Ещё одна сложность - картика + текст. Телеграм ограничивает текст в caption до 1024 символов. Чтобы это обойти, картинка добавляется поверх поста, а сам пост идёт реплаем к картинке.
Для поиска картинок использую api pexels. Но это временное решение, так как картинки часто добавляются нерелевантные.
В планах интегрировать генерацию через LLM, но на данный момент это коммерчески невыгодно.
Ещё у бота есть полноценные админка и система аналитики (пока простая, но информативная).
Вот такой бот и немного сумбурный первый пост. Буду рад критике и любому фидбеку. На вопросы отвечу. юзернейм бота: @postmaster9000_bot