Telegram-бот с AI через AI Gateway — на Python
AI-бот в Telegram на Python: aiogram и OpenAI SDK с ключом AI Gateway
https://ai-gatewey.ru/v1sk-aigate-…deepseek/deepseek-v4-flashAI-бот в Telegram — это связка двух библиотек: aiogram принимает сообщения от пользователей, а openai SDK обращается к модели. Достаточно направить SDK на AI Gateway через base_url — и бот отвечает моделями из каталога без VPN и валютной карты, с оплатой в рублях.
Подключение
- Получите два ключа
Токен Telegram-бота — у @BotFather командой
/newbot. Ключ AI Gateway (sk-aigate-…) — в кабинете после регистрации; для бота лучше отдельный ключ со своим потолком расхода. - Установите библиотеки
Нужны асинхронный фреймворк для Telegram и OpenAI SDK:
bashbashpip install aiogram openai - Настройте клиента на AI Gateway
В
AsyncOpenAIпередайтеbase_urlсо шлюзом и ключ AI Gateway — дальше SDK используется как обычно:pythonpythonfrom openai import AsyncOpenAIai = AsyncOpenAI(base_url="https://ai-gatewey.ru/v1",api_key="sk-aigate-...",) - Соберите echo-AI-бота
Минимальный бот: любое текстовое сообщение уходит в модель, ответ возвращается пользователю:
pythonpythonimport asynciofrom aiogram import Bot, Dispatcher, Ffrom aiogram.types import Messagefrom openai import AsyncOpenAIbot = Bot("TELEGRAM_TOKEN")dp = Dispatcher()ai = AsyncOpenAI(base_url="https://ai-gatewey.ru/v1",api_key="sk-aigate-...",)# фильтр F.text — без него хендлер ловит и фото, и стикеры, и голосовые,# а msg.text у них None, и запрос к модели падает@dp.message(F.text)async def on_message(msg: Message):res = await ai.chat.completions.create(model="deepseek/deepseek-v4-flash",messages=[{"role": "user", "content": msg.text}],)await msg.answer(res.choices[0].message.content)asyncio.run(dp.start_polling(bot)) - Запустите и проверьте
Запустите скрипт и напишите боту в Telegram — ответ придёт от модели, а расход по токенам появится в кабинете AI Gateway в реальном времени.
messages.Модели для ботов
В ботах поток сообщений большой, а ответы короткие — важнее скорость и цена за запрос, чем максимальный интеллект:
Частые вопросы
Как сделать, чтобы бот помнил контекст диалога?
SDK сам по себе не хранит историю: собирайте список сообщений пользователя и ответов бота и передавайте его целиком в messages при каждом запросе. Для экономии токенов обрезайте старые сообщения.
Как удержать расход под контролем на публичном боте?
Заведите отдельный ключ AI Gateway с потолком расхода и RPM-лимитом, добавьте в бота простой rate-limit на пользователя и выбирайте дешёвую модель — так пиковая нагрузка не приведёт к сюрпризам.
Подойдёт ли синхронный openai-клиент?
aiogram асинхронный, поэтому используйте AsyncOpenAI и await, как в примере. Синхронный клиент в обработчиках будет блокировать event loop и тормозить бота под нагрузкой.
https://ai-gatewey.ru/v1sk-aigate-…deepseek/deepseek-v4-flash