Телеграм-бот для создания обоев на основе текстового описания с использованием OpenAI API
Это телеграм-бот предназначен для создания обоев для устройств на основе текстового описания, используя модель генерации изображений от OpenAI. Пользователи могут отправлять текстовые описания, а бот использует API OpenAI для генерации изображений, которые затем отправляются обратно пользователю в качестве обоев.
Установка и настройка:
-
Установите зависимости:
Перед началом использования убедитесь, что у вас установлены все необходимые зависимости. Вы можете установить их, выполнив следующую команду:
pip install -r requirements.txt
-
Регистрация бота в Telegram:
- Зарегистрируйте нового бота в Telegram, следуя инструкциям здесь.
- Получите токен бота от BotFather и сохраните его.
-
Получение API-ключа OpenAI:
- Зарегистрируйтесь на сайте OpenAI.
- Получите API-ключ, выбрав нужный тарифный план.
-
Настройка файла конфигурации:
- Создайте файл
config.py
на основеexp.config.py
. - Заполните поля
AI_TOKEN
(API-ключ OpenAI),BOT_TOKEN
(токен бота Telegram) иADMIN_ID
(ID администратора бота).
- Создайте файл
-
Запуск бота:
- После настройки всех необходимых параметров запустите файл
bot.py
:
python bot.py
- После настройки всех необходимых параметров запустите файл
Использование:
-
Команда /start:
- Начните общение с ботом, отправив команду
/start
. - После выполнения этой команды бот начнет ожидать от вас текстовое описание для создания обоев.
- Начните общение с ботом, отправив команду
-
Отправка текстового описания:
- После отправки команды
/start
отправьте боту текстовое описание, которое вы хотите преобразовать в обои. - Бот начнет процесс генерации изображения на основе вашего описания.
- После отправки команды
-
Команда /stats:
- Для получения статистики использования бота отправьте команду
/stats
. - Эта команда доступна только администратору бота.
- Для получения статистики использования бота отправьте команду
-
Получение обоев:
- После генерации изображения бот отправит вам результат в виде обоев для вашего устройства.
Примечание:
- Перед использованием убедитесь, что у вас установлены все необходимые библиотеки и вы заполнили файл
config.py
корректно. - Пожалуйста, обратите внимание, что использование OpenAI API может потребовать дополнительных платежей в зависимости от вашего тарифного плана.
- Этот бот предоставляется "как есть" без каких-либо гарантий или обязательств. Вы используете его на свой страх и риск.
Версия 2.0.2
bot.py
- Изменен импорт функций generate_image_url и download_and_send_image из файла functions.py.
- Изменен импорт db на db_manager из файла db.py.
- Вместо прямого вызова функций из модуля db, теперь используется метод create_tables() экземпляра db_manager.
- Вместо прямого вызова функции add_user из модуля db, теперь используется метод add_user() экземпляра db_manager.
- Вместо прямого вызова функции get_total_users из модуля db, теперь используется метод get_total_users() экземпляра db_manager.
- Функция generate_image() была изменена на метод с тем же именем, и теперь использует функции из файла functions.py.
db.py
- Добавлен новый класс DatabaseManager.
- Методы работы с базой данных инкапсулированы внутри этого класса.
- Добавлена инициализация объекта DatabaseManager с указанием имени базы данных по умолчанию.
- Использование блокировки (Lock) для защиты от потоковых проблем при одновременном доступе к базе данных.
- Операции с базой данных выполняются в контексте блокировки (with self.lock), обеспечивая безопасность при параллельном доступе.
functions.py
- Функция generate_image_url() теперь возвращает URL сгенерированного изображения вместо его отправки.
- Добавлена функция download_image(), которая загружает изображение по URL и сохраняет его на диск.
- Добавлена функция send_image(), которая отправляет изображение пользователю и записывает данные об изображении в базу данных через экземпляр db_manager.
- Добавлена функция download_and_send_image(), которая сначала загружает изображение, затем отправляет его пользователю и записывает данные об изображении в базу данных через экземпляр db_manager.
Версия 2.0.0
exp.config.py
- Добавлена переменная
IMAGE_FOLDER
которая содержит путь к папке для сохранения изображений.
- Добавлена переменная
bot.py
- Добавлена проверка длины входящего текстового сообщения перед его обработкой, чтобы убедиться, что текст не менее 10 символов.
- Добавлена проверка на возникновение исключений при генерации изображения с использованием OpenAI. В случае возникновения ошибки, пользователю отправляется сообщение с просьбой повторить запрос или связаться с разработчиком.
- Изменена логика сохранения изображения: теперь изображение скачивается и сохраняется в указанную папку
images
с именем в формате<tg_id>_<message_id>.png
. - Изменен метод отправки изображения пользователю: теперь изображение отправляется как файловый объект, а не по URL.
db.py
- В функции
add_user(tg_id)
добавлена обработка исключений для предотвращения возможных ошибок при добавлении пользователя в базу данных.
- В функции
Лицензия:
Этот проект распространяется под лицензией MIT.
Если у вас возникли вопросы или предложения по улучшению проекта, не стесняйтесь связаться со мной по адресу mdolmatov99@gmail.com или телеграм @king_triton. Благодарю за использование моего бота!