Как получить своего ChatGPT Telegram-бота + VPN за 5$ в месяц

Сколько бы не было разговоров про ChatGPT, далеко не все пробовали его в действии. Кого-то останавливало отсутствие VPN, кого-то цена 20$ в месяц за постоянную подписку. В данной статье расскажу об относительно простом способе запустить своего telegram-бота, работающего напрямую с API OpenAI.

Как получить своего ChatGPT Telegram-бота + VPN за 5$ в месяц

Плюсы и минусы данного способа

Плюсы:

  • Не нужно покупать подписку за 20$ в месяц. Использование API обходится намного дешевле
  • Собственный VPN, с IP адресом, который используете только Вы и те, с кем вы поделитесь им

Минусы:

  • Требуется карта не Российского банка
  • По API (на данный момент) недоступен ChatGPT4, только 3.5 turbo

Что потребуется

Увы, но данная инструкция подойдет не каждому. Потребуется карта НЕ Российского банка, минимальный набор знаний и отсутствие боязни консоли linux.

Покупка и настройка сервера

Для начала нам потребуется сервер, расположенный не в России. Вполне удобным вариантом оказался Hetzner. Стоимость самого дешевого облачного сервера 4.52 Евро/месяц. Проходим регистрацию, отправляем данные для подтверждения личности (в крайний раз время ожидания подтверждения было около суток) и приступаем к покупке. В деталях не буду описывать весь процесс, все вполне интуитивно. Я выбрал сервер в минимальной конфигурации CAX11. В качестве операционной системы была выбрана Debian 11. В конце процедура подготовки сервера Вам необходимо создать ssh ключ, с помощью которого мы будем подключаться по ssh к данному серверу. (Как создать ключ). Когда весь процесс установки подойдет к концу подключитесь к серверу ssh root@IP_ВАШЕГО_СЕРВЕРА

и выполните команды

apt update && apt upgrade

Установка и настройка VPN

Я настраивал VPN по данной инструкции (Как просто создать свой VPN (WireGuard VPN)). Не буду делать полный пересказ, только основные команды:

apt install curl

curl -L https://install.pivpn.io | bash

Нажать Y для согласия. Далее начнется процесс установки. Несколько раз нажимаем OK, до появления экрана выбора пользователя. Вводим имя нового пользователя и пароль. В окне Installation mode выбираем WireGuard, далее стандартный порт, далее любой из предложенных DNS провайдеров. Далее в окне Public IP or DNS выбираем Use the public IP. После этого опять соглашаемся на все предложения установщика. Все завершится перезагрузкой сервера. Ждем около минуты и снова подключаемся по SSH.

Создаем первого пользователя выполнив команду

pivpn add

вводим имя учетной записи, например, user1

после выведем конфиг для полученной учетной записи

cat /home/{имя пользователя указанное при конфигурировании pivpn}/user1.conf

Выведенную конфигурацию копируем, либо сохраняем в файл, она понадобится на следующем шаге.

Если планируете использовать vpn с мобильного устройства можно вывести на экран qr-код, который далее нужно будет отсканировать в WireGuard

pivpn -qr

далее выбираем нужную учетную запись

Установка VPN клиента WireGuard

Скачать WireGuard можно с официального сайта. Также данный клиент доступен в AppStore и PlayStore. Устанавливаем клиент, добавляем конфигурацию, пользуемся.

Регистрация в OpenAI

В процессе настройки VPN может возникнуть вопрос: “а зачем мы это все проделали?”

Главная страница сайта компании OpenAI полностью доступна, но как только мы попробуем перейти к боту, нас встретит ограничение доступа. Тут нам и поможет VPN. Лучше подстраховаться и без VPN не заходить.

О том как получить учетную запись OpenAI есть много статей, поэтому не буду расписывать подробно. Самое важное, что для регистрации нужен не Российский номер телефона. Получить его можно с помощью различных сервисов. Я использую OnlineSim. Процедура регистрации очень простая, регистрируетесь, пополняете баланс на 100 рублей (возможно еще пригодятся в будущем).

Переходим на страницу ChatGPT выбираем SignUp и создаем аккаунт. Для регистрации нам потребуется почтовый ящик. Т.к. здесь не любят пользователей из России лучше использовать gmail. Указываем email и пароль, подтверждаем почту, указываем свое имя с фамилией. Далее требуется смс подтверждение. Переходим в OnlineSim. Я использовал номер телефона для Индонезии (хотя сервер с VPN находится в Германии), т.к. немецкий номер телефона стоил 3$, а индонезийский 80 центов. Выбираем слева страну Индонезия, справа сайт OpenAi. Нажимаем на цену, справа у появится зарезервированный номер телефона. Вводим его на странице OpenAi и нажимаем отправить СМС. Может получится так, что выданный номер уже использует много пользователей, тогда придется подключать новый. После отправки в личном кабинете OnlineSim Вы увидите пришедшее СМС. Копируем из его содержимого код и вставляем в форме на OpenAI.

Поздравляю теперь у Вас есть учетная запись в ChatGPT. На данном этапе Вы уже можете пользоваться нейросетью, но могут быть ограничения, т.к. у Вас отсутствует подписка.

Теперь нам нужно получить API ключ. Переходим на страницу API Keys выбираем Create new secret key, вводим имя ключа и создаем его. Полученный ключ сохраните, он потребуется через 1 шаг.

Регистрация telegram-бота

Как и в предыдущих разделах статьи скажу, что в интернете есть много статей, как зарегистрировать своего TG-бота, поэтому буду описывать в двух словах

Находим в поиске @botfather Выбираем создать нового бота, вводим название и имя.

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

Подготовка сервера для установки бота

Возвращаемся к нашему серверу, снова подключаемся к нему по ssh.

Для начала установки на потребуется git, поставим его apt install git

переходим в директорию /opt

cd /opt

клонируем репозиторий

git clone https://github.com/n3d1117/chatgpt-telegram-bot.git

переходим в директорию бота

cd /opt/chatgpt-telegram-bot

копируем файл с настройками окружения

cp .env.example .env

открываем редактором файл .env

nano .env

в данным файл нам нужно вставить наши ключики от API OpenAI и Telegram

OPENAI_API_KEY - ключ для OpenAI
TELEGRAM_BOT_TOKEN - ключ для телеграм бота

далее в ADMIN_USER_IDS нужно добавить id своего пользователя. Сделать это можно через бота https://t.me/my_id_bot

переходите в бота нажимаете Start. В ответ бот отдаст сообщение с Вашим ID

Этот же ID нужно добавить в ALLOWED_TELEGRAM_USER_IDSЕ

Если будете пользоваться ботом не один, нужно добавлять id пользователей в .env файл через запятую

Запуск бота:

На странице репозитория описаны несколько вариантов запуска. Для меня самым простым был через docker-compose (инструкция по установке docker-compose)

когда docker-compose установлен остается только запустить бота

cd /opt/chatgpt-telegram-bot/

docker-compose up

После этого переходим в нашего бота (ссылка на него есть в сообщении от BotFather)

и пробуем задавать вопросы. Если все прошло хорошо, останавливаем docker-compose комбинацией клавиш CTRL+С и вводим команду

docker-compose up -d

Флаг -d означает, что мы выполняем команду в фоновом режиме

Заключение

На этом все. Мы получили telegram-бота, который отправляет запросы к API ChatGPT. У нас есть VPN который можно использовать, для чтения инстаграм и прочих закрытых ресурсов. Изначально планировал, что инструкция получится короткой и простой, но что-то пошло не так.

Небольшая рекомендация: не стоит генерировать изображения через команду /image. Попробовал несколько раз - результат не очень. И за каждую картинку берется 2 цента

88
2 комментария

Вы рекомендуете Hetzner (хоть и в несколько ином контексте), который, судя по моим изысканиям, частично, либо полностью блокируется со стороны OpenAI. Скажем, с хецнеровских серверов у меня не работают запросы к ChatGPT4 ни через апи, ни через гуишный интерфейс (при этом, 3.5 чатгопник работает нормально). Стоит мне сменить локацию с хецнера на любую другую, и все работает. Это стоит учитывать.
Хотя да, у вас речь про бота, который будет являться посредником между гопником и юзером.

Ответить

Мне нравится трактовка "гопник")))

Когда писалась статья, с Hetzner не было проблем, как сейчас - не могу сказать, т.к. по этой схеме пользовались несколько месяцев.
Столкнулись с основным не удобством оплаты и не неудобаства постоянного сбора подсчета, кто сколько потратил.
Далее перешли на использование готового бота https://t.me/chatgpt_skylab_bot?start=527857346

Ответить