Skip to main content
Telegram-бот — это, наверное, самый быстрый способ дать людям доступ к нейросети: ни сайта, ни приложения, открыл чат и пишешь. Ниже — полный путь от пустой папки до работающего бота, который отвечает через Claude или GPT по вашему ключу RuAPI. Кода немного, и он копируется целиком. Мы используем OpenAI-совместимый протокол RuAPI: меняем base_url, и тот же openai SDK работает с Claude, GPT, Gemini и DeepSeek.
1

Что нужно заранее

  • Ключ RuAPIsk-.... Создаётся в Консоли: «Токены»«Создать токен». Баланс пополняется в USDT — см. пополнение.
  • Python 3.10+ — проверьте командой python --version.
  • Токен Telegram-бота — получим на следующем шаге.
2

Создайте бота в Telegram

Откройте в Telegram чат с @BotFather и отправьте команду /newbot. BotFather спросит имя бота и его username (должен заканчиваться на bot). В ответ он пришлёт HTTP API token — строку вида 123456789:AAH.... Скопируйте её, она понадобится дальше.
Токен бота — это пароль. Не публикуйте его в коде, репозитории или скриншотах. Если случайно засветили — отправьте BotFather /revoke и получите новый.
3

Установите зависимости

python-telegram-bot версии 21+ — это асинхронный фреймворк для Telegram. openai — клиент, который мы направим на RuAPI.
4

Напишите бота

Создайте файл bot.py. Это полностью рабочий минимальный бот: на каждое текстовое сообщение он отправляет ваш текст модели и отвечает её ответом.
bot.py
В примере — модель claude-opus-4-8. Тем же ключом доступны и другие модели: gpt-5.4, gemini-3.5-flash, deepseek-v4-pro и прочие. Точные имена — на странице «Цены» на www.ruapi.ai.
5

Запустите

Передайте оба токена через переменные окружения и запустите скрипт:
Бот молча запустится и начнёт слушать сообщения (run_polling опрашивает Telegram). Найдите бота в Telegram по username, напишите ему что-нибудь — и он ответит через нейросеть. Чтобы остановить, нажмите Ctrl+C.
6

Сделайте лучше

Минимальный бот не помнит контекст и отвечает на каждое сообщение с чистого листа. Несколько идей, куда расти:
  • Память диалога. Храните историю сообщений по chat_id (например, в context.chat_data) и передавайте весь список в messages=[...] — тогда бот будет помнить предыдущие реплики.
  • Системный промпт. Добавьте первым элементом {"role": "system", "content": "Ты — дружелюбный помощник..."}, чтобы задать тон и роль.
  • Команда /start. Добавьте CommandHandler("start", ...) с приветствием — так бот выглядит дружелюбнее.
  • Смена модели. Поменяйте поле model, чтобы переключиться на GPT или Gemini.
  • Дешевле для нагрузки. Если сообщений много, переведите бота на более доступную модель — gemini-3.5-flash или deepseek-v4-pro. Качество для чата отличное, расход баланса заметно ниже.
  • Ответ по мере генерации. Включите потоковый вывод и обновляйте сообщение по ходу — на длинных ответах бот выглядит живее, чем когда долго молчит.

Если что-то пошло не так

Проверьте, что токен бота скопирован целиком и без пробелов, и что скрипт действительно запущен (run_polling должен работать, окно терминала не закрыто). Убедитесь, что вы пишете именно тому боту, которого создали у BotFather. Ошибки печатаются в терминал — посмотрите туда.
Проблема с ключом RuAPI, а не с токеном бота. Проверьте RUAPI_KEY — он должен начинаться с sk-. Посмотреть ключ можно в Консоли на странице «Токены».
Закончился баланс. Пополните его в USDT — см. пополнение.

Что дальше