Ахой товарищи! Сегодня мы займемся созданием Телеграм бота, который будет задействовать последнюю версию Chat GPT. Основным преимуществом GPT-4 Turbo является расширенная база знаний до апреля 2023 года, а также расширенный контекст до 128k токенов.
Создаем Телеграм бота на основе GPT-4 Turbo
Для начала процесса создания бота нам потребуется аккаунт OpenAI. Переходим на https://platform.openai.com
, вводим свою почту и подтверждаем ее. Затем арендуем номер любой страны, например, через sms-activate.
После успешной регистрации в OpenAI, необходимо пополнить аккаунт на 5$. Это условие для получения доступа к API GPT-4 Turbo. Пополнение можно совершить через торговцев на форумах или других площадках. Обычно цена за пополнение на 5$ колеблется от 600 до 800 рублей.
Когда баланс пополнен, мы можем приступить к созданию API-ключа.
API CHAT GPT
Переходим на https://platform.openai.com/
и нажимаем сюда:
- Нажимаем “Create new secret key”
- Генерируйте ключ, скопируйте его и сохраните.
После того, как создали API-ключ, необходимо создать бота в Telegram.
Telegram Bot
- Переходим по ссылке в бота:
https://t.me/BotFather
. - Затем отправляем команду /start, после чего вводим /newbot.
- Теперь указываем название для вашего будущего бота.
После указания названия бота, система предложит ввести юзернейм бота. Введите любой доступный юзернейм, который должен заканчиваться на “bot” или “_bot”. После этого вы получите токен API, который пригодится нам в дальнейшем. Сохраните этот токен в безопасном месте, так как он будет использоваться для взаимодействия с API вашего телеграм-бота.
Теперь давайте установим Python. В данной статье мы будем использовать версию 3.10.6.
Python
- Скачайте установочный файл с официального сайта Python по ссылке:
https://www.python.org/downloads/
. - При установке обязательно отметьте опцию “Add Python 3.10 to PATH”.
Далее создаем файл с расширением .py и вставляем следующий код:
import os
print('Бот запущен!')
NUMBERS_ROWS = 6
import openai
import telebot
openai.api_key = ""
bot = telebot.TeleBot('')
if not os.path.exists("users"):
os.mkdir("users")
@bot.message_handler(content_types=['text'])
def msg(message):
if f"{message.chat.id}.txt" not in os.listdir('users'):
with open(f"users/{message.chat.id}.txt", "x") as f:
f.write('')
with open(f'users/{message.chat.id}.txt', 'r', encoding='utf-8') as file:
oldmes = file.read()
if message.text == '/clear':
with open(f'users/{message.chat.id}.txt', 'w', encoding='utf-8') as file:
file.write('')
return bot.send_message(chat_id=message.chat.id, text='История очищена!')
try:
send_message = bot.send_message(chat_id=message.chat.id, text='Обрабатываю запрос, пожалуйста подождите!')
completion = openai.ChatCompletion.create(
model="gpt-4-1106-preview",
messages=[{"role": "user", "content": oldmes},
{"role": "user","content": f'Предыдущие сообщения: {oldmes}; Запрос: {message.text}'}], presence_penalty=0.6)
bot.edit_message_text(text=completion.choices[0].message["content"], chat_id=message.chat.id, message_id=send_message.message_id)
with open(f'users/{message.chat.id}.txt', 'a+', encoding='utf-8') as file:
file.write(message.text.replace('\n', ' ') + '\n' + completion.choices[0].message["content"].replace('\n', ' ') + '\n')
with open(f'users/{message.chat.id}.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
if len(lines) >= NUMBERS_ROWS +1:
with open(f'users/{message.chat.id}.txt', 'w', encoding='utf-8') as f:
f.writelines(lines[2:])
except Exception as e:
bot.send_message(chat_id=message.chat.id, text=e)
bot.infinity_polling()
Переходим к установке библиотеки и настройке скрипта.
Библиотеки и настройки
Отлично, теперь откройте консоль (win+r) и введите следующие команды:
pip3 install openai
pip3 install pyTelegramBotAPI
После установки библиотек мы готовы перейти к настройке вашего скрипта.
Вставляем токен API OpenAI в строку кода openai.api_key = "key"
, заменяя “key” на ваш полученный токен.
Также замените “key” в строке кода telebot.TeleBot('key')
на токен, который вы получили от BotFather.
Теперь создайте папку, куда поместите ваш скрипт, и дополнительно создайте папку, где будут храниться файлы, необходимые для работы контекста. Поместите все необходимые файлы в эту папку. Назовите папку для скрипта по вашему усмотрению, поместите в нее сам скрипт, а затем внутри этой папки создайте подпапку с именем “users”.
Переменная NUMBERS_ROWS используется для определения количества сообщений, которые ChatGPT будет запоминать.
Готово! Запускаем скрипт.
Итог
Отличная работа проделана с получением доступа к GPT-4 за более выгодную цену. Теперь вы можете использовать команду /clear
для очистки истории сообщений или контекста бота. Удачи в разработке бота!
тут нашел бесплатный вариант: @GPT4Turborupro_bot