Сегодня сделаем телеграм бота с GPT4 Turbo, который вышел совсем недавно.
В чём преимущества Turbo версии от обычного GPT4?
1. Информация до апреля 2023 года
2. Гораздо дешевле
3. Большой контекст(128k токенов)
Регистрация:
Переходим на
, вводим почту, подтверждаем, далее необходимо арендовать номер любой страны.
Я брал Индонезию на sms-activate.
На этом в целом всё, сейчас никаких API Ключей создавать не надо, переходим к следующему этапу.
После того, как зарегистрировали аккаунт OpenAI, необходимо пополнить его на 5$.
Необходимо это для того, чтобы нам открылся доступ к API GPT4 Turbo, таковы условия.
Пополнить можно через людей на нашем любимом форуме, либо в иных местах. В среднем цена за пополнение на 5$ варьируется от 600 до 800 рублей.
После того, как пополнили баланс, создаём API Ключ
Переходим в
Далее нажимаем сюда
Нажимаем "Create new secret key"
Создаётся ключ, копируете его, сохраняете.
После того, как создали API-ключ, необходимо создать бота в Telegram.
Телеграм Бот:
Переходим в бота:
Пишем /start, далее пишем /newbot
Пишем название(нейм) бота
После того, как написали название, нам предлагают вписать юзернейм бота
Вписываем любой свободный юзернейм, который будет оканчиваться на "bot", либо "_bot"
После чего мы получаем токен API, который будет необходим чуть позже.
Теперь необходимо установить Python. В данной статье мы воспользуемся версией 3.10.6
Установка Питона:
Скачиваем установочный файл с официального сайта
Ссылка:
(
)
Обязательно нажимаем на галочку "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
После установки библиотек переходим к настройке скрипта.
openai.api_key = "key" — Вместо "key" вставляем токен API OpenAI, который мы получили ранее
telebot.TeleBot('key') — Вместо "key" вставляем токен, который мы получили от BotFather
Теперь необходимо создать папку, куда мы поместим скрипт, и создадим папку, где будут храниться файлы, необходимые для работы контекста.
Папку со скриптом называем как угодно, перемещаем туда скрипт, и внутри этой папки создаем папку "users"
NUMBERS_ROWS - Данная переменная используется для определения количества сообщений, которые ChatGPT будет помнить.
Запускаем скрипт.
Поздравляю! Вы великолепны! Вы получили доступ к абсолютно чистому GPT4 всего за 5$(+ 5$ триальных остаются на балансе, итого 10), вместо 20$ за ChatGPT Plus.
Используйте команду /clear для того, чтобы очистить историю сообщений(контекст).