test5 / README.md
vydrking's picture
Upload 17 files
33a43a3 verified
---
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*