Проект реализует кейс-задачу №3: Telegram-бот для первичного сбора требований клиента и автоматического расчета ориентировочной сметы.
Компания: ООО "Торжество Разума". Профиль: аутсорс-разработка мобильных приложений (Flutter iOS/Android), веб-приложений (React, PHP), backend-сервисов (Python FastAPI).
- Распознает тип проекта через
spaCy(ключевые слова и фразы). - Ведет клиента по сценарию сбора данных:
- тип проекта,
- размер команды разработчиков (от 3 до 8),
- срок проекта (в месяцах),
- ставка разработчика (1000-2000 руб/час),
- текстовое описание задачи.
- Считает ориентировочную смету для команды:
- N разработчиков,
- 1 QA (600 руб/час),
- 1 PM (1000 руб/час).
- Отправляет итог клиенту в чат и дублирует заявку в личные сообщения менеджеру (
TELEGRAM_CHAT_ID).
Используется оценка по человеко-часам за месяц:
итого = месяцы * 160 * (N_dev * rate_dev + 1 * 600 + 1 * 1000)
где:
160- условные часы на человека в месяц,N_dev- число разработчиков (3..8),rate_dev- ставка разработчика (1000..2000 руб/час).
poetry installДля более точного распознавания русского текста установите модель spaCy:
poetry run python -m spacy download ru_core_news_smЕсли модель не установлена, бот использует fallback spacy.blank("ru").
TELEGRAM_TOKEN=<token вашего бота>
TELEGRAM_CHAT_ID=<chat id менеджера>poetry run python -m nlp_bot.main-
Функциональность Реализован пошаговый Telegram-диалог с валидацией входных данных и расчетом сметы. Бот покрывает ключевой бизнес-сценарий пресейла: от сбора параметров до передачи заявки менеджеру.
-
Точность распознавания Распознавание типа проекта построено на
spaCy PhraseMatcherс доменными ключевыми словами (Flutter, React, PHP, FastAPI и пр.). Для коротких прикладных фраз точность высокая; для неоднозначных описаний зависит от полноты словаря и может расширяться. -
Качество ответов Ответы структурированы: клиент получает состав команды, ставки, декомпозицию по ролям и итоговую сумму. Это достаточно информативно для предварительной оценки.
-
Интерактивность Бот поддерживает диалог в несколько шагов, использует клавиатуру Telegram, обрабатывает некорректный ввод и предлагает повторный ввод.
-
Скорость ответа Ответ формируется мгновенно (локальные вычисления без внешних API), задержка ограничена сетевой доставкой Telegram.
-
Удобство использования Интерфейс минималистичный и понятный:
/start, последовательные вопросы, прозрачная логика расчета. -
Возможности расширения Можно добавить:
- хранение заявок в БД,
- гибкие роли команды (дизайнер, DevOps, аналитик),
- несколько тарифных сеток,
- экспорт КП в PDF,
- интеграцию с CRM.
-
Эффективность разработки Использованы готовые надежные библиотеки:
python-telegram-bot,spaCy,python-dotenv. Это ускорило реализацию и упростило поддержку. -
Техническая реализация Язык: Python 3.13. NLP:
spaCy. Транспорт: Telegram Bot API черезpython-telegram-bot. Конфигурация:.env. -
Адаптация к NLP Решение адаптировано под русский язык через
spaCyи словарь ключевых фраз отраслевого домена. Подход практичный для MVP и легко улучшается за счет расширения словаря и добавления лемматизации/классификатора.