Skip to content

LidaChk/sigma108

Repository files navigation

Sigma108 App

Цель: Создать веб-приложение для автоматической оценки устных ответов на экзамене по русскому языку для иностранных граждан.

Деплой: https://lidachk.github.io/sigma108/

Видео: https://cloud.mail.ru/public/xcKe/UBnpmvgwz

Стек

  • Backend: Python, FastAPI
  • Frontend: React, Gravity UI
  • Контейнеризация: Docker
  • CI/CD: GitHub Actions
  • Развёртывание: DockerHosting, GitHub Pages
  • ML: Python, transformers, torch, pandas
  • SLM: ruBert-base (open source - ruBert-base на Hugging Face - trained by torch, peft, transformers, pandas)

Структура проекта

  • backend/
├── main.py                      # FastAPI, подключение маршрутов
├── config.py                    #
├── Dockerfile                   #
├── fine_tuned_rubert_base/      # Модель
│   ├── config.json              #
│   ├── model.safetensors        #
│   ├── special_tokens_map.json  #
│   ├── tokenizer.json           #
│   ├── tokenizer_config.json    #
│   ├── training_args.bin        #
│   └── vocab.txt                #
├── services/                    # Логика приложения
│   ├── __init__.py              #
│   ├── file_processor.py        # 
│   └── task_manager.py          # 
├── api/                         # роутеры FastAPI
│   ├── __init__.py              #
│   └── routes.py                # @app.post("/upload"), @app.get("/status"), @app.get("/download")
├── logger/                      #
│   └── log_config.py            # Логирование
└── requirements.txt             # Зависимости для backend (fastapi, uvicorn, pandas, numpy)
  • frontend/

Задачи (To-Do)

  • Backend:
    • Написать endpoint /upload для загрузки CSV (FastAPI)
    • placeholder
    • Реализовать endpoint /status
    • Реализовать endpoint /download для выдачи обработанного CSV
    • Создать Dockerfile для backend
    • Добавить логику обработки ошибок (валидация файла и т.д.)
    • очитска файлов после отдачи файла или по таймауту
    • отправлять актуальный (%) статус обрабоки файла
  • Frontend:
    • Инициализировать React-app
    • добавить Mantine
    • компонент для загрузки файла
    • компонент для отображения статуса обработки
    • компонент для скачивания результата
    • Настроить вызов backend API из frontend
    • ссылки на github
    • отображать актуальный статус обработки файла
    • отображать время затраченное на обработку
  • Docker:
    • Написать docker-compose.yml для локального запуска backend + frontend
  • CI/CD & Deploy:
    • создать ветку Deploy
  • ML-логика:
    • выбрать наиболее подходящую модельку
    • перевести картинки в текст
    • подготовить данные для дообучения
    • код для дообучения
    • код для приема .csv и предсказания ответов

Запуск

docker

docker-compose up --build

frontend/

cd ./frontend
npm run dev

backend/

для bash VScode с Conda

eval "$(conda shell.bash hook)"
conda activate auto-eval
cd ./backend
python -m uvicorn main:app --reload --host 0.0.0.0 --port 8000

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors