Как подключить GPT API к Telegram-боту
Подключите GPT API apiprovider.pro к Telegram-боту: endpoint, Python-функция, безопасное хранение секретов, лимиты и обработка ошибок.
Telegram-бот может передавать текст пользователя в apiprovider.pro и возвращать ответ GPT-модели в чат. Для этого достаточно серверной части бота, API-ключа и обращения к OpenAI-compatible POST /chat/completions.
Сначала зарегистрируйтесь, затем пополните баланс и только после зачисления выберите модель. Для основной универсальной работы после пополнения используйте gpt-5.6-terra; для стартовых и экономичных запросов — gpt-5.6-luna. Ключ создаётся на странице API-ключей, а актуальные model ID и условия стоит сверять в документации и на странице цен.
Бот-токен Telegram и API-ключ apiprovider.pro — разные секреты. Храните их отдельно в переменных окружения или секрет-хранилище и никогда не отправляйте в сообщения, логи или публичный репозиторий.
Что понадобится
- зарегистрированный Telegram-бот и его токен;
- сервер или серверless-обработчик, который получает обновления Telegram;
- API-ключ apiprovider.pro;
- Base URL
https://api.apiprovider.pro/v1; - публичный model ID, например
gpt-5.6-terra; - обработка ошибок и лимитов на стороне приложения.
Для работы из России можно использовать https://api.ru.apiprovider.pro/v1. Ключи, model ID и формат запросов сохраняются.
Как получить GPT API-ключ Быстрый старт GPT API
Сначала проверьте GPT API
До подключения Telegram убедитесь, что API-ключ рабочий:
curl https://api.apiprovider.pro/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gpt-5.6-terra",
"messages": [
{"role": "user", "content": "Ответь: тест API успешен."}
]
}'
Если API вернул ответ, используйте те же Base URL, ключ и model ID в серверном обработчике вашего бота.
Минимальная функция запроса на Python
Ниже — независимая функция, которую можно вызвать из обработчика сообщения Telegram. Она не привязана к конкретной библиотеке для ботов: способ получения сообщения и отправки ответа зависит от выбранного фреймворка.
import os
import requests
API_URL = "https://api.apiprovider.pro/v1/chat/completions"
API_KEY = os.environ["APIPROVIDER_API_KEY"]
def ask_model(user_text: str) -> str:
response = requests.post(
API_URL,
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={
"model": "gpt-5.6-terra",
"messages": [
{
"role": "system",
"content": "Отвечай по-русски, кратко и по существу.",
},
{"role": "user", "content": user_text},
],
},
timeout=60,
)
response.raise_for_status()
data = response.json()
return data["choices"][0]["message"]["content"]
Установите зависимость, если её ещё нет:
pip install requests
После этого ваш Telegram-обработчик должен передать текст сообщения в ask_model() и отправить возвращённую строку пользователю. Перед production-публикацией проверьте формат ответа на актуальном API и добавьте обработку исключений, чтобы бот не падал при сетевой ошибке.
Если нужен RU endpoint, замените значение API_URL на:
API_URL = "https://api.ru.apiprovider.pro/v1/chat/completions"
Что учесть в логике бота
Ограничьте контекст и расходы
Не отправляйте в модель бесконечную историю чата. Храните нужное число последних сообщений, суммаризируйте старые диалоги и задавайте ограничение на размер входящего текста на уровне приложения.
Выберите модель по типу сообщения
gpt-5.6-luna— экономичная первичная классификация, короткие ответы, разметка обращений, массовые сценарии и длинная история;gpt-5.6-terra— универсальный рабочий вариант после пополнения для диалогов, инструкций и анализа.
Другие доступные модели используйте после сравнения на реальных сообщениях и метриках.
Обрабатывайте ошибки безопасно
- 401 — проверьте API-ключ и заголовок Bearer;
- 402 — проверьте баланс;
- 429 — ограничьте частоту сообщений, параллелизм и повторите запрос через паузу;
- 5xx — верните пользователю нейтральное сообщение и выполните ограниченное число повторов с задержкой.
Не показывайте пользователю технический текст ошибки, ключ, заголовки запроса или содержимое внутреннего system prompt.
Защитите бота от злоупотреблений
Добавьте лимиты на частоту сообщений, размер текста и число одновременных запросов. Если бот работает с персональными или корпоративными данными, определите правила хранения истории и заранее предупредите пользователей, какие данные передаются в обработку.
Проверка перед запуском
- Отправьте боту короткое тестовое сообщение.
- Убедитесь, что ответ возвращается и API-ключ не выводится в логи.
- Проверьте неправильный ключ, нулевой баланс и недоступность сети: бот должен корректно сообщать о временной проблеме.
- Проверьте лимит на длинные сообщения и частые обращения.
- Посмотрите расход и историю использования в личном кабинете apiprovider.pro.
FAQ
Какой endpoint использовать для Telegram-бота?
Для текстового ответа используйте POST /chat/completions с Base URL https://api.apiprovider.pro/v1. Полный URL в примере: https://api.apiprovider.pro/v1/chat/completions.
Какую модель выбрать для бота?
Для первого запуска подойдёт gpt-5.6-terra. Если сценарий состоит из большого числа коротких, повторяющихся действий, протестируйте gpt-5.6-luna.
Можно ли использовать API из России без VPN?
Да. Используйте RU endpoint https://api.ru.apiprovider.pro/v1; ключ, model ID и формат запросов не меняются.
Нужно ли хранить историю сообщений?
Это зависит от сценария. Для диалога передавайте ограниченное число последних сообщений или их резюме, чтобы контролировать контекст, задержку и стоимость.
Почему нельзя помещать API-ключ в код бота?
Код может попасть в репозиторий, лог или сборочный артефакт. Используйте переменные окружения или секрет-хранилище и ограничивайте доступ к ним.
Следующий шаг
Создать аккаунт и перейти к подключению. После регистрации пополните баланс, создайте отдельный ключ для интеграции и выполните минимальный тест.
Готовы попробовать?
Создайте аккаунт, пополните баланс при необходимости и подключите подходящую модель.
Создать аккаунт