Введение
Подготовка к государственным экзаменам (ОГЭ и ЕГЭ) — это всегда серьезное испытание и огромный стресс для школьников и их родителей. Стандартные онлайн-тесты часто не дают качественной обратной связи, а нанимать репетиторов по каждому предмету становится непосильной финансовой задачей для многих семей.
Наша цель заключалась в создании «podgotovka» — современной образовательной платформы, которая объединяет в себе интерактивные варианты тестов, структурированную базу знаний (теоретические статьи и карточки-шпаргалки) и виртуального ИИ-помощника.
Главная отличительная черта нашего ИИ-помощника в том, что он не просто общается на общие темы (как обычные чат-боты), а работает по технологии RAG (Retrieval-Augmented Generation), отвечая строго по материалам проверенной базы знаний платформы. Это сводит к минимуму галлюцинации нейросети и дает ученику только верифицированную учебную информацию.
Архитектура и технологический стек
При проектировании системы мы стремились сделать проект максимально производительным, легким в поддержке, быстрым в развертывании и не перегруженным лишними зависимостями. Мы сознательно отказались от «модных», но тяжеловесных фреймворков там, где в них не было необходимости.
1. Фронтенд
React 19 + TypeScript + Vite
- Интерфейс написан на Vanilla CSS для максимальной скорости рендеринга и контроля над анимациями.
- Полная адаптация под мобильные устройства и бесшовная смена тёмной/световой темы.
- Безопасный рендеринг Markdown с помощью пакета
rehype-sanitizeдля защиты от XSS при выводе математических формул LaTeX и форматированных статей.
2. Бэкенд
Чистый Python (no-framework)
- Используется легковесный многопоточный сервер на базе стандартной библиотеки
http.server. - Полное отсутствие тяжелых фреймворков вроде Django или FastAPI, что дает абсолютный контроль над сетевым циклом и минимальный оверхед памяти.
- Низкое потребление ресурсов бэкенда на старте.
3. База данных и оптимизация векторного поиска
SQLite + numpy.memmap (Гибридный RAG)
- Данные хранятся в SQLite — это быстро, локально и не требует развертывания отдельного сервера БД.
- Гибридный RAG-поиск: система комбинирует поиск контекста по векторной близости (косинусное сходство эмбеддингов) и классический текстовый поиск по ключевым словам.
- Оптимизация памяти (memory-mapped): матрица векторных эмбеддингов размером около 430 МБ считывается с диска через механизм
numpy.memmap. Процесс Python не загружает её целиком в оперативную память, а подкачивает нужные фрагменты через страничный кэш операционной системы при запросе. Это позволяет запускать бэкенд даже на серверах с 512 МБ RAM!
Интерактивная схема гибридного RAG-поиска
Кликните на этапы, чтобы увидеть, как происходит поиск и генерация ответа
Ключевые возможности платформы
Мы спроектировали пользовательский интерфейс таким образом, чтобы он сочетал в себе привычные паттерны подготовки с передовыми технологиями ИИ-поддержки:
Интерактивные варианты экзаменов
Полноценные тесты формата ОГЭ/ЕГЭ по разным предметам. Ответы валидируются на бэкенде мгновенно, показывая подробный разбор ошибок.
База знаний и микрообучение
Два формата контента: подробные лонгриды для первого знакомства с темой и интерактивные карточки-шпаргалки (микрообучение) для быстрого повторения формул и терминов перед сном или по дороге в школу.
ИИ-Учитель с поддержкой SSE-стриминга
Индивидуальный чат с ИИ-тьютором, который обладает доступом к базе знаний. Текст ответа передается посимвольно (Server-Sent Events), за счет чего пользователь начинает видеть ответ мгновенно, без долгого ожидания генерации.
Интерактивный симулятор теста (Демо)
Проверьте, как работает мгновенная валидация ответов на примере задачи из ЕГЭ по математике
Симулятор ИИ-Тьютора с SSE-стримингом
Задайте ИИ-тьютору один из вопросов и оцените скорость ответа по RAG-контексту
Безопасность и оптимизация бэкенда
Поскольку платформа ориентирована на большую аудиторию школьников, мы уделили особое внимание устойчивости к нагрузкам и безопасности пользовательских данных:
Концепция Zero-Trust в коде
Отсутствие внешних фреймворков обязывает нас самостоятельно обрабатывать заголовки безопасности, зато это гарантирует отсутствие скрытых уязвимостей в цепочках зависимостей.
Хранение конфигурации
Все чувствительные данные (ключи к API ИИ, приватные настройки портов, пути к базам данных) строго изолированы во внешних файлах окружения .env и не попадают в систему контроля версий (Git).
Rate Limiting на чистом Python
Для защиты бэкенда от спам-запросов и парсинга контента реализован алгоритм «скользящего окна» (sliding window rate limiter) на базе IP-адресов. Лимиты настроены индивидуально для генерации ответов ИИ и для обычного чтения статей.
Content Security Policy (CSP)
Каждый HTTP-ответ сервера снабжается строгими заголовками безопасности, включая Content-Security-Policy, X-Frame-Options и X-Content-Type-Options. Это блокирует XSS-атаки и встраивание вредоносных сторонних скриптов в клиентскую часть.
Перспективы развития проекта
Мы разработали минимально жизнеспособный продукт (MVP) с высокой скоростью работы, и теперь перед нами стоят следующие шаги развития:
Этап 1: Авторизация и Личные кабинеты
Внедрение JWT-авторизации, позволяющей ученикам сохранять историю прохождения тестов, отслеживать динамику баллов и формировать персональный список «сложных тем» для повторения.
Этап 2: Монетизация и Премиум-доступ
Реализация гибкой подписки: базовый уровень (доступ к теории и 5 тестам в день) и премиум-уровень (безлимитные тесты, доступ к сложным заданиям С-части с разбором от ИИ-тьютора).
Этап 3: Интеграция с Telegram Mini App
Адаптация интерфейса для запуска в качестве мини-приложения внутри мессенджера Telegram. Это позволит ученикам проходить тесты и консультироваться с ИИ прямо в дороге, не переключаясь в браузер.
О нас
Проект «podgotovka» разработан и поддерживается небольшой командой увлеченных разработчиков, стремящихся сделать процесс подготовки к экзаменам доступным, понятным и высокотехнологичным:
Заключение
Проект «podgotovka» наглядно демонстрирует, как современные технологии искусственного интеллекта и прагматичный подход к выбору стека позволяют создать быстрый, адаптивный и надежный сервис. Использование гибридного RAG с оптимизированным memory-mapped поиском позволяет разворачивать бэкенд на серверах минимальной стоимости с объемом RAM менее 1 ГБ, обеспечивая при этом мгновенную выдачу контекста.