Как создать GPT-бота в Телеграме
Коротко расскажем как создать и развернуть на линукс-сервере бота в Телеграм для общения с ChatGPT, используя API от OpenAI
2К открытий14К показов
После того как OpenAI опубликовала свой API в Телеграме появилось куча ботов для общения с ChatGPT.
Некоторые из них платные, хотя вы можете создать похожего бота на основе ChatGPT всего за 10 минут. Рассказываем как его сделать.
Что понадобится
1. Аккаунт OpenAI. Чтобы зарегистрироваться, нам понадобится почта и VPN. Для регистрации можно использовать и временный анонимный email ящик, вы можете использовать сервисы temp-mail.org или 10minutemail.net. Не забудьте включить VPN перед регистрацией так как регистрация с российских IP невозможна.
2. После регистрации, зайдите в раздел для разработчиков на сайте OpenAI, нажмите на кнопку «Create new secret key» и сохраните ключ в надежное место.
3. Создайте Телеграм бота через @botFather. Выберите username и имя вашего бота. После этого botFather отправит вам API ключ от него. Его тоже нужно сохранить.
Настраиваем бота
1. Переходим на страницу с шаблоном для бота, нажимаем на зеленую кнопку с текстом «Code» вверху страницы, в открывшемся списке выбираем «Download ZIP».
2. Распаковываем архив, переходим в папку с ним. Открываем папку config которая находится в корне папки. Открываем файл config.example.yml с помощью блокнота (или любого текстового редактора) и вставляем туда наши токены: токен полученный от @botFather в поле telegram_token, токен полученный от OpenAI в поле open_ai_key. Токены нужно вставить между кавычек.
3. Переименовываем файлы config.example.yml в config.yml и config.example.env в config.env.
Запускаем бота
Перед запуском бота необходимо включить VPN, чтобы бот смог отправлять запросы к OpenAI.
Если у вас Windows 10
1. Переходим в корневую папку проекта (ранее распакованную из архива).
2. Нажимаем на «Файл» в левом верхнем углу проводника, выбираем «Запустить Windows PowerShell», в открывшемся списке выбираем «Запустить в Windows PowerShell».
3. Копируем строчку docker-compose --env-file config/config.env up --build
мышью или с помощью ctrl + v и затем жмем «Enter» на клавиатуре. Если PowerShell не позволяет выполнить команду, откройте PowerShell от имени администратора и попробуйте ещё раз. Для этого повторите пункт 2, только выберите в открывшемся списке «Запустить в Windows PowerShell от имени администратора» вместо «Запустить в Windows PowerShell».
Если у вас Linux дистрибутив с DE Gnome
1. Переходим в корневую папку проекта (ранее распакованную из архива).
2. Кликаем правой кнопкой мыши и выбираем «Open in Console».
3. Копируем строчку docker-compose --env-file config/config.env up --build
мышью или с помощью ctrl + shift + v и затем жмем «Enter» на клавиатуре.
Бот должен начать работу. Чтобы остановить бота, вам нужно просто закрыть консоль.
При повторном запуске бота просто введите docker-compose --env-file config/config.env up --build
, шаги выше уже выполнять не нужно.
Возможности бота
1. Поддержка GPT-4 и GPT-4 Turbo.
2. Поддержка работы в чатах телеграмм.
3. Генерация изображений.
4. Транскрипция голосовых сообщений в текст.
5. Подсветка кода в ответах ChatGPT.
6. Поддержка Markdown.
7. Пятнадцать различных личностей ChatGPT: психолог, Илон Маск, художник и многие другие.
8. Возможность ограничить круг пользователей Телеграм которые могут пользоваться ботом.
9. Отслеживание баланса OpenAI.
Подводные камни
Доступ к API от OpenAI не бесплатный. Компания даёт бонус $5 при получении токена, и этого хватит, чтобы использовать бота пару недель.
После того как бонусные доллары закончатся, нужно будет пополнить счет аккаунта OpenAI. Если этого не сделать, бот не будет работать.
Деплой бота на линукс сервер
Это необязательный раздел и требует некоторой технической подготовки. Вы можете пропустить его.
Чтобы бот был запущен все время, а не только когда работает ваш компьютер, его нужно развернуть на сервере. Мы будем рассматривать деплой на линукс сервера хостинг провайдера TimeWeb.
Создание сервера
1. Перейдите на страницу регистрации нового аккаунта TimeWeb и создайте новый аккаунт. Вы можете использовать быструю регистрацию через аккаунты ВК или Google.
2. Перейдите на страницу создания облачного сервера, выберите любой регион кроме российского в секции «Регион», отключите услугу «Бэкапы» в секции «Дополнительные услуги». Все остальные поля оставьте по умолчанию.
3. Нажмите на кнопку «Заказать» справа сверху, чтобы создать сервер.
Деплой
1. Откройте страницу со списком ваших серверов и выберите только что созданный сервер.
2. Скопируйте root пароль в секции справа ниже секции «Основной диск».
3. Перейдите во вкладку «Консоль» и дождитесь загрузки окна консоли.
4. После загрузки введите «root» и нажмите кнопку «Enter» на клавиатуре, затем вставьте ранее скопированный пароль от пользователя root и нажмите на «Enter» снова.
Если вы видите следующее приветственное сообщение в окне консоли, вы все сделали правильно.
5. Скопируйте команду в консоль и запустите.
snap install docker; git clone https://github.com/father-bot/chatgpt_telegram_bot.git; cd ./chatgpt_telegram_bot
Вывод консоли:
6. Выполните следующую команду в консоли.
nano ./config/config.example.yml
В открывшемся окне вставляем токен полученный от @botFather в поле telegram_token, токен полученный от OpenAI в поле open_ai_key. Токены нужно вставить между кавычек. Перемещать курсор можно с помощью стрелок на клавиатуре. Жмем ctrl + o и затем «Enter», выходим из редактора в консоль с помощью ctrl + x.
Как все должно получится:
7. Выполните команду в консоли.
mv ./config/config.example.yml ./config/config.yml; mv ./config/config.example.env ./config/config.env
В случае успешного выполнения эта команда не выводит в консоль никаких сообщений.
8. Финальный штрих. Выполните команду для запуска бота.
docker-compose --env-file ./config/config.env up --build --detach
Вывод должен быть:
Если вы правильно выполнили все пункты, бот должен запуститься. Если вы решите перезагрузить сервер, чтобы запустить бота, заново выполните эту команду в окне консоли TimeWeb.
cd ~/chatgpt_telegram_bot; docker-compose --env-file ./config/config.env up --build --detach
2К открытий14К показов