Связка «Telegram-бот + OpenRouter» — самый быстрый способ дать пользователям доступ к моделям ИИ. Ниже минимальный рабочий пример на aiogram.

Настройка

  1. Создайте бота у @BotFather и получите его токен.
  2. Получите ключ OpenRouter sk-or-v1-... (как это сделать).
  3. Установите зависимости: pip install aiogram openai.

Пример кода

import os, asyncio
from aiogram import Bot, Dispatcher, types
from openai import AsyncOpenAI

ai = AsyncOpenAI(base_url="https://openrouter.ai/api/v1",
                 api_key=os.environ["OPENROUTER_API_KEY"])
bot = Bot(os.environ["BOT_TOKEN"])
dp = Dispatcher()

@dp.message()
async def answer(m: types.Message):
    r = await ai.chat.completions.create(
        model="openai/gpt-4o-mini",
        messages=[{"role": "user", "content": m.text}],
    )
    await m.answer(r.choices[0].message.content)

asyncio.run(dp.start_polling(bot))
Закончились кредиты? Пополните баланс OpenRouter за рубли — картой РФ или через СБП, зачисление автоматическое за пару минут. Пополнить OpenRouter →

Советы и ошибки

402 insufficient credits — у бота «закончился мозг»: кредиты OpenRouter исчерпаны. Оберните вызов в try/except и отвечайте пользователю понятным сообщением, а себе — пополните баланс.

Для продакшена добавьте ограничение частоты запросов на пользователя, иначе баланс могут быстро израсходовать.