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

Приступим к реализации:
Первым делом необходимо установить язык программирования версии 3.10 с официального сайта, для этого переходим по прямой ссылке, опускаемся немного ниже и находим нужную ссылку для загрузки:


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


После чего открываем командную строку, для этого нажимаем комбинацию клавиш Windows + R на клавиатуре и вводим "cmd" (без кавычек). Далее прописываем команду "pip install -U g4f" (без кавычек) для установки модели, ожидаем окончания процесса:


Помимо этого нам понадобится Telebot, устанавливаем его также, только используем команду с изображения ниже:


Теперь нам нужно создать собственного бота в Telegram, для этого открываем соответствующий диалог и активируем команду, изображенную на скриншоте ниже:


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

Создаем собственного бота ChatGPT в Telegram

Создаем текстовый документ, в который вставляем код и заменяем данные на свои. Сохраняем файл в формате .py в любом удобном для Вас месте:
import g4f
import telebot

TOKENBOT = "Токен"
ADMIN_ID = None

# НАСТРОЙКИ БОТА
bot = telebot.TeleBot(TOKENBOT, parse_mode=None)

# НАСТРОЙКИ CHAT_GPT
g4f.logging = True
g4f.check_version = False


def ask_gpt(promt) -> str:
    response = g4f.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": promt}],
        stream=True,
    )

    ans_message = ''
    for message in response:
        ans_message += message

    return ans_message


@bot.message_handler()
def ask_bot(message):
    if ADMIN_ID is None:
        question = message.text
        answer = ask_gpt(question)
        bot.reply_to(message, answer)
    else:
        if message.from_user.id == ADMIN_ID:
            question = message.text
            answer = ask_gpt(question)
            bot.reply_to(message, answer)

        else:
            bot.reply_to(message, 'Доступ запрещён!')


bot.infinity_polling()

Если Вы хотите сделать бота приватным, то в поле "ADMIN_ID" необходимо указать ID вашей учетной записи, который можно посмотреть тут:


Открываем командную строку в папке с ранее сохраненным файлом:


Вводим "python названиевашегофайла.py", нажимаем Enter и ожидаем некоторое время:


Проверяем все ли работает, перейдя в бота, которого создавали в начале материала:


На этом все, надеюсь статья оказалась для Вас полезной!