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