Створення AI-диспетчера: автоматизація диспетчеризації та SLA

AI-диспетчер — цифровий співробітник для координації завдань

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    998
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

AI-диспетчер — цифровий співробітник для координації завдань

Диспетчерська служба часто тоне в заявках. Оператори вручну перебирають пошту та чати, призначають виконавців на око. SLA постійно зриваються. Така ситуація знайома багатьом. Ми стикалися з нею в телекомі, де щодня оброблялося 800 заявок на технічні виїзди. Ручна диспетчеризація не справлялася: середній час призначення завдання становив 12 хвилин, перевантаження окремих інженерів досягало 30%, а дотримання SLA трималося на рівні 71%. Після впровадження AI-диспетчера час призначення скоротився до 45 секунд, дотримання SLA зросло до 89%, а навантаження на інженерів вирівнялося. Модель класифікації донавчається на ваших історичних даних, що підвищує точність з кожним місяцем.

Наш цифровий диспетчер автоматично приймає вхідні заявки, класифікує їх, призначає виконавців з урахуванням завантаження та компетенцій, відстежує виконання та ескалює прострочені завдання. Все це — без участі людини. Ми впроваджуємо такі системи під ключ: від налаштування класифікатора до інтеграції з вашою CRM.

Як AI-диспетчер маршрутизує заявки?

Ядро системи — інтелектуальний intake та маршрутизація. Процес складається з трьох кроків: класифікація заявки, скоринг виконавців, моніторинг виконання. Розглянемо на прикладі коду:

from openai import AsyncOpenAI from pydantic import BaseModel from typing import Literal, Optional client = AsyncOpenAI() class TaskClassification(BaseModel): category: str priority: Literal["critical", "high", "normal", "low"] required_skill: str estimated_duration_minutes: int location: Optional[str] sla_hours: float special_requirements: list[str] class DispatcherAgent: def __init__(self, team_db, task_db): self.team_db = team_db self.task_db = task_db async def process_incoming_request(self, request: dict) -> dict: cls = await client.beta.chat.completions.parse( model="gpt-4o", messages=[{ "role": "system", "content": "Классифицируй входящую заявку для диспетчеризации. Определи приоритет, категорию, необходимые компетенции и ожидаемое время выполнения." }, { "role": "user", "content": f"Заявка: {request['description']}\nОт: {request['client']}\nКонтакт: {request['contact']}" }], response_format=TaskClassification, temperature=0, ) task_class = cls.choices[0].message.parsed assignee = await self.select_best_assignee(task_class, request.get("location")) task = await self.task_db.create({ "title": request.get("title", f"Заявка от {request['client']}"), "description": request["description"], "category": task_class.category, "priority": task_class.priority, "required_skill": task_class.required_skill, "assignee_id": assignee["id"] if assignee else None, "sla_deadline": datetime.now() + timedelta(hours=task_class.sla_hours), "status": "assigned" if assignee else "pending", }) if assignee: await self.notify_assignee(assignee, task) return {"task_id": task["id"], "assignee": assignee, "sla": task["sla_deadline"]} async def select_best_assignee(self, task, location): available = await self.team_db.get_available(skill=task.required_skill, shift="current") if not available: return None scored = [] for person in available: score = 100 current_load = await self.task_db.count_active(person["id"]) score -= current_load * 10 if location and person.get("current_location"): distance = calculate_distance(location, person["current_location"]) score -= min(distance / 10, 30) if task.required_skill in person.get("specializations", []): score += 20 scored.append({**person, "score": score}) return max(scored, key=lambda x: x["score"]) if scored else None 

На першому кроці модель GPT-4o аналізує опис заявки та витягує категорію, пріоритет, необхідні навички. Алгоритм скорингу використовує базу 100 балів: штраф за завантаження (10 балів за активне завдання) та дистанцію (до 30 балів), бонус за спеціалізацію (20 балів). Це забезпечує оптимальний розподіл з урахуванням поточної ситуації.

Деталі алгоритму скорингу

Алгоритм також враховує історію виконаних завдань виконавця, його рейтинг та доступність за графіком. Модель може бути доповнена бізнес-правилами, наприклад, пріоритетом для VIP-клієнтів або обов'язковою наявністю сертифіката.

Чому SLA-моніторинг критичний?

Будь-яке завдання має Service Level Agreement (SLA) — термін виконання. Якщо його порушити, страждає репутація бізнесу. Наш AI-диспетчер не просто створює завдання — він стежить за ними в реальному часі. Кожні 15 хвилин система перевіряє залишковий час до дедлайну. Якщо до SLA менше години — надсилається нагадування виконавцю, менше 30 хвилин — термінове повідомлення, при порушенні — ескалація керівнику. Код моніторингу:

class SLAMonitor: async def check_and_escalate(self): tasks = await self.task_db.get_active_tasks() now = datetime.now() for task in tasks: sla_deadline = task["sla_deadline"] time_to_sla = (sla_deadline - now).total_seconds() / 3600 if time_to_sla < 0: await self.handle_sla_breach(task) elif time_to_sla < 0.5: await self.send_urgent_reminder(task) elif time_to_sla < 1 and task["status"] == "assigned": await self.escalate_to_supervisor(task, reason="task_not_started") async def handle_sla_breach(self, task): breach_message = await client.chat.completions.create( model="gpt-4o-mini", messages=[{ "role": "system", "content": "Создай сообщение об эскалации нарушения SLA для руководителя. Краткое, конкретное." }, { "role": "user", "content": f"Задача: {task['title']}, нарушение SLA на {abs(int((datetime.now() - task['sla_deadline']).total_seconds() / 60))} мин" }], ) await slack_client.post_message( channel="#dispatcher-escalations", text=f"🚨 SLA нарушен:\n{breach_message.choices[0].message.content}", ) await self.task_db.update(task["id"], {"sla_status": "breached"}) 

Як навчити класифікатор заявок?

Для навчання класифікатора ми використовуємо ваші історичні дані. Етапи:

  1. Збір датасету: не менше 500 розмічених заявок.
  2. Попередня обробка: очищення, лематизація.
  3. Тюнінг моделі: fine-tuning GPT-4o або іншого LLM на задачах класифікації.
  4. Валідація: перевірка accuracy на відкладеній вибірці (не менше 85%).
  5. Розгортання: завантаження моделі в SageMaker або Vertex AI.

Які результати показав AI-диспетчер в телекомі?

З нашої практики: телеком-оператор з польовими інженерами, 800 заявок на технічні виїзди на день. До впровадження — ручний розподіл, 12 хвилин на призначення завдання, 71% дотримання SLA. Після — AI-диспетчер.

Параметр До Після
Час призначення завдання 12 хв 45 сек
Дотримання SLA 71% 89%
Перевантаження інженерів ~30% нерівномірність -34% (рівномірний розподіл)

AI-диспетчер призначає завдання в 16 разів швидше за людину, а дотримання SLA підвищується на 18 процентних пунктів. Система приймає заявки через чат, email, API CRM; класифікує їх за 8 типами (підключення, ремонт, заміна обладнання); призначає інженера з урахуванням навичок, завантаження, геолокації; контролює SLA (4 год для критичних, 24 год для стандартних); автоматично нагадує та ескалює прострочені завдання.

Що входить в розробку AI-диспетчера

  • Класифікатор заявок: налаштування категорій, пріоритетів, необхідних навичок
  • Алгоритм призначення: скоринг виконавців за завантаженням, навичками, геолокацією
  • SLA-моніторинг: автоматичні перевірки, нагадування, ескалації
  • Інтеграція: з CRM, месенджерами (Slack/Telegram), API сповіщень
  • Документація: опис архітектури, інструкції для адміністратора
  • Навчання: тренування моделі класифікації на ваших даних
  • Підтримка: гарантійне обслуговування 3 місяці після запуску

Терміни впровадження

Етап Тривалість
Класифікатор заявок 1–2 тижні
Алгоритм призначення 1–2 тижні
SLA-моніторинг та ескалації 1 тиждень
Інтеграція з CRM та сповіщеннями 1–2 тижні
Разом 4–7 тижнів

Зв'яжіться з нами, щоб обговорити впровадження AI-диспетчера у вашу службу. Отримайте консультацію з оптимізації диспетчеризації. Наш досвід: сертифіковані інженери, робота з великими телеком-операторами.