test5 / README.md
vydrking's picture
Upload 17 files
33a43a3 verified

A newer version of the Gradio SDK is available: 5.44.1

Upgrade
metadata
title: ITMO Магистратура - Чат-бот
emoji: 🤖
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 4.44.0
app_file: app.py
pinned: false

🤖 ITMO Магистратура - Чат-бот (HF Spaces)

Минимально работающий прототип чат-бота для абитуриентов магистратур ITMO с парсингом данных, диалоговой системой и персонализированными рекомендациями.

🎯 Ключевые функции

1. 📊 Парсинг данных с сайтов ITMO

  • Автоматический сбор учебных планов с официальных страниц
  • Парсинг PDF файлов с детальной информацией о курсах
  • Fallback курсы при недоступности парсинга
  • Нормализация данных в единый JSON формат

2. 💬 Диалоговая система (одна LLM, без RAG)

  • LLM-powered чат на основе RuT5-base-multitask
  • Строгая релевантность - отвечает только на вопросы об ITMO
  • Контекстный поиск по курсам и программам
  • Fallback режим при недоступности LLM

3. 🎯 Персонализированные рекомендации

  • Учет профиля студента (опыт программирования, математика, интересы)
  • Алгоритм подбора курсов на основе сложности и предпочтений
  • Рекомендации по семестрам с объяснением выбора
  • LLM-генерация персонализированных советов

🚀 Быстрый старт

Деплой на Hugging Face Spaces

  1. Создайте новый Space на Hugging Face

  2. Выберите SDK: Docker

  3. Загрузите файлы в репозиторий:

    • app.pyapp.py
    • parser.pyparser.py
    • data_layer.pydata_layer.py
    • llm.pyllm.py
    • requirements.txtrequirements.txt
    • DockerfileDockerfile
    • README.mdREADME.md
  4. Space автоматически соберет и запустит приложение

Локальный запуск

# Устанавливаем зависимости
pip install -r requirements.txt

# Запускаем приложение
python app.py

Приложение будет доступно по адресу: http://localhost:7860

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

├── app.py              # Flask приложение с встроенным HTML
├── parser.py           # Парсинг данных с сайтов ITMO
├── data_layer.py       # Работа с данными и рекомендации
├── llm.py             # LLM система
├── Dockerfile         # Docker конфигурация
├── requirements.txt   # Зависимости
└── README.md         # Документация

🎯 Что работает

Парсинг данных - автоматический сбор с сайтов ITMO ✅ Диалоговая система - LLM-powered чат с контекстным поиском ✅ Рекомендации - персонализированные по профилю студента ✅ 12 fallback курсов - полные учебные планы ИИ и AI Product ✅ Строгая релевантность - отвечает только на вопросы об ITMO ✅ Fallback режим - работает без LLM ✅ HF Spaces совместимость - работает на Hugging Face Spaces ✅ REST API - JSON API для интеграции

🔧 Технологии

  • Flask - веб-фреймворк
  • Transformers - LLM модель (RuT5-base-multitask)
  • BeautifulSoup - парсинг HTML страниц
  • Requests - HTTP запросы к сайтам ITMO
  • Docker - контейнеризация

📊 Данные

Программы

  • Искусственный интеллект - ML, DL, NLP, CV, 4 семестра
  • AI Product Management - продуктовая аналитика, управление, 4 семестра

Курсы (12 fallback курсов)

  • Семестры 1-4 с полной информацией
  • Теги для поиска и рекомендаций (ml, dl, nlp, cv, product, business, etc.)
  • Сложность - beginner/intermediate/advanced
  • Кредиты и часы обучения
  • Типы курсов - required/elective

🎯 Примеры вопросов

Вопросы о курсах:

  • "Какие курсы по машинному обучению?"
  • "Сколько кредитов за глубокое обучение?"
  • "Какие дисциплины в 1 семестре программы ИИ?"

Вопросы о программах:

  • "Расскажи о программе AI Product"
  • "Какая карьера после программы ИИ?"
  • "Нужна ли математика для AI Product?"

Вопросы о рекомендациях:

  • "Какие курсы подходят для моего профиля?"
  • "Что выбрать с опытом программирования 3/5?"
  • "Рекомендации для 2 семестра"

🔄 Обновление данных

Кнопка "Обновить данные" выполняет:

  • Парсинг страниц программ с сайта ITMO
  • Поиск PDF файлов с учебными планами
  • Обновление курсов и метаданных
  • Сохранение в JSON для последующего использования

🎯 Система рекомендаций

Входные параметры:

  • Опыт программирования (0-5)
  • Уровень математики (0-4)
  • Интересы (ml, dl, nlp, cv, product, business, etc.)
  • Целевой семестр (1-4)

Алгоритм подбора:

  1. Фильтрация по семестру
  2. Оценка сложности курса vs опыт студента
  3. Совпадение интересов с тегами курса
  4. Математические требования vs уровень студента
  5. LLM-генерация персонализированного объяснения

🔍 Релевантность вопросов

Бот отвечает только на вопросы, содержащие ключевые слова:

  • итмо, магистратура, учебный план, дисциплина, курс
  • ии, ai, ai product, программа
  • машинное обучение, глубокое обучение, nlp, компьютерное зрение
  • продукт, аналитика, управление, обучение, учеба

📝 Системные инструкции для LLM

  • Отвечай только по предоставленному контексту
  • Если в контексте нет нужной информации — ответь: "в предоставленных данных об этом не сказано"
  • Отвечай кратко и по делу
  • Не выдумывай факты и не давай общих ответов без ссылок на элементы контекста

🔧 Fallback-данные

12 встроенных курсов (по 6 на каждую программу) с заполненными полями:

  • id, program_id, semester, name, credits, type, short_desc, tags
  • Используются при пустом/недоступном парсинге

🐳 Docker деплой

На любом сервере с Docker:

# Клонируем репозиторий
git clone <your-repo-url>
cd <your-repo-name>

# Запускаем
docker build -t itmo-chatbot .
docker run -p 7860:7860 itmo-chatbot

На Hugging Face Spaces:

  1. Создайте новый Space
  2. Выберите Docker SDK
  3. Загрузите все файлы в репозиторий
  4. Space автоматически соберет и запустит Docker контейнер

📝 Лицензия

MIT License - свободное использование и модификация.

🤝 Поддержка

При возникновении проблем:

  1. Проверьте логи в консоли HF Spaces
  2. Убедитесь в наличии всех файлов
  3. Проверьте доступность сайта ITMO
  4. Используйте fallback режим при проблемах с LLM

Создано для абитуриентов магистратур ITMO 🎓

Минимально работающий прототип: парсинг + диалог + рекомендации + HF Spaces