Pull to refresh

Добавляем DALL-E 3 в свой ChatGPT бот в Telegram

Level of difficultyEasy
Reading time2 min
Views16K

DALL-E 3, новая версия модели для генерации изображений от OpenAI, стала доступна публично через ChatGPT в октябре 2023 года и сразу стала очень популярной благодаря существенно лучшему качеству генерируемых изображений, по сравнению с предыдущими версиями модели.

До DALL-E 3 главным и, по сути, единственным серьёзным игроком в этой области была компания Midjourney, которая обзавелась целой армией фанатов ещё в 2022 году. Однако теперь ситуация изменилась и конкуренция стала гораздо более ощутимой.

Генерировать изображения в Midjourney можно только в чат-боте Discord, у продукта нет своего приложения или веб-сайта, нет программного доступа через API. Это ограничивает способы использования генератора изображений. У DALL-E 3 таких ограничений нет.

Добавляем DALL-E 3 в чат-бот Telegram

ВНИМАНИЕ!
Это продолжение туториала, начало здесь: Свой ChatGPT бот в Telegram в 2023.

Облачная функция

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

/image описание изображения, которое надо сгенерировать

Открываем консоль Яндекс.Облака, идём в раздел Cloud Functions, заходим в нашу функцию и переходим во вкладку "Редактор".

Здесь в файле index.py сразу после метода clear_history и обязательно перед методом echo_message добавляем код нового метода:

@bot.message_handler(commands=["image"])
def image(message):
    prompt = message.text.split("/image")[1].strip()
    if len(prompt) == 0:
        bot.reply_to(message, "Введите запрос после команды /image")
        return

    try:
        response = client.images.generate(
            prompt=prompt, n=1, size="1024x1024", model="dall-e-3"
        )
    except:
        bot.reply_to(message, "Произошла ошибка, попробуйте позже!")
        return

    bot.send_photo(
        message.chat.id,
        response.data[0].url,
        reply_to_message_id=message.message_id,
    )

Жмём кнопку "Сохранить изменения" и смотрим, как функция собирается.

Список команд Telegram-бота

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

Для этого идём в BotFather, в котором мы изначально создавали наш бот и начинаем с команды /mybots

Вы увидите список ваших ботов, выбираем нужный бот и жмём "Edit Bot".

Затем "Edit Commands".

И посылаем такой список:

new - Очистка истории переписки
image - Генерация изображений. Введите описание изображения после команды

После этого список команд должен стать доступен в вашем боте сразу.


На этом всё. Теперь наш бот умеет не только отвечать на текстовые сообщения, но и генерировать изображения!

Сделаем быструю проверку:

Продолжение

Tags:
Hubs:
Total votes 11: ↑6 and ↓5+1
Comments16

Articles