File size: 9,481 Bytes
c2b9095 636417d c2b9095 636417d c2b9095 636417d c2b9095 636417d 33a43a3 636417d 946f233 636417d 946f233 636417d 946f233 33a43a3 946f233 33a43a3 946f233 33a43a3 946f233 33a43a3 946f233 33a43a3 946f233 33a43a3 946f233 33a43a3 946f233 33a43a3 946f233 636417d 946f233 636417d 946f233 33a43a3 946f233 636417d 946f233 636417d 946f233 636417d 946f233 636417d 33a43a3 946f233 636417d 946f233 636417d 946f233 636417d 946f233 33a43a3 946f233 33a43a3 946f233 636417d 946f233 33a43a3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 | ---
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](https://huggingface.co/spaces)
2. **Выберите SDK**: `Docker`
3. **Загрузите файлы** в репозиторий:
- `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`
4. **Space автоматически соберет и запустит** приложение
### Локальный запуск
```bash
# Устанавливаем зависимости
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:
```bash
# Клонируем репозиторий
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*
|