November 14, 2023

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

Скачиваем инсталлер Python 3.10 – https://www.python.org/ftp/python

Обязательно выберите опцию - Add Python 3.10 to PATH.

Установка библиотеки gf4

1. Открываем Командную Строку.

2. Прописываем следующую команду:

pip install -U g4f

Данная библиотека отвечает за работу самого ChatGPT. Библиотека имеет более 40к звёздочек на гитхабе.

Ссылка: https://github.com/xtekky/gpt4free

Установка библиотеки telebot

1. Открываем Командную Строку.

2. Прописываем следующую команду:

pip install pyTelegramBotAPI

Создаём бота

1. Переходим в @BotFather в Телеграм.

2. Прописываем команду /newbot.

3. Вводим название своего бота.

4. Вводим юзернейм для своего бота.

5. Копируем токен нашего бота для следующего шага.

Пишем бота

Необходимо создать папку в которой будут находиться 2 необходимых нам файла:

bot.py:

import g4f
import telebot
from config import TOKEN, ADMIN_ID

# НАСТРОЙКИ БОТА
bot = telebot.TeleBot(TOKEN, 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()

А так же config.py:

TOKEN = "СКОПИРОВАННЫЙ ТОКЕН ВАШЕГО БОТА ИЗ BOTFATHER"
ADMIN_ID = None

ADMIN_ID - нужен для того чтобы бот был приватным и работал только через ваш аккаунт.

Получить id своего аккаунта вы можете тут.

Если же хотите чтобы бот был публичным, оставьте значение данной переменной None.

Запускаем Бота

1. Открываем Командую Строку.

2. Прописываем команду:

cd {папка с ботом}

3. После смены директории в cmd прописываем:

python bot.py