final_project_base

0

Описание

Assessment Question Difficulty Classifier

Языки

  • Python100%
README.md

Assessment Question Difficulty Classifier (c веб-интерфейсом на Streamlit и GigaChat)

Python 3.11+

Автоматическая классификация сложности вопросов тестов и экзаменов с объяснением и рекомендациями на основе ИИ.

🎯 Что это и зачем?

Преподаватели тратят значительное время на ручную калибровку сложности вопросов. Этот проект решает реальную проблему в образовании:

  • автоматически классифицирует вопросы как low / medium / high,
  • объясняет предсказание через SHAP (интерпретируемость),
  • предлагает конкретные улучшения с помощью GigaChat (LLM),
  • преподаватели могут попросить GigaChat на основе ML-анализа улучшить вопросы определённым образом (упростить, усложнить).
  • помогает создавать сбалансированные и эффективные тесты.

Проект находится на стыке ИИ в образовании, обработки естественного языка и анализа поведенческих данных.

📦 Установка

Требования

  • Python 3.11+
  • Gigachat SDK
  • Git

В

.env
в корне проекта укажите
GIGACHAT_CREDENTIALS="ваш_gigachat_auth"
. Для получения доступа к gigachat_auth можете обратиться к студенту, выполнившему работу: bebebe (Нурбаев Данияр, ТГ.)

Шаги

▶️ Использование

1. Обучение модели

создаст папку

models/
и файл
metrics.json
с метриками качества.

2. Запуск веб-интерфейса

открывает интерактивный UI для анализа вопросов.

3. Запуск тестов

4. Проверка работоспособности анализа

Для проверки можно открыть веб-интерфейс и попробовать проанализировать

data/test_data.csv
.

🧪 Пример использования в коде (без веб-интерфейса)

Пример вывода

question predicted_difficulty 0 Что такое... low 1 Решите задачу... medium 2 Проанализируйте... high

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

. ├── src/ # Основная логика (библиотека) │ ├── features.py # Генерация данных и признаки │ ├── model.py # Обучение и предсказание │ ├── explain.py # Объяснение и рекомендации │ └── gigachat.py # Интеграция с LLM ├── app.py # Точка входа Streamlit UI ├── train.py # Точка входа обучения модели ├── tests/ # Unit-тесты (pytest) ├── models/ # Сохранённые модели (не в репе) ├── data/ # Датасеты для обучения и валидации ├── metrics.json # Метрики модели (обновляется CI) ├── requirements.txt # Зависимости ├── .gitignore # Игнор файлов └── pyproject.toml # Конфигурация (pytest, сборка)