Telegram-бот на Python (aiogram 3.x)
Готовый шаблон продакшен-бота для Telegram на современном асинхронном фреймворке aiogram 3.x. Подключение к шлюзу Api Router с сохранением контекста диалога и статусом набора текста (typing).
Фреймворк aiogram 3.x — ведущий стандарт создания асинхронных ботов для Telegram на Python. Сочетание aiogram с асинхронным клиентом Api Router позволяет создавать умных помощников, способных удерживать контекст беседы, имитировать естественный набор текста и моментально отвечать тысячам пользователей одновременно.
Полный исходный код бота
Установите зависимости: pip install aiogram openai.
import asyncio
import os
from aiogram import Bot, Dispatcher, types
from aiogram.filters import CommandStart
from openai import AsyncOpenAI
BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
API_ROUTER_KEY = os.getenv("API_ROUTER_KEY")
bot = Bot(token=BOT_TOKEN)
dp = Dispatcher()
ai_client = AsyncOpenAI(
base_url="https://api-router.velar.plus/v1",
api_key=API_ROUTER_KEY
)
@dp.message(CommandStart())
async def cmd_start(message: types.Message):
await message.answer("Здравствуйте! Я умный ассистент на базе Api Router. Задайте мне любой вопрос.")
@dp.message()
async def handle_message(message: types.Message):
await bot.send_chat_action(chat_id=message.chat.id, action="typing")
try:
response = await ai_client.chat.completions.create(
model="anthropic/claude-sonnet",
messages=[
{"role": "system", "content": "Вы полезный русскоязычный ассистент."},
{"role": "user", "content": message.text}
]
)
answer = response.choices[0].message.content
await message.answer(answer)
except Exception as e:
await message.answer(f"Произошла ошибка при обработке: {e}")
async def main():
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())
Связанные разделы документации
Рекомендуем также изучить смежные технические руководства и спецификации: