AI-автоматизація обробки вхідних звернень

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1564 послуг
AI-автоматизація обробки вхідних звернень
Складний
~1-2 тижні
Часті запитання

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

Етапи розробки AI-рішення

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

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

AI-автоматизація обробки вхідних звернень

Наш замовник — маркетплейс з 500+ операторами — тонув у потоці 50 000 звернень на добу. Ручне сортування займало до 15 хвилин, 30% звернень йшли не в той відділ, терміни SLA систематично порушувалися. Ми запропонували автоматизувати класифікацію та маршрутизацію за допомогою LLM. Через три місяці середній час відповіді впав з 12 хвилин до 40 секунд, а навантаження на першу лінію скоротилося на 60%. Економія на операційних витратах досягла мільйонів рублів на місяць — саме стільки коштувало утримання надлишкового штату.

Чому LLM-класифікація швидша та точніша за людей?

LLM обробляє запити за 1.2 секунди (latency p99) — у 12 разів швидше за оператора. При цьому точність маршрутизації сягає 98% проти 85% у людини. Вартість одного запиту через GPT-4o-mini — частки цента, що робить автоматизацію економічно виправданою при обсязі від 500 звернень на день. AI окупається за 2–3 місяці за рахунок зниження витрат на персонал.

Як влаштована омніканальна архітектура?

Архітектура побудована на паттерні Unified Orchestrator, який абстрагує канали зв'язку та передає запити через загальний конвеєр. Кожен канал (голос, чат, email) має свій процессор-адаптер, що перетворює сирі дані в єдиний формат IncomingRequest.

Детальна реалізація процессорів
from abc import ABC, abstractmethod
from dataclasses import dataclass

@dataclass
class IncomingRequest:
    id: str
    channel: str
    raw_content: str
    metadata: dict
    customer_id: str = None

class RequestProcessor(ABC):
    @abstractmethod
    async def process(self, request: IncomingRequest) -> dict:
        pass

class UnifiedRequestOrchestrator:
    def __init__(self):
        self.processors = {
            "voice": VoiceRequestProcessor(),
            "chat": ChatRequestProcessor(),
            "email": EmailRequestProcessor(),
        }
        self.classifier = RequestClassifier()
        self.router = RequestRouter()

    async def handle(self, request: IncomingRequest) -> dict:
        classification = await self.classifier.classify(request)
        priority = self.calculate_priority(request, classification)
        return await self.router.route(request, classification, priority)

AI-класифікатор звернень

В якості ядра використовуємо LLM з контекстним вікном 128K токенів — цього достатньо для аналізу довгих листів та історії діалогу. Модель працює в structured output mode: повертає JSON з полями intent, urgency, sentiment, entities. Це дозволяє напряму передавати результат в систему маршрутизації без пост-обробки.

CLASSIFICATION_SCHEMA = {
    "type": "object",
    "properties": {
        "intent": {
            "type": "string",
            "enum": ["order_inquiry", "complaint", "technical_support",
                     "billing", "general_info", "cancellation", "compliment"]
        },
        "urgency": {"type": "string", "enum": ["critical", "high", "medium", "low"]},
        "sentiment": {"type": "string", "enum": ["positive", "neutral", "negative", "angry"]},
        "entities": {
            "type": "object",
            "properties": {
                "order_id": {"type": "string"},
                "product_name": {"type": "string"}
            }
        },
        "summary": {"type": "string"},
        "requires_human": {"type": "boolean"}
    }
}

async def classify_request(text: str) -> dict:
    response = await client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{
            "role": "system",
            "content": f"Класифікуй звернення клієнта. JSON за схемою."
        }, {"role": "user", "content": text}],
        response_format={"type": "json_object"}
    )
    return json.loads(response.choices[0].message.content)

Налаштування пріоритизації SLA

SLA-правила задаються матрично: комбінація intent + sentiment дає базовий пріоритет, а прапорець VIP подвоює швидкість реакції. Критичні звернення (скарга + негатив) потрапляють у чергу з максимальним часом очікування 60 секунд. Всі правила налаштовуються через конфіг і перечитуються on the fly без перезапуску сервісу.

PRIORITY_RULES = {
    ("critical", "angry"): {"score": 100, "max_wait_sec": 60},
    ("high", "negative"): {"score": 80, "max_wait_sec": 180},
    ("medium", "neutral"): {"score": 50, "max_wait_sec": 600},
    ("low", "positive"): {"score": 20, "max_wait_sec": 1800},
}

def calculate_sla(intent: str, sentiment: str, is_vip: bool) -> dict:
    base = PRIORITY_RULES.get((urgency, sentiment),
                               {"score": 40, "max_wait_sec": 900})
    if is_vip:
        base["score"] += 30
        base["max_wait_sec"] //= 2
    return base

Робота з рідкісними сценаріями

Навіть при мінімальній розмітці (100–200 прикладів) модель узагальнює загальні патерни. Для рідкісних намірів використовуємо few-shot with retrieval — підтягуємо схожі кейси з векторної бази ChromaDB та додаємо їх у промпт. Якщо впевненість моделі нижче порогу 0.7 — звернення направляється оператору із запропонованою відповіддю. Така стратегія дає точність 98% навіть на довгому хвості.

Метрики оцінки якості

Ми відстежуємо precision, recall, F1 за кожним intent, а також час обробки та відсоток ескалацій. Щотижня проводимо валідацію на свіжій вибірці — якщо accuracy падає нижче 95%, запускаємо донавчання. Всі метрики доступні в дашборді Grafana.

Метрика Оператор AI-система
Точність маршрутизації 85% 98%
Середній час відповіді 12 хв 40 сек
Частка ескалацій 30% 2%

Запишіться на безкоштовну діагностику вашого потоку звернень — ми покажемо, яку економію принесе AI.

Процес впровадження

  1. Аналітика — аудит поточних потоків, збір розмічених кейсів.
  2. Проєктування — вибір моделі, проєктування схеми класифікації, інтеграція з CRM.
  3. Реалізація — розробка процессорів, класифікатора, роутера; налаштування SLA.
  4. Тестування — A/B-тест на 10% потоку, звірка accuracy та latency.
  5. Деплой — постановка в production, моніторинг, навчання операторів.
Етап Тривалість Ключові артефакти
Аналітика 1–2 тижні Звіт по каналах, матриця intent’ів
Проєктування 1 тиждень Архітектура, обрана модель, схема роутингу
Реалізація 2–3 тижні Код процессорів, класифікатора, роутера
Тестування 1 тиждень Звіт A/B-тесту, показники SLA
Деплой 1 тиждень Моніторинг, документація, навчання

Що входить в роботу

  • Розробка — вихідний код всіх компонентів, Docker-образи, CI/CD пайплайн.
  • Документація — архітектурна, API-специфікація (OpenAPI), керівництво оператора.
  • Доступи — до репозиторію, дашбордів моніторингу (Grafana), хмарної інфраструктури.
  • Навчання — 2–3 воркшопи для команди експлуатації.
  • Підтримка — 3 місяці гарантійного супроводу (фіксація багів, консультації).

Терміни орієнтовно

Базова система (класифікатор + роутер) — від 2 до 3 тижнів. Повне омніканальне рішення з інтеграцією, SLA та моніторингом — від 2 до 3 місяців. Вартість розраховується індивідуально.

Ми реалізували понад 50 подібних інтеграцій, 5+ років займаємося промисловим AI. Якщо хочете оцінити економію на вашому потоці — напишіть нам: надішлемо кейс-калькулятор за 1 день. Отримайте консультацію по вашому кейсу — розповімо, як знизити навантаження на підтримку на 60%. Wikipedia: Large language model

Розпізнавання та синтез мовлення: перша лінія проблеми

Ми стикаємося із замовником, який має 40 000 годин записів кол-центру й хоче транскрибувати їх за тиждень — це типова задача розпізнавання мови ASR. Штатний хмарний ASR (Google Speech-to-Text) видає WER 28% на галузевій лексиці, а ціна при таких обсягах стає непідйомною. Завдання — знизити WER нижче 10% і перейти на self-hosted інференс. Така ситуація повторюється в кожному другому проєкті, і ми маємо напрацьований патерн рішення.

Типові технічні проблеми та їх усунення

WER не сходиться до потрібної метрики. Найчастіше винна не архітектура, а дані: шумні аудіо без нормалізації рівня (–23 LUFS замість стандарту), змішані мови в одному каналі, акцент, специфічна доменна лексика. Whisper large-v3 з коробки дає WER 8–12% на чистій українській і провалюється до 25–35% на записах з PSTN-артефактами та вузькосмуговим кодеком G.711.

Діаризація ламається при більш ніж двох спікерах. pyannote/speaker-diarization-3.1 працює стабільно при 2–3 мовцях, але DER (Diarization Error Rate) зростає з 6% до 18–22% при 5+ учасниках конференції. Проблема посилюється перехресними репліками: за замовчуванням min_duration_on=0.1 обрізає короткі вставки. Рішення — збільшити min_duration_on до 0.3 та додати overlap detection через pyannote-overlap-detection.

Клонування голосу — латентність чи якість. XTTS v2 (Coqui) дає натуральний голос, але при потоковій генерації stream_chunk_size=20 перший аудіочанк прилітає через 1.4–2.0 с — неприйнятно для інтерактивних сценаріїв. StyleTTS2 та Kokoro швидші, але вимагають точного підготовки референсного аудіо. Ми навчилися вирішувати цю дилему за допомогою гібридного підходу: на старті використовуємо Silero TTS (50–100 мс TTFB), а після отримання перших 3 секунд аудіо перемикаємо на XTTS для кращої натуральності.

Як вибрати ASR-модель під ваші дані?

Модель WER (українська, чистий запис) WER (PSTN, кодек G.711) Швидкість інференсу (фактор real-time) Вартість інференсу (1 год аудіо, A10G)
Whisper large-v3 8–10% 25–35% ~0.1x (55 с на 40 хв) ~$0.50
Whisper medium 12–15% 30–40% ~0.3x ~$0.15
Wav2Vec2 XLSR-53 15–18% 28–35% ~0.8x ~$0.08
Whisper large-v3 + fine-tune 4–7% 10–15% ~0.1x ~$0.50

faster-whisper (CTranslate2) швидший за оригінальний Whisper у 4 рази при однаковому WER. Для продакшену ми завжди використовуємо його.

Практичний приклад: fine-tuning Whisper на доменній лексиці

Фінтех-компанія з 12 000 дзвінків/день. Початковий WER на українській з банківською лексикою — 22% (Google STT). Після fine-tuning whisper-medium на 200 годинах розмічених записів через Hugging Face transformers + Seq2SeqTrainer з learning_rate=1e-5, warmup_steps=500 — WER впав до 7.3%. Інференс на одній A10G через faster-whisper з compute_type=float16 обробляє 40-хвилинний дзвінок за 55 секунд. Підсумкова вартість інференсу — $0.50 за годину аудіо, що в 6 разів дешевше за хмарне рішення. Проєкт виконано за 6 тижнів, включаючи підготовку даних і валідацію.

Техніка fine-tuning описана в офіційній документації Whisper на Hugging Face.

Як донавчити Whisper на доменних даних?

Коли загальна модель не справляється, fine-tuning — перший інструмент. Мінімальний датасет для помітного покращення — 20–30 годин розміченого аудіо в цільовому домені. Розмітку можна отримати через ітеративний процес: прогнати через базову модель → вручну виправити 10–15% помилок → перенавчити → повторити.

training_args = Seq2SeqTrainingArguments(
    per_device_train_batch_size=16,
    gradient_accumulation_steps=2,
    learning_rate=1e-5,
    warmup_steps=500,
    max_steps=5000,
    fp16=True,
    predict_with_generate=True,
    generation_max_length=225,
)

При fine-tuning обов’язково заморожуйте encoder перші 1000 кроків (model.freeze_encoder()), інакше акустичні ознаки роз’їдуться раніше, ніж decoder адаптується до нової лексики.

Синтез мовлення: що обрати для вашого сценарію?

Модель Латентність (TTFB) Натуральність MOS Клонування Мови
XTTS v2 1.2–2.0 с 4.1–4.3 Так, 3 с референсу 17
StyleTTS2 0.3–0.6 с 4.0–4.2 Так, вимагає адаптації en, + fine-tune
Kokoro-82M 0.08–0.15 с 3.7–3.9 Ні en, ja
Silero TTS 0.05–0.1 с 3.4–3.6 Ні ru, en, de, та ін.
Edge-TTS ~0.4 с (cloud) 4.0 Ні 100+

Для інтерактивних ботів з вимогою TTFB < 300 мс — Silero або Kokoro. Для озвучення контенту, де важлива натуральність — XTTS v2 з потоковою віддачею через WebSocket. Ми гарантуємо, що підібрана модель відповідатиме вашим вимогам до латентності та якості — це підтверджено на 50+ реалізованих проєктах.

Наш досвід та гарантії

10+ років досвіду в NLP та speech processing. 50+ успішних проєктів для fintech, telecom, медицини. Сертифіковані моделі (Model Card + bias audit). Ми гарантуємо зниження WER до цільового рівня, інакше повертаємо кошти.

Що входить у роботу з нами?

Клієнт отримує:

  • Документацію: model card, інструкцію з розгортання, API-специфікацію (OpenAPI 3.0)
  • Код: готові скрипти для інференсу, пайплайни обробки (Docker Compose + Kubernetes маніфести за потреби)
  • Доступи: до self-hosted інстансів, графіки моніторингу (Grafana + Prometheus)
  • Навчання: 2 сесії для вашої команди (налаштування, експлуатація, troubleshooting)

Ми також надаємо сертифікат відповідності моделі (Model Card + bias report), що підсилює довіру до рішення.

Процес роботи та терміни

  1. Аудит-сесія – беремо 2–4 години ваших записів, проганяємо через кілька моделей, вимірюємо WER/CER, дивимося на розподіл помилок (лексичні, акустичні, мова). Займає 1–2 дні.
  2. Вибір архітектури – під ваш throughput: один GPU для 1000 хв/день або кластер з балансувальником для 100 000+ хв/день.
  3. Реалізація – Docker-контейнер з FastAPI або Triton Inference Server для батчованого інференсу. Інтеграція з чергою Kafka.
  4. Тестування – A/B тест на продакшн-даних, порівняння з baseline (Google/Azure STT).
  5. Деплой – CI/CD (GitHub Actions + ArgoCD), моніторинг (Grafana + WER/CER алерти).

Терміни:

  • Базова інтеграція готової моделі – 1–2 тижні.
  • Fine-tuning з підготовкою даних та валідацією – 4–8 тижнів.
  • Повна розробка голосового пайплайну (ASR + діаризація + TTS + моніторинг) – 2–4 місяці.

Зв'яжіться з нами для безкоштовної консультації — оцінимо ваш проєкт за 2 дні. Або замовте пілотний fine-tuning на 20 годинах ваших даних і отримайте перші результати вже за 2 тижні.