Files
notes-qpid-pro/PLAN.md
T

11 KiB
Raw Blame History

План развития и архитектурная дорожная карта: Study Qpid (study.qpid.pro)

Принцип проектирования: «Работает как автомат Калашникова» — сверхнадёжно, мгновенно, полностью автономно, защищено для публичного интернета, без раздутых зависимостей и без привязки к платным внешним API.


1. Архитектура системы

Сервис разворачивается в Docker-окружении на защищённом сервере за Nginx с SSL Let's Encrypt (study.qpid.pro).

┌─────────────────────────────────────────────────────────────┐
│                       study.qpid.pro                        │
│            Nginx (HTTPS / Let's Encrypt / Security Headers) │
└──────────────────────────────┬──────────────────────────────┘
                               │ proxy_pass 127.0.0.1:8002
┌──────────────────────────────▼──────────────────────────────┐
│             Docker Container: study-qpid-pro                │
│                                                             │
│  • FastAPI Lifespan & Security Middlewares (GZip, Headers)  │
│  • Модульные APIRouters (auth, cards, srs, reader, etc.)    │
│  • SQLite WAL + mmap I/O (транзакции, 0.01ms чтение)        │
│  • Локальный Piper Neural TTS (чистый нативный голос VITS)  │
│  • Вынесенные JSON-датасеты (data/seeds/)                   │
│  • Модульные CSS-стили (7 предметных таблиц + PWA SW v6.7)  │
└──────────────────────────────┬──────────────────────────────┘
                               │ http://ollama:11434 (Keep-Alive 120s)
┌──────────────────────────────▼──────────────────────────────┐
│              Docker Container: study-ollama                 │
│  • Qwen 2.5 3B Instruct (контекстный перевод предложений    │
│    и педагогический дебрифинг уроков)                       │
└─────────────────────────────────────────────────────────────┘

2. Реализованные этапы развития (Completed Roadmap)

✅ Этап 1: Защищённое ядро (MVP) и базовый словарь

  • Авторизация на сессионных куках (HttpOnly, SameSite=Lax, Secure).
  • Хэширование паролей PBKDF2-HMAC-SHA256 с уникальной солью на пользователя.
  • Rate limiting для предотвращения атак перебором.
  • Офлайн-словарь (140k+ записей) с каскадным переводом.
  • Сохранение слов с контекстным предложением и горячими клавишами (Ctrl+Enter).
  • Журнал личного словаря, поиск, фильтрация по тегам и коллекциям.

✅ Этап 2: Организация, экспорт и PWA

  • Коллекции и теги, разбивка слов по категориям.
  • Пакетные операции над карточками (массовое перемещение, удаление, добавление тегов).
  • Экспорт данных в форматы: CSV, JSON, Anki TSV и Markdown.
  • PWA-манифест и Service Worker для офлайн-доступа к приложению.

✅ Этап 3: Алгоритм интервальных повторений (SRS SM-2) и тренажер

  • Реализация математической модели SuperMemo SM-2 (Ease Factor, Repetitions, Intervals).
  • 3D-флип карточки с градацией оценок (Снова, Трудно, Хорошо, Легко).
  • Режим Smart Quiz (выбор из 4 вариантов с дистракторами из той же части речи).
  • Режим активного ввода (Active Typing) с набором английского слова по русскому переводу.
  • Smart Daily Mix: сбалансированная подборка (10 новых + 10 повторов + 5 проблемных слов).
  • Детекция проблемных слов (Leeches) и повторный фокус на них.
  • Аналитика: календарь активности (Heatmap 180 дней), стрик дней, процент удержания (Retention Rate), оценка уровня CEFR.

✅ Этап 4: Интерактивная читалка и книжная полка

  • Поддержка книг и документов: EPUB, PDF, TXT, Markdown (.md).
  • Автоматический сборщик стандартов IETF RFC по номеру или URL.
  • Интеграция с Wikipedia: автономная загрузка статей с очисткой верстки под тайм-бюджет.
  • Интерактивный клик-перевод каждого слова с выводом контекста.
  • Добавление слова и цитаты в словарь в 1 клик прямо из текста.
  • Непрерывное чтение (continuous scroll) с карточками перехода между главами.
  • Темы оформления (Light, Dark, Sepia, Night, Parchment, Hacker) и типографика.

✅ Этап 5: Автономный локальный ИИ (Ollama) и нейро-озвучка (Piper)

  • Развертывание локального контейнера Ollama с моделью qwen2.5:3b.
  • Контекстный перевод предложений с учетом целевого слова и сохранением в кэш SQLite.
  • Локальный VITS-синтез речи Piper TTS (US Lessac, RU Dmitri) с нулевой задержкой.
  • Фоновое пред-кэширование произношения слов и предложений при добавлении в словарь.
  • Тренажёр аудирования (Listening) с проверкой понимания.

✅ Этап 6: Грамматика Murphy & Тестирование CEFR

  • 260 интерактивных заданий Cloze Tap по международным уровням A1–B2.
  • Автоматическая gap-ингестия: отправка ошибочных слов из тестов в активный тренажёр SRS.
  • Фоновый воркер майнинга тестов из загруженной литературы.
  • 15 базовых юнитов грамматики Murphy с формулами и теорией.
  • Синхронизация с рукописным бумажным конспектом.

✅ Этап 7: Конструктор комплексного урока & Сессионный раннер

  • Единый конструктор ежедневного урока: блоки слов (Flashcards/Quiz/Typing/Dictation), грамматики, аудирования, чтения.
  • Встроенные готовые шаблоны (Экспресс, Сбалансированный, Глубокий, Аудио+Чтение).
  • Адаптивный подбор темы грамматики («Самая слабая тема по ошибкам», «Предыдущая тема»).
  • Сквозная телеметрия ошибок сессии и интеллектуальный ИИ-дебрифинг от Qwen 2.5 3B.
  • Детерминированный фолбэк для мгновенного завершения сессии при выключенной Ollama.

✅ Этап 8: Глубокий технический рефакторинг и оптимизация (Beta-refactor)

  • Этап 1 рефакторинга: Удаление мертвого кода (parse_text), оптимизация SQL в фоновых задачах.
  • Этап 2 рефакторинга: Вынос 3 100+ строк захардкоженных датасетов в data/seeds/*.json.
  • Этап 3 рефакторинга: Keep-Alive пул соединений для Ollama (120s), офлайн-лемматизация в словаре.
  • Этап 4 рефакторинга: Модуляризация бэкенда (app/main.py сокращён с 2 240 до 142 строк, создано 11 APIRouters).
  • Этап 5 рефакторинга: Модуляризация CSS (style.css 8 746 строк разделен на 7 предметных файлов, обновлён прекэш SW v6.7).
  • 100% покрытие авто-тестами: 44/44 тестов проходят в Docker.

3. Ближайшие планы и вектор развития (Future Enhancements)

  1. Браузерный букмарклет для захвата слов:
    • Минималистичный JS-скрипт для браузера, позволяющий по клику отправить выделенное слово и контекст страницы в личный словарь study.qpid.pro.
  2. HTML5 Web Speech API fallback:
    • Дополнительный запасной канал озвучивания через встроенный window.speechSynthesis при мобильном режиме без связи.
  3. Расширение библиотеки Murphy:
    • Постепенное расширение учебных юнитов грамматики с 15 до 30+ тем (Passive Voice, Reported Speech, Phrasal Verbs in Context).
  4. Адаптивные интервалы по времени суток:
    • Учёт утренних и вечерних окон повторения в сессионном раннере для максимальной концентрации.