A newer version of the Gradio SDK is available:
5.44.1
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
Создайте новый Space на Hugging Face
Выберите SDK:
Docker
Загрузите файлы в репозиторий:
app.py
→app.py
parser.py
→parser.py
data_layer.py
→data_layer.py
llm.py
→llm.py
requirements.txt
→requirements.txt
Dockerfile
→Dockerfile
README.md
→README.md
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)
Алгоритм подбора:
- Фильтрация по семестру
- Оценка сложности курса vs опыт студента
- Совпадение интересов с тегами курса
- Математические требования vs уровень студента
- 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:
- Создайте новый Space
- Выберите Docker SDK
- Загрузите все файлы в репозиторий
- Space автоматически соберет и запустит Docker контейнер
📝 Лицензия
MIT License - свободное использование и модификация.
🤝 Поддержка
При возникновении проблем:
- Проверьте логи в консоли HF Spaces
- Убедитесь в наличии всех файлов
- Проверьте доступность сайта ITMO
- Используйте fallback режим при проблемах с LLM
Создано для абитуриентов магистратур ITMO 🎓
Минимально работающий прототип: парсинг + диалог + рекомендации + HF Spaces