ITMOpshtein
Commits & Code Churn
PR Activity
Languages
Recent Events
README
FAQ-бот для приёмной кампании ИТМО
Статус: 🚧 В разработке (MVP)
Версия: 0.1.0
Дата обновления: 2026-02-01
📋 Оглавление
- О проекте
- Проблема и решение
- Ключевые возможности
- Архитектура
- Команда
- Дорожная карта
- Быстрый старт
- Документация
- Метрики и цели
- Контакты
О проекте
FAQ-бот для приёмной кампании ИТМО — интеллектуальный чат-бот на базе RAG (Retrieval-Augmented Generation), который автоматически отвечает на повторяющиеся вопросы абитуриентов в Telegram, используя базу знаний из официальных источников ИТМО.
Цель проекта
Снизить нагрузку на координаторов приёмной кампании и улучшить качество обслуживания абитуриентов путём автоматизации ответов на типовые вопросы.
Контекст
- Период: Приёмная кампания 2026
- Масштаб: 50 000 абитуриентов, 30 000 студентов, 50 координаторов
- Дедлайн MVP: 1 неделя (к 2026-02-08)
- Бюджет: Нет выделенного бюджета
Проблема и решение
🔴 Проблема
-
Нагрузка на координаторов:
- 50 координаторов перегружены повторяющимися вопросами (дедлайны, документы, вступительные испытания)
- Риск пропустить важный вопрос в потоке сообщений -
Задержки для абитуриентов:
- Вопросы теряются в общих чатах
- Несвоевременные ответы создают стресс в критический период выбора вуза -
Перегрузка горячей линии:
- Звонки по типовым вопросам отнимают время координаторов
✅ Решение
Telegram-бот с AI и RAG, который:
- Мгновенно отвечает на типовые вопросы 24/7
- Приводит ссылки на официальные источники для подтверждения
- Автоматически эскалирует сложные вопросы на координаторов
- Работает в личных сообщениях и групповых чатах
- Обучается на ответах координаторов
Ключевые возможности
MVP (Неделя 1)
✅ Базовый функционал:
- Команда /start для начала работы
- Текстовые ответы на вопросы о поступлении
- Обязательные ссылки на источники (сайт ИТМО, PDF документы)
- Поддержание контекста диалога
✅ Эскалация:
- Кнопка "Связаться с человеком" в каждом сообщении
- Автоматическая эскалация при низкой уверенности бота
✅ Групповые чаты:
- Автоматическое распознавание вопросов в чате
- Распознавание координаторов по роли "admin"
- Управление переполнением контекста
✅ Обратная связь:
- Оценка ответа 1-5 звёзд
Планируется (Backlog)
- 🔄 Интеграция с VK
- 🌐 Мультиязычность для иностранных абитуриентов
- 📊 Дашборд с аналитикой для координаторов
- 🔔 Push-уведомления о дедлайнах
❌ Out of Scope (НЕ делаем)
- Автоматическая запись на мероприятия
- Персональные рекомендации программ обучения
- Работа с персональными данными (ФИО, результаты ЕГЭ)
- Голосовые сообщения
Архитектура
Высокоуровневая схема
┌─────────────────┐
│ Абитуриент │
│ (Telegram) │
└────────┬────────┘
│
▼
┌─────────────────────────────────────────┐
│ Telegram Bot API │
│ (python-telegram-bot / aiogram) │
└────────┬────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Orchestrator / Handler │
│ - Intent detection │
│ - Context management │
│ - Escalation logic │
└────┬────────────────────────────────┬───┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────────┐
│ RAG Pipeline │ │ Human Handoff │
│ │ │ (Координаторы) │
│ ┌──────────┐ │ └──────────────────┘
│ │ Retrieval│ │
│ │ (Vector │ │
│ │ Search) │ │
│ └──────────┘ │
│ │ │
│ ▼ │
│ ┌──────────┐ │
│ │Augmented │ │
│ │Generation│ │
│ │ (LLM) │ │
│ └──────────┘ │
└──────────────┘
│
▼
┌──────────────────────────┐
│ Knowledge Base │
│ │
│ - Сайт ИТМО (scraped) │
│ - Telegram Hub (messages)│
│ - PDF документы │
│ - История диалогов │
└──────────────────────────┘
Технологический стек (планируемый)
Backend:
- Python 3.10+
- python-telegram-bot или aiogram (Telegram Bot API)
- langchain или llama-index (RAG framework)
- chromadb или faiss (vector database)
- Open-source LLM: Llama 3.1 / Mistral / Qwen (или бесплатный API)
Data Processing:
- BeautifulSoup / Scrapy (web scraping)
- PyMuPDF или pdfplumber (PDF parsing)
- sentence-transformers (embeddings)
Infrastructure:
- Linux server (Ubuntu 22.04 / Debian 12)
- Redis (caching, rate limiting)
- PostgreSQL или SQLite (хранение диалогов, метрик)
DevOps:
- Git (version control)
- Docker (опционально, если время позволит)
- systemd или supervisor (process management)
Команда
Состав команды
| Роль | Имя | Ответственность |
|---|---|---|
| Product Owner | [Указать] | Приоритизация функционала, приёмка работы |
| Backend Developer 1 | [Указать] | RAG pipeline, LLM integration |
| Backend Developer 2 | [Указать] | Telegram Bot API, handlers, orchestrator |
| Backend Developer 3 | [Указать] | Data ingestion (scraping, parsing), knowledge base |
| AI Agents | Claude, GPT-4 | Поддержка разработки, code review |
Роли и обязанности
Product Owner:
- Определение требований и приоритетов
- Приёмка выполненной работы
- Коммуникация с координаторами приёмной кампании
Backend Developers:
- Разработка MVP за 1 неделю
- Тестирование и отладка
- Документирование кода
AI Agents:
- Генерация кода (boilerplate, utilities)
- Code review и рефакторинг
- Поиск best practices для RAG систем
Дорожная карта
Неделя 1: MVP (2026-02-01 → 2026-02-08) ✅ Текущий этап
День 1-2: Архитектура и базовая инфраструктура
- [ ] Выбор технологического стека
- [ ] Настройка окружения (Python, зависимости)
- [ ] Базовый Telegram Bot (команда /start)
- [ ] Простейший RAG pipeline (1 документ)
День 3-4: RAG и база знаний
- [ ] Web scraping сайта ИТМО (раздел поступления)
- [ ] Парсинг PDF документов
- [ ] Индексация в vector database
- [ ] Генерация ответов с обязательными ссылками
День 5-6: Групповые чаты и эскалация
- [ ] Распознавание вопросов в групповых чатах
- [ ] Распознавание координаторов (роль "admin")
- [ ] Кнопка эскалации
- [ ] Контекстная память (история диалога)
День 7: Тестирование и демо
- [ ] Тестирование в закрытом чате
- [ ] Исправление критических багов
- [ ] Подготовка демо-версии для руководства
- [ ] Документация (README, runbook)
Неделя 2-3: Пилот и итерации
- [ ] Запуск в 2-3 тестовых чатах с абитуриентами
- [ ] Сбор обратной связи (CSAT, escalation rate)
- [ ] Обучение на ответах координаторов
- [ ] Оптимизация производительности
Неделя 4+: Масштабирование
- [ ] Полный запуск для всех чатов приёмной кампании
- [ ] Мониторинг метрик (uptime, answer rate)
- [ ] Расширение на VK (если ресурсы позволят)
- [ ] Дашборд для координаторов
Быстрый старт
Требования
- Python 3.10+
- Telegram Bot Token (получить у @BotFather)
- OpenAI API Key (или использовать open-source LLM)
Установка
# Клонировать репозиторий (когда будет создан)
git clone https://github.com/ITMO/admissions-faq-bot.git
cd admissions-faq-bot
# Создать виртуальное окружение
python3 -m venv venv
source venv/bin/activate # На Windows: venv\Scripts\activate
# Установить зависимости
pip install -r requirements.txt
# Настроить переменные окружения
cp .env.example .env
# Отредактировать .env (добавить TELEGRAM_BOT_TOKEN, OPENAI_API_KEY)
# Инициализировать базу знаний
python scripts/ingest_documents.py --source data/itmo_docs/
# Запустить бота
python main.py
Конфигурация
Пример .env файла:
# Telegram
TELEGRAM_BOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
# LLM
OPENAI_API_KEY=sk-... # Или оставить пустым для open-source модели
LLM_MODEL=gpt-4o-mini # Или llama-3.1-70b-instruct
# Database
DATABASE_URL=postgresql://user:password@localhost/admissions_bot
VECTOR_DB_PATH=./data/vector_store/
# Application
LOG_LEVEL=INFO
RATE_LIMIT_PER_USER=10 # запросов в минуту
ESCALATION_THRESHOLD=0.7 # confidence score для эскалации
Документация
Основные документы
- Бриф — полное описание требований и контекста
- Lean Canvas — бизнес-модель проекта
- User Story Map — карта пользовательских историй
- Нефункциональные требования — производительность, безопасность, надёжность
- Описание команды — роли и ответственности
Дополнительные материалы
docs/api.md— API документация (когда будет)docs/runbook.md— инструкции по troubleshootingdocs/deployment.md— инструкции по деплою
Метрики и цели
Целевые метрики (через 1 месяц после запуска)
| Метрика | Текущее | Цель | Статус |
|---|---|---|---|
| Adoption Rate | 0% | > 20% абитуриентов используют бота | ⏳ |
| Answer Rate | 0% | > 70% вопросов без эскалации | ⏳ |
| Escalation Rate | 100% (нет бота) | < 30% | ⏳ |
| CSAT (удовлетворённость) | N/A | > 4.0 / 5.0 | ⏳ |
| Uptime | 0% | > 99% | ⏳ |
| Response Time (p95) | N/A | < 5 секунд | ⏳ |
| Снижение звонков на горячую линию | 0% | > 30% снижение | ⏳ |
Мониторинг
# Проверка статуса бота
curl http://localhost:8080/health
# Логи
tail -f logs/bot.log
# Метрики (если настроен Prometheus)
curl http://localhost:9090/metrics
Гипотезы проекта
Продуктовые гипотезы
-
Гипотеза 1: Абитуриенты предпочтут бота звонку на горячую линию для типовых вопросов
- Метрика: > 20% абитуриентов используют бота
- Валидация: Adoption rate через 2 недели после запуска -
Гипотеза 2: Бот сможет ответить на 70%+ вопросов без эскалации
- Метрика: Answer rate > 70%
- Валидация: Escalation rate < 30% -
Гипотеза 3: Координаторы высвободят минимум 10 часов в неделю
- Метрика: Снижение нагрузки на 20%+
- Валидация: Опрос координаторов через месяц
Риски и митигация
| Риск | Вероятность | Влияние | Митигация |
|---|---|---|---|
| Падение под нагрузкой | Высокая | Критическое | Graceful degradation, очереди сообщений, нагрузочное тестирование |
| Галлюцинации LLM (неточные ответы) | Средняя | Высокое | Обязательные ссылки на источники, строгий RAG, эскалация |
| Сжатые сроки (1 неделя) | Высокая | Среднее | Фокус на MVP, итеративное развитие, помощь AI агентов |
| Отсутствие бюджета | Высокая | Среднее | Open-source решения, бесплатные тиры API |
| Негативная реакция абитуриентов | Низкая | Среднее | Кнопка эскалации, явная коммуникация "это бот, не человек" |
Контакты
Для вопросов по проекту:
- Product Owner: [Email / Telegram]
- Tech Lead: [Email / Telegram]
- Репозиторий: [GitHub URL когда будет создан]
- Чат команды: [Telegram группа]
Для абитуриентов:
- Telegram бот: @itmo_admissions_bot (когда запустится)
- Канал Hub: [Ссылка на Telegram канал]
- Сайт ИТМО: https://abit.itmo.ru/
Лицензия
[Указать лицензию, если применимо]
Acknowledgments
- Команда приёмной комиссии ИТМО за обратную связь
- Абитуриенты за участие в тестировании
- AI агенты (Claude, GPT-4) за поддержку разработки
Последнее обновление: 2026-02-01
Статус: 🚧 MVP в разработке (День 1 из 7)