В России заблокирован популярный чат-бот AI - ChatGPT. Однако, Telegram-боты стали отличным решением для обхода блокировки и удобного использования функций чат-бота прямо из мессенджера.
Мною было принято решение создать собственную интеграцию ChatGPT в Telegram, с целью глубже изучить работу ChatGPT API, определить доступные настройки и пользоваться ботом без ограничений, а также свободно использовать модель GPT-4o.
Для этого проекта я предпочел не использовать отдельный сервер, приобретать домен и настраивать SSL сертификат для WebHook Telegram. Вместо этого, я решил настроить всю систему с помощью serverless-технологий.
Подготовка
Для выполнения проекта мне требуется:
- API-ключ для использования ChatGPT API со своим адресом шлюза API (адрес шлюза, отличный от chatgpt AI)
- Доступ к API, включая сам ChatGPT, заблокирован в России. Однако, существует простое решение этой проблемы - на просторах интернета можно купить отдельно ChatGPT API со своим endpoint (адрес шлюза, отличный от chatgpt AI). Нет необходимости в иностранных номерах телефонов, VPN или картах иностранных банков. (как вариант есть несколько площадок с продавцами или взять например на сайте proxyapi).
Покажу на примере сайта - proxy api
Зарегистрируйтесь, зайдите в раздел "API Keys" (ключи API) и сгенерируйте ключ. Всего одна минута - и все готово.
Аккаунт в Яндекс.Облаке
Если у вас ещё нет аккаунта, создайте его здесь. Убедитесь, что ваш платёжный аккаунт подключён и имеет статус ACTIVE или TRIAL_ACTIVE.
Все ресурсы, которые мы будем использовать, имеют ежемесячный бесплатный лимит потребления. Об этом я расскажу ниже. Честно говоря, вряд ли возможно исчерпать такие лимиты, если бот предназначен только для личного использования. Таким образом, вся система будет бесплатной, за исключением расходов на ProxyAPI.
Telegram-бот
Для создания и управления ботами в Telegram существует специальный бот под названием BotFather. Он поможет вам создать бота и предоставит токен, который нужно сохранить для дальнейшего использования.
Облачные ресурсы
Теперь вернёмся в Яндекс.Облако и создадим все необходимые ресурсы для нашего проекта.
Сервисный аккаунт
На домашней странице консоли в верхнем меню выберите вкладку Сервисные аккаунты. Создайте новый аккаунт, используя одно и то же имя для всех ресурсов, например, "chatgpt-telegram-bot", чтобы не запутаться. Присвойте аккаунту следующие роли:
• serverless.functions.invoker
• storage.uploader