Читать первым в Telegram-канале «Код Дурова»
Бот ChatGPT продолжает стремительно набирать популярность во всём мире и становится наиполезнейшим инструментом для тех, кто ищет быстрый и удобный способ получить нужную информацию.
Однако официально бот доступен только на сайте компании OpenAI и не имеет собственного приложения, что далеко не всегда удобно, особенно для пользователей из России, где доступ к сайту ограничен.
Но выход есть, в начале этого месяца OpenAI выпустила своё API в публичный доступ и теперь ChatGPT можно вывести за пределы своего сайта. В Telegram появилась уже целая куча ботов ChatGPT, однако все они так или иначе требуют свою плату с пользователей.
Поэтому мы решили написать инструкцию о том, как создать своего личного бота ChatGPT в Telegram практически даром. Инструкция рассчитана на рядового пользователя, следуя ей, запустить своего бота сможет даже человек, не имеющий знаний в программировании.
Подготовка
- Для начала вам потребуется аккаунт на сайте OpenAI. Если у вас его до сих пор нет, то в самом конце этой статьи инструкция по его созданию. Для регистрации аккаунта потребуется виртуальный номер, минимальная стоимость которого на текущий момент составляет около 20 рублей.
- Далее включите VPN и перейдите в раздел для разработчиков здесь:
- Создайте API ключ, нажав на копку «Create new secret key». Запишите его, он понадобится позже.
- Затем создайте бота в Telegram. Для этого откройте BotFather и введите команду /newbot.
- Назовите его. Затем пропишите боту ссылку, которая обязательно заканчивается на bot. И сохраните API ключ от бота Telegram. Он также понадобится позже.
- Итого у вас должно быть 2 ключа: OpenAI и Telegram.
Установка
Далее установите Python на свой компьютер. В начале установки обязательно поставьте галочку «Add python.exe to PATH», иначе в консоли не будут работать команды.
- Скачайте готовый код бота на GitHub от пользователя n3d1117. Для этого нажмите на зелёную кнопку Code –> Download ZIP. Распакуйте папку из архива в любое удобное место, но желательно без кириллицы в пути.
- Откройте файл под названием .env.example через любой текстовый редактор (блокнот, notepad++, EmEditor).
- В поле OPENAI_API_KEY="XXX" вместо XXX вставьте ваш ключ OpenAI
- В поле TELEGRAM_BOT_TOKEN="XXX" вместо XXX вставьте ваш ключ Telegram-бота.
- В поле ALLOWED_TELEGRAM_USER_IDS="USER_ID_1,USER_ID_2" вместо USER_ID_1,USER_ID_2 вставьте символ * – тогда бот будет доступен для всех пользователей. Если вы желаете сделать его доступным только для себя, то введите свой Telegram ID. Узнать его можно здесь.
- После этого переименуйте ".env.example" в ".env".
- Далее кликните на путь папки сверху и введите в нём слово powershell и нажмите Enter. Откроется PowerShell сразу с учётом расположения папки вашего бота.
В открытой консоли пропишите следующие команды по порядку:
python -m pip install --upgrade pip
Установка и/или обновление pip
pip install python-telegram-bot
Установка библиотеки Telegram
pip install openai
Установка библиотеки OpenAI
pip install pydub
Установка аудиобиблиотеки
Также можете скачать FFmpeg для работы с аудио и видео, но это необязательно. Текстовый бот будет работать и без этого дополнения. (Из архива нужно вытащить ffmpeg.exe и поместить в корневую папку).
python -m venv venv
Подготовка к запуску виртуального окружения
venv\Scripts\activate
Запуск
pip install -r requirements.txt
Установка подходящих параметров
python bot/main.py
Запуск самого бота
После этого бот должен начать работать. И им уже можно пользоваться. Для отключения бота просто закройте консоль.
Пример успешной работы бота:
В консоли:
Бот будет работать пока запущена консоль. Соответственно, чтобы его выключить, достаточно её закрыть. Чтобы запустить бота повторно, все перечисленные выше команды снова вводить не нужно, достаточно лишь так же открыть PowerShell в папке и прописать всего две команды.
venv\Scripts\activate
python bot/main.py
Особенности и ограничения:
- API-версия генерирует текст гораздо быстрее своей бесплатной браузерной версии, примерно на уровне Plus версии.
- API-версия работает всегда, даже в период нагрузок, также вам не требуется VPN для её использования.
- Используйте /help, чтобы получить список доступных команд
- Подобно браузерному ChatGPT, API-версия запоминает информацию в диалоге.
- Чтобы стереть боту память о беседе, используйте команду /reset. Также после этой команды можно ввести уточнение для бота, чтобы направить его в нужное русло. Например, с помощью "/reset Говори только на русском" можно заставить использовать русский язык по умолчанию.
- С помощью команды /image можно генерировать картинки с помощью DALL-E по описанию.
- Через команду /stats можно проверить затраты на использование бота.
- Также вы можете добавить бота в беседу и общаться с ним вместе с друзьями. (для этого нужно разрешить добавление в беседу в настройках BotFather).
А теперь к ограничениям:
Увы, но API не бесплатное, у всех пользователей есть бесплатный пробный период в 3 месяца с момента регистрации. Он также ограничен количеством бонусных долларов, по исчерпанию которых API перестанет работать.
Количество бонусных долларов зависит от даты регистрации вашего аккаунта. На моём аккаунте, который был зарегистрирован в первые дни запуска ChatGPT, было предоставлено бонусов в размере $18. Это очень много, если вы используете бота в одиночку, то вам более чем хватит этого на месяц или два активного использования.
Однако в последнее время новым аккаунтам стали давать более скромный бонус – $5, которого хватит где-то на пару недель активного использования. Статистку использования вы можете отследить на сайте OpenAI или в самом боте по команде /stats.
Также следует отметить ещё пару важных фактов:
- Подключить версию GPT-4 на данный момент нельзя, даже если у вас есть Plus. API GPT-4 на текущий момент находится в закрытом доступе.
- Запущенная через API версия фактически незначительно отличается от браузерной ChatGPT. Браузерная версия была доработана, чтобы быть ассистентом, а также содержит больше уточняющей информации о себе, в то время как API-версия «более обезличенная» и даже не называет себя ChatGPT.
- В этом плане API версия сильно напоминает декабрьский ChatGPT, который даже не мог назвать актуальную дату. Однако всё же знания у ботов общие, поэтому беспокоиться за качество ответов не стоит.
- Для тех кому интересно, по умолчанию в боте используется модель gpt-3.5-turbo. Какие ещё существуют модели можете посмотреть здесь.