Как мы объединили популярные нейросети в одного Telegram бота

В пик хайпа ChatGPT, сидя в кафе, нам с другом пришла идея, а что если взять все самые хайповые нейросети и поместить в одного Telegram бота и вот что из этого вышло.

Развитие идеи.

Сначала мы решили начать с простого и взяли две нейросети от OpenAI, а именно: ChatGPT и DELL-E 2, было уже круто, но не хватало оптимизации и скорости генерации изображений и ответов, как раз в этот момент, изучая документацию API OpenAI я увидел, что их библиотека имеет асинхронность, счастью не было предела, скорость увеличилась в 2 раза, а бот перестал останавливать цикл работы при генерации.

Процесс реализации.

Это было самым весёлым и одновременно грустным моментом. Изначально мы делали бота синхронным, что не позволяло нам полноценно и с наслаждением пользоваться ботом, тогда было принято решение делать асинхронность! Процесс был тяжелым, но очень интересным, потому что я впервые углубился в разработку Telegram ботов, что дало мне большее представление на сколько это гибкая штука. Во время написания в наши головы приходило всё больше и больше идей и мы незамедлительно их реализовывали. После написания основной части, я решил добавить ещё одну нейросеть DreamAI в бота, затея была крутой, но вот реализация довольно скучной, так как нейросеть имеет множество стилей и их заполнение и обработка была однотипным и скучным процессом, но всё же это тоже было реализовано. На днях я принялся добавлять Stable Diffusion и вот только сегодня это случилось, безумно крутая нейросеть, которая позволяет генерировать по истине классные фотографии. На этом мы не планируем останавливаться и в разработке уже находятся QQ World и Midjourney. Кстати, 20% кода бота написал сам бот

Какие плюсы от этого?

Что-ж, эта идея дала огромный толчок для моих софт-скиллов. Благодаря этой идеи я был вынужден выучить Aiogram, aiohttp, понять работу асинхронности, изучить FSM и ещё множество всякого разного :)

До этого всего меня не особо тянуло на это, так как я занимался веб-разработкой и не часто сталкивался с Telegram ботами, поэтому писал их на pyTelegramBotAPI

Для людей, кто не понимает о чём идёт речь.

Что такое асинхронность? FSM и aiogram? Вам не нужно углубляться в это всё, простыми словами, изначально бот был написан синхронно, то есть выполнение каждой задачи было поэтапно и пока этот этап не завершится, то другой не начнётся. Асинхронность в точности наоборот, это процесс, когда этапы работы могут запускаться в разных потоках и работать одновременно

До чего это дошло?

Развитие бота было сложным, но главная идея была не в том, чтобы сделать из бота коммерческий проект на котором можно заработать, поэтому в наших глаза было рвение и огонь дальше развивать идею и у нас получилось.

В начале февраля начался огромный прирост пользователей, с 700 пользователей до 10.000 буквально за 10 дней, мы не были готовы к такому приросту, поэтому наши токены умирали буквально за пол часа, в этот момент содержания бота стоило 300 рублей в день, чтобы не закрывать проект мы решили ввести систему подписки, но не убрав возможность бесплатно пользоваться ботом. Было принято решение сделать 20 запросов в день, работа такова, что пользователю даётся 20 обращений к боту по их истечению пользователь не может пользоваться ботом до момента следующего дня, пока не обновятся запросы.

Итоги.

Сделав этот проект мы поняли, что можно сделать идеального бота со всеми удобствами, без лишних регистраций и прочего, да, функционал немного урезан, но всё же это не критично, фотографии так же получаются красивыми, а текст от ChatGPT помогает с многими задачами.

Примеры генерации изображений:

Как мы объединили популярные нейросети в одного Telegram бота
Как мы объединили популярные нейросети в одного Telegram бота
Как мы объединили популярные нейросети в одного Telegram бота

Как воспользоваться ботом?

Всё очень просто, переходим в Telegram и в поиске пишем @EdyaAIrobot или же просто тыкаем сюда -> *клац*

Если у вас есть какие-то вопросы по работе бота можете писать в личные сообщение Telegram -> *клац*

На закуску.

В качестве бонуса расскажу, как правильно генерировать качественные изображения, кстати, фотографии были сгенерированы ботом.

План для хорошей генерации

  • Тема картинки
  • Среда
  • Стиль
  • Разрешение
  • Дополнительные сведения
  • Цвет | Не обязательно
  • Освещение | Не обязательно

Первый делом нужно задать тему изображения, допустим "Космическая война", далее пишем среду "на марсе", стиль "ультра реализм", разрешение "4k ultra hd", дополнительные сведения "разрушенный корабль на заднем фоне, пыль, лучи солнца", цвет "в полном цвете", освещение "объёмное освещение"

Наш полный запрос: Космическая война на марсе, ультра реализм, 4k ultra hd, разрушенный корабль на заднем фоне, пыль, лучи солнца, в полном цвете, объёмное освещение.

Ответ от нейросети:

Как мы объединили популярные нейросети в одного Telegram бота

Впечатляет, но это ещё не всё! Добавляем скобки. Они служат увеличению приоритета над описанием фотографии, например если мы хотим, чтобы в нашем запросе приоритет стоял на корабль и лучи солнца, то запрос будет выглядеть так:

Космическая война на марсе, ультра реализм, 4k ultra hd, (разрушенный корабль на заднем фоне), пыль, (лучи солнца), в полном цвете, объёмное освещение.

Приоритет можно увеличить в 4 раза, то есть максимум 4 скобки.

Зададим такой запрос:

Космическая война на марсе, ультра реализм, 4k ultra hd, ((((разрушенный корабль на заднем фоне)))), пыль, ((((лучи солнца)))), в полном цвете, объёмное освещение.

Получим ответ:

Как мы объединили популярные нейросети в одного Telegram бота

Как мы видим, выставив приоритет и вправду акцент перешёл на корабль и солнце

Так же есть квадратные скобки, работают они в примерной аналогии с круглыми, но теперь они не усиливают приоритет, а "говорят" нейросети сколько шагов нужно пройти для того или иного описания, переделаем наш запрос:

[Космическая война на марсе:20], [ультра реализм:40], 4k ultra hd, ((((разрушенный корабль на заднем фоне)))), пыль, ((((лучи солнца)))), в полном цвете, объёмное освещение.

Что мы сделали? Мы показали нейросети, что "Космическая война на марсе" и "ультра реализм" должны пройти 20 и 40 шагов прежде чем нейросеть про них забудет, посмотрим, что получилось:

Как мы объединили популярные нейросети в одного Telegram бота

Спасибо всем, кто дочитал этот душевный рассказ!

7171
34 комментария

Текстовая нейросеть Davinci конечно выдает полный бред. Сделал такой же запрос в Chatgpt, и он хотя бы выдал правду про существующего футболиста. К сожалению, доверие к этой нейросети упало до нуля, пользоваться ей смысла не вижу.

6
Ответить

Текстовая нейросеть Davinci конечно выдает полный бред. Сделал такой же запрос в Chatgpt, и он хотя бы выдал правду про существующего футболиста. К сожалению, доверие к этой нейросети упало до нуля, пользоваться ей смысла не вижу.

Ответить

Согласен, с биографией, историей и т.п он не очень хорош, но к примеру помочь написать сочинение или даже код, он помогает. Множество раз меня выручал в написание кода

Ответить

Ясно понятно) На самом деле непонятно

6
Ответить

Бот просто по API обращается к другим сервисам, ничего инновационного тут нет. На картинках в посте объекты повторяются. Это баг Stable Diffusion, когда модель обучена под соотношение сторон 1к1.Есть сервис https://devoid.pics и бот https://t.me/ai_nsfw_bot, где можно бесплатно потыкать SD и генерировать любые изображения

2
Ответить

Не понял, как вы могли подключить chatgpt если у него еще не открыли API? Вы имеете ввиду davinchi?

Ответить

Да, но модель davinchi не слишком отличается от ChatGPT

1
Ответить