Как получить своего ChatGPT Telegram-бота + VPN за 5$ в месяц
Сколько бы не было разговоров про ChatGPT, далеко не все пробовали его в действии. Кого-то останавливало отсутствие VPN, кого-то цена 20$ в месяц за постоянную подписку. В данной статье расскажу об относительно простом способе запустить своего telegram-бота, работающего напрямую с API OpenAI.
Плюсы и минусы данного способа
Плюсы:
- Не нужно покупать подписку за 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 цента
Вы рекомендуете Hetzner (хоть и в несколько ином контексте), который, судя по моим изысканиям, частично, либо полностью блокируется со стороны OpenAI. Скажем, с хецнеровских серверов у меня не работают запросы к ChatGPT4 ни через апи, ни через гуишный интерфейс (при этом, 3.5 чатгопник работает нормально). Стоит мне сменить локацию с хецнера на любую другую, и все работает. Это стоит учитывать.
Хотя да, у вас речь про бота, который будет являться посредником между гопником и юзером.
Мне нравится трактовка "гопник")))
Когда писалась статья, с Hetzner не было проблем, как сейчас - не могу сказать, т.к. по этой схеме пользовались несколько месяцев.
Столкнулись с основным не удобством оплаты и не неудобаства постоянного сбора подсчета, кто сколько потратил.
Далее перешли на использование готового бота https://t.me/chatgpt_skylab_bot?start=527857346