
Как создать AI‑бота в Telegram на aiogram 3 и выдержать нагрузку в 2500+ пользователей
Что делаем
Создаём Telegram‑бота‑репетитора, который принимает фото‑вопросы и отвечает с помощью модели Gemini. Для работы используем aiogram 3 и aiosqlite.
Как построена архитектура
- aiogram 3 управляет обработкой сообщений и асинхронными задачами.
- aiosqlite хранит запросы, результаты и статистику. Несмотря на простоту, SQLite выдерживает более 2500 одновременных пользователей благодаря небольшому объёму данных и оптимизированным запросам.
- Gemini API вызывается в отдельном coroutine, что не блокирует основной цикл бота.
Проблемы под нагрузкой и их решения
- Блокировка базы – переключаемся на
PRAGMA journal_mode=WAL, позволяя читать и писать одновременно. - Ограничения API – реализуем очередь запросов и экспоненциальный back‑off, чтобы не превысить лимиты Gemini.
- Память – используем
await asyncio.sleep(0)после каждой крупной операции, чтобы дать возможность планировщику освободить ресурсы.
Почему SQLite «всё ещё торт»
- Лёгкость внедрения – без отдельного сервера, файл базы в проекте.
- Быстрота чтения – данные находятся в памяти после первого доступа.
- Поддержка WAL делает её конкурентоспособной даже при высокой параллельности.
Итоги
AI‑бот на aiogram 3 с Gemini и SQLite прост в реализации, масштабируем и надёжен. Главное – правильно настроить асинхронность и режим журнала SQLite.



Комментарии 0