Бото-новости + эльфо-стикеры (18+)

Автор: Sango

Прошла всего какая-то неделя с прошлого бото-поста, и вот - новая часть этой эпопеи. Честно говоря сам не думал что буду в скором времени что-то переделывать в боте, причем достаточно заметное чтобы посвятить этому бложик. Однако…


Знаете что такое чекбокс? Сто процентов все видели такой или подобный ему элемент интерфейса на каких-либо сайтах или в каких-либо программах:



Можно сравнить с кнопкой. Включил - получил один результат, выключил - получил другой результат. Просто и понятно.

В текущей реализации телеграмма из интерфейсных фишек есть только кнопки, и нет чекбоксов. А между прочим я давно задумывался о чем-то «таком этаком включательно-выключательном» для своего бота, чтобы можно было легко докидывать и также легко убирать стили, флаги, параметры генерации, без муторного ручного редактирования или без отката промпта на начальный вариант.

И вот недавно погуглив эту тему, я нашел вполне элегантное и в принципе несложное решение - редактирование inline-клавиатуры, когда в тексте кнопок присутствуют иконки, соответствующие включенному и выключенному чекбоксу.



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



Покажу в примерах:

1. Вводим некий запрос



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

2. Вызываем опции (пока вызываются командой test, потом переименую)



3. Если нажать на пункт flag, открывается меню выбора флагов



Флаги являются независимыми чекбоксами, и можно выбирать любой из них в любой комбинации, добавляя соответсвующие параметры к промпту



Главная прелесть что чат не заспамливается новыми сообщениями, при нажатии на тот или иной пункт меняется само меню кнопок, причем меняется достаточно быстро.

4. Аналогичным образом выглядит раздел styles для добавления в промпт тех или иных стилей



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



Данный механизм реализован упростить работу с промптами и с перебором различных стилистических вариаций. Теперь после ввода запроса можно легко и удобно менять его параметры и смотреть что из этого получается. А вообще как и все предыдущие доработки - в первую очередь это был вызов самому себе и способ занятно провести несколько вечеров, развлечься и прокачать свои навыки разработки.



Конечно уже в голове есть список доработок. Отрефакторить код (писал тяп-ляп ориентируясь в первую очередь на работоспособность), закрыть несколько дыр (есть тонкие места которые могут нарушить стабильность работы бота), сделать режим multistyle (чтобы можно было включать несколько стилей если захочется), добавить стилей и флагов, добавить еще пару менюшек.  Ну и прочее, и прочее, и прочее…



Ну и конечно же) Снова эксперименты со стилями. Точнее взял готовый промпт (увидел в группе в ВК буквально 15 минут назад) и выдрал стиль из него. Стикеры с голыми эльфийками!


18+

Небольшой косяк - при переписывании механизма работы с промптом зафакапил в коде настройку размера генерации, и пока по сути имею всего два варианта размером. Поправлю вечером как доберусь до дома до компа. Так то по хорошему надо было генерировать 1024 на 1024. Ну и стиль немного доработать для уменьшения косяков. Что сказать - быстрый эксперимент)


+323
1 059

0 комментариев, по

86K 6 055 2 498
Наверх Вниз