Клиент хотел создать сервис, который помогает обычным людям понимать результаты своих лабораторных анализов без похода к врачу. Задача — пользователь фотографирует бланк анализов, отправляет боту и получает понятное объяснение каждого показателя на русском языке: что в норме, что выше или ниже, и что это значит.
Требования: работа 24/7 без участия человека, поддержка кириллицы в OCR, монетизация через систему подписок, панель для ручного одобрения платежей через СБП.
Разработал Telegram-бота на Python (aiogram 3.x) с несколькими слоями обработки:
1. OCR-распознавание — pytesseract извлекает текст с фото бланка (поддержка rus+eng)
2. AI-анализ — Mistral API читает каждый показатель, сравнивает с нормами и генерирует пояснение на русском
3. Система подписок — SQLite + SQLAlchemy, бесплатный тариф 3 анализа/месяц, платные тарифы с расширенными лимитами
4. Панель администратора — оплата через СБП, скриншот квитанции → ручная верификация с инлайн-кнопками одобрения
5. Деплой на VPS — systemd-сервис, работает 24/7
Решил нетривиальные задачи: обход сетевых ограничений VPS (российский хостинг блокирует часть Telegram IP), обработка нестабильного соединения через retry-логику, разбивка длинных ответов AI на части под лимиты Telegram.
Бот запущен в production и работает в автономном режиме. Пользователь отправляет фото — через 1-2 минуты получает структурированную расшифровку с пометками "в норме / выше / ниже" по каждому показателю. Система подписок и оплата через СБП функционируют без участия разработчика. Потребление памяти — 74 МБ, uptime стабильный.