Разработать бота для генерации контекстуальных стикеров
Бот находится в чате и считывает текстовое окно (далее - контекст), сохраняя последние 500 символов(~100 слов) в базу данных
Контекст сообщений при вызове командой бота подается на вход языковой модели, которая генерирует из диалога связный контекстуальный промпт. Далее этот промпт подается на вход диффузионной модели, на выходе которой уже и получаем нашу картинку - стикер
Функционал для парсинга сообщений из чатов с использованием библиотеки Telethon: извлекает сообщения из чатов пользователя и сохраняет их в формате контекст - путь до соответствующего стикера. Одной из ключевых особенностей решения является возможность гибкого и адаптивного парсинга сообщений
Для генерации описаний с спарсенным стикерам использовалась модель microsoft/Florence-2-base-ft. Она позволяет генерировать длинные и полные описания. Сохраняем датасет в виде пар context - caption
С помощью библиотек unsloth и trl дообучили на собранном датасете Qwen 2.5 7B на задачу генерации из контекстного окна (на русском) промпта (на английском)
- Parser # Функционал парсинга датасета
- ReadBot # Основная логика работы бота
- Preprocessing # Ноутбуки по обучению модели и сбору датасета
-
Склонируйте репозиторий
git clone https://github.com/firegory/StickerIt.git
-
Создайте виртуальное окружение, активируйте его
python -m venv .env
.evn/Scripts/activate
-
Установите необходимые библиотеки
cd StickerIt
pip install -r ReadBot/bot_and_dp/requirements.txt
-
Создать файл .env, поместить в него токен вашего бота
-
Добавить бота в качестве участника любого чата и дать ему права администратора
-
Запустить бота
python ReadBot/bot_and_dp/bot.py