Главная
Документация
Руководство администратора
4. Настройка модулей
Настройки модуля "Сервис-деск
Автоматическая классификация заявок
Автоматическая классификация заявок
Обновлено: 25 Июль 2026
Версия: 2.2.1
Автоматическая классификация заявок
Модуль автоматически определяет тип и категорию заявки по тексту (заголовок, тема, сообщение) с помощью машинного обучения. Обучение выполняется локально на данных вашей системы — перенос моделей между серверами с разными справочниками не требуется.
Принцип работы
- При создании заявки (если функция включена) система анализирует текст и пытается назначить тип и категорию.
- Автоклассификация выполняется только если модель помечена как готовая (
Ready For Predictionв системной админке). - Если модель ещё не обучена или не прошла проверки качества — поля не заполняются автоматически (кроме типа по умолчанию из справочника).
- Категория предсказывается после типа и только среди категорий, которые встречались вместе с этим типом в обучающих данных.
- При низкой уверенности модели тип или категория не назначаются — лучше пустое поле, чем ошибочная классификация.
Холодный старт (новая или «чистая» система)
Типичный сценарий после включения функции:
- Включите
USE_INTELLIGENT_CLASSIFICATION = Trueв системных настройках. - Первое время заявки не получают автоматический тип/категорию от ML (модели ещё нет).
- Исполнители вручную выставляют тип и категорию при обработке и закрывают заявки.
- По расписанию (или вручную) система обучает модель на закрытых заявках с ручной разметкой.
- Когда модель накопит достаточно примеров и качество достигнет порогов — автоклассификация включается сама.
Важно: при обновлении с версии, где использовались старые модели (обученные на UUID справочников), существующие модели не используются для предсказания до переобучения на локальных данных.
Настройки в пользовательской админке
Все параметры находятся в разделе «Настройки» → «Системные настройки» (/settings/), секция «Основные настройки». Подробное описание каждой настройки — в документе Системные настройки.
Основные переключатели
| Настройка | По умолчанию | Назначение |
|---|---|---|
USE_INTELLIGENT_CLASSIFICATION |
False |
Включение автоклассификации |
SKIP_CLASSIFICATION_FOR_MANUAL_REQUESTS |
True |
Не классифицировать заявки, созданные вручную (только почта и бот) |
CLASSIFIER_AUTO_TRAIN_ENABLED |
True |
Еженедельное автоматическое обучение/дообучение |
Пороги предсказания
| Настройка | По умолчанию | Назначение |
|---|---|---|
CLASSIFIER_MIN_CONFIDENCE_TYPE |
0.65 |
Минимальная уверенность для автоматического типа |
CLASSIFIER_MIN_CONFIDENCE_CATEGORY |
0.55 |
Минимальная уверенность для автоматической категории |
CLASSIFIER_ALLOW_UUID_FALLBACK |
False |
Fallback при несовпадении справочников (не рекомендуется) |
Пороги обучения и готовности модели
| Настройка | По умолчанию | Назначение |
|---|---|---|
CLASSIFIER_MIN_SAMPLES_TO_TRAIN |
100 |
Минимум закрытых заявок для первого обучения |
CLASSIFIER_MIN_SAMPLES_TO_PREDICT |
200 |
Минимум обучающих примеров в модели для включения автопредсказания |
CLASSIFIER_MIN_ACCURACY_TO_PREDICT |
0.70 |
Минимальная accuracy на тестовой выборке |
CLASSIFIER_MIN_SAMPLES_PER_CLASS |
10 |
Минимум примеров на каждый тип/категорию |
CLASSIFIER_TRAIN_ONLY_MANUAL_LABELS |
True |
Обучаться только на заявках с ручной разметкой типа/категории |
CLASSIFIER_BOOTSTRAP_LOOKBACK_DAYS |
90 |
Окно в днях для первичного обучения (закрытые заявки) |
Еженедельное обучение по расписанию
Задача Celery retrain-classifiers-weekly запускается каждое воскресенье в 4:00 (настраивается в config/settings.py, создаётся автоматически при установке).
Что делает задача:
- Собирает закрытые заявки за последние 7 дней с установленными типом и категорией (с учётом фильтра «только ручная разметка», если он включён).
- Если модели ещё нет и накопилось достаточно примеров — выполняет первичное обучение (за последние 90 дней или шире).
- Если модель уже есть — дообучает её на новых данных; при ошибке дообучения выполняет полное переобучение.
- Пересчитывает флаг готовности модели (
is_ready_for_prediction). - Сбрасывает кеш классификатора в работающих процессах.
Требования:
- Запущены Celery worker и Celery Beat.
- Настройка
CLASSIFIER_AUTO_TRAIN_ENABLED = True. - Доступ сервера к интернету при первом обучении (для загрузки модели эмбеддингов
cointegrated/rubert-tiny2, ~50–100 МБ).
Отключить автоматическое обучение можно через CLASSIFIER_AUTO_TRAIN_ENABLED = False и обучать модели только вручную (см. ниже).
Управление моделями в системной админке Django
Путь: /admin/ → Servicedesk → Request classifiers
В списке моделей отображаются:
- тип классификатора (тип / категория);
- версия, метрики (accuracy, количество примеров);
Is ready for prediction— модель допускается к автоклассификации;Embedding model— использованная модель эмбеддингов (cointegrated/rubert-tiny2);- дата обучения.
Рекомендации:
- Для автоклассификации должна быть активна (
Is active) одна модель каждого типа с флагом Ready For Prediction = True. - Старые модели после обновления системы лучше деактивировать и обучить новые локально.
- В поле
Metadataможно посмотреть причины, по которым модель не готова (readiness_reasons).
Ручное обучение (management-команды)
Выполняются на сервере приложения в виртуальном окружении проекта.
Экспорт данных для обучения
source .venv/bin/activate
python manage.py export_requests_for_training training_data.xlsx --only-with-category --status "Закрыто"
Полезные опции:
--only-with-category— только заявки с категорией;--status "Закрыто"— фильтр по статусу;--limit N— ограничить количество записей.
Полное обучение с нуля
python manage.py train_request_classifiers training_data.xlsx
Обучает отдельные модели для типа и категории. Метки берутся по имени типа/категории из справочников (не по UUID).
Опции:
--type-only/--category-only— обучить только один классификатор;--use-gpu— GPU для генерации эмбеддингов (не обязательно).
Анализ ошибок классификации
python manage.py analyze_classifier_errors --excel-file training_data.xlsx --output analysis.xlsx
Показывает проблемные классы, путающиеся пары и рекомендации по улучшению данных.
Экспорт и импорт моделей (опционально)
Используется для переноса уже переобученных моделей между стендами с одинаковыми названиями типов и категорий:
python manage.py export_classifier_models models.json
python manage.py import_classifier_models models.json --deactivate-existing
На боевой системе с уникальными справочниками рекомендуется локальное обучение, а не импорт моделей с другого сервера.
Рекомендации администратору
- Включите
USE_INTELLIGENT_CLASSIFICATIONпосле того, как накопится история закрытых заявок с корректной ручной разметкой — или сразу, если готовы подождать несколько недель до первого автоматического назначения. - Не импортируйте старые модели с UUID-метками — они не будут использоваться; лучше дождаться еженедельного обучения или запустить
train_request_classifiersвручную. - Следите за флагом
Is ready for predictionв админке — пока онFalse, ML не влияет на заявки. - Периодически запускайте
analyze_classifier_errorsи добавляйте примеры для проблемных категорий. - Оставьте
CLASSIFIER_TRAIN_ONLY_MANUAL_LABELS = True, чтобы модель училась на решениях исполнителей, а не на своих ошибках. - При недостатке данных уменьшите пороги
CLASSIFIER_MIN_SAMPLES_*или увеличьтеCLASSIFIER_BOOTSTRAP_LOOKBACK_DAYS— только осознанно, это снижает качество.
Связанные документы
- Системные настройки — автоматическая классификация
- Регистрация заявок (для пользователей) — раздел «Автоматическая классификация заявок»
- Начало работы — регулярные задачи