• Home
  • ChatGPT
  • Pyrogram для бота Kandinsky21 в Телеграм: Полное Руководство

Pyrogram для бота Kandinsky21 в Телеграм: Полное Руководство

Image

В этом видеоуроке мы погрузимся в мир искусственного интеллекта и генерации картинок, используя в качестве примера уникального бота Kandinsky в Телеграм. Этот бот превращает текстовые описания в изображения, демонстрируя потенциал AI в творчестве.

Наш видеоурок предназначен как для новичков, так и для опытных разработчиков. Мы начнем с объяснения того, как установить и настроить Python-пакет Pyrogram в вашем окружении, а затем перейдем к более сложным вещам, таким как отправка сообщений от вашего бота к Кандинскому 2.1.

Вы получите подробное руководство по работе с ботом, научитесь различать типы сообщений, которые вы можете отправить, и интерпретировать ответы бота. Видеоурок содержит практические примеры и понятные объяснения, чтобы помочь вам быстро освоиться и начать создавать свои собственные визуальные шедевры с помощью Кандинского 2.1.

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

from pyrogram import Client
from typing import Dict
import time

api_id = 172543458973
api_hash = 'c086d9a5fe15ebdfr6uh7855f9ad235f6767a71'
bot_username = 'kandinsky21_bot'
messages = {
    '/finish': 'Можешь продолжать генерировать дальше',
    'Генерация по тексту': 'Введи запрос',
    'Мощный робокот': 'Выбери стиль',
    'без стиля': 'Добавил в очередь на генерацию изображения'
}

def send_messages_and_wait(api_id: int, api_hash: str, bot_username: str, messages: Dict):
    app = Client(name='my_account', api_id=api_id, api_hash=api_hash)
    def send_wait_message(send_message: str, wait_message: str):
        app.send_message(chat_id=bot_username, text=send_message)

        start_time = time.time()
        timeout = 200

        while time.time() - start_time < timeout:
            history = app.get_chat_history(chat_id=bot_username, limit=2)

            for msg in history:
                if msg.text and wait_message in msg.text:
                    return msg.text
            time.sleep(1)

        print('Время ожидания сообщения истекло')
        return None

    def wait_photo(app: Client):
        start_time = time.time()
        timeout = 200

        while time.time() - start_time < timeout:
            history = app.get_chat_history(chat_id=bot_username, limit=2)
            for msg in history:
                if msg.photo:
                    return msg
            time.sleep(1)



    with app:
        for send_message, wait_message in messages.items():
            send_wait_message(send_message=send_message, wait_message=wait_message)
        msg_photo = wait_photo(app=app)
        msg_photo.download()


send_messages_and_wait(api_id=api_id, api_hash=api_hash, bot_username=bot_username, messages=messages)
Image