Бэкенд-ядро сервиса грамматической проверки текста на русском, английском, китайском и испанском языках. Текущая фаза: реализация правило-ориентированного пайплайна анализа (токенизация → морфология → валидация) с асинхронной обработкой.
Клиент → NiceGUI Frontend → Django 6.0 (ORM, Auth) + FastAPI (Async NLP) → NLTK Pipeline → Результат │ ├── Синхронный слой: управление пользователями, история проверок └── Асинхронный слой: обработка текста через uvicorn + FastAPI
┌──────────────┐ ┌──────────────────┐ ┌──────────────────┐ │ NiceGUI UI │────▶│ API Gateway │────▶│ NLP Service │ │ (Python) │ │ (FastAPI) │ │ (Async Python) │ └──────────────┘ └──────────────────┘ └──────────────────┘ │ ┌───────┴────────┐ ▼ ▼ ┌──────────────┐ ┌──────────────┐ │ NLTK Core │ │ Rule Engine │ │ (Multi-lang)│ │ (YAML/JSON) │ └──────────────┘ └──────────────┘
| Компонент | Статус | Описание |
|---|---|---|
| Поддержка языков | ✅ Реализовано | Русский, английский, китайский, испанский |
| Асинхронная обработка | ✅ Реализовано | FastAPI + uvicorn для неблокирующей обработки текста |
| Токенизация текста | ✅ Реализовано | Разделение на слова/предложения через NLTK |
| Морфологический анализ | ✅ Реализовано | Определение частей речи (POS tagging) |
| Орфографическая проверка | 🟡 В разработке | Базовая валидация орфографии |
| Стилистический анализ | 🟡 В разработке | Анализ структуры предложений и стилей письма |
| Коррекция ошибок | 🟡 В разработке | Подсветка и предложение исправлений |
| История проверок | 🟡 В разработке | Хранение результатов через Django ORM |
| Конфигурация правил | ⬜ Планируется | Перенос правил в YAML/JSON |
Сервис решает задачу автоматизации редактуры через гибридную архитектуру:
- Синхронный слой (Django 6.0) — управление пользователями, аутентификация, хранение истории проверок
- Асинхронный слой (FastAPI + uvicorn) — обработка текста без блокировки основного потока
- NLP-пайплайн — токенизация → морфоанализ → правило-ориентированная валидация → агрегация результатов
🔑 Архитектурное решение: Гибридный подход позволяет сочетать зрелость Django (ORM, безопасность) с производительностью асинхронного стека (FastAPI) для CPU-intensive задач NLP.
| Слой | Технология | Версия | Назначение |
|---|---|---|---|
| Web Framework | Django | 6.0.1 | ORM, аутентификация, управление пользователями |
| Async API | FastAPI | 0.125.0 | Асинхронная обработка NLP-задач |
| ASGI Server | uvicorn | 0.40.0 | Запуск асинхронного приложения |
| Frontend | NiceGUI | 3.6.1 | Python-ориентированный интерфейс без JavaScript |
| NLP | NLTK | — | Токенизация, POS-теггинг, мультиязычная обработка |
| Async I/O | aiohttp, uvloop | — | Высокопроизводительные сетевые операции |
| Валидация | pydantic | 1.10.26 | Валидация данных и сериализация |
| База данных | SQLite (Django ORM) | — | Хранение пользователей и истории проверок |
- Python 3.10+
- Poetry или pip для управления зависимостями
# 1. Клонировать репозиторий
git clone https://github.com/Nicemice13/check_your_grammar.git
cd check_your_grammar
# 2. Активировать виртуальное окружение
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# 3. Установить зависимости
pip install -r requirements.txt
# 4. Выполнить миграции Django
python manage.py migrate
# 5. Запустить сервер
python main.py # или python manage.py runserver, в зависимости от структуры проекта
# 6. Открыть в браузере
# http://localhost:8080 (стандартный порт NiceGUI)
Остановка сервера
Ctrl + C