Мы часто видим, как клиенты теряют терпение, пробиваясь через 4–7 уровней тонального меню. «Нажмите 1, чтобы... нажмите 2...» — такой DTMF-IVR раздражает и отсеивает до 40% звонков. Исследования показывают: 60% пользователей предпочитают речевой интерфейс. Наш подход — AI-IVR: система понимает свободную речь, определяет намерение за 1–2 вопроса и маршрутизирует звонок без кнопок. Мы внедряем такие решения последние 5 лет, и заказчики отмечают снижение времени обработки звонка на 30–50% и рост удовлетворённости на 20 процентных пунктов. Это не просто замена кнопок — это переход от жёсткого дерева сценариев к адаптивному диалогу на основе LLM.
Проблемы, которые решает AI-IVR
Традиционное тональное меню (DTMF) не справляется с нестандартными запросами, сложно обновляется и требует запоминания последовательностей. AI-IVR на базе NLP (Natural Language Processing) и ASR заменяет жёсткое дерево сценариев гибким диалогом. Клиент говорит: «У меня проблема с оплатой» — система сама понимает, что нужно в billing, и переводит.
Сравнение DTMF-IVR и AI-IVR
| Параметр | DTMF-IVR | AI-IVR |
|---|---|---|
| Навигация | 4–7 уровней, кнопки | 1–2 вопроса, речь |
| Покрытие сценариев | Ограничено деревом | Неограниченно (LLM) |
| Обновление | Сложно, требует разработки | Промпт-файл |
| Для немобильных пользователей | Проблемно | Нормально |
| Стоимость разработки | Низкая | Средняя (окупается за 3–6 мес.) |
Важно: AI-IVR не требует полной замены инфраструктуры — мы интегрируем его поверх существующей АТС через SIP или API.
Как AI-IVR понимает намерение клиента?
В основе — LLM (Large Language Model), например GPT-4o или LLaMA 3, которая получает расшифровку речи (ASR) и определяет намерение. Мы используем few-shot prompting: в промпт передаём список доступных направлений и примеры фраз. Модель возвращает JSON с destination и confidence. Если уверенность ниже 0.75 — система задаёт уточняющий вопрос. Этот подход обрабатывает 95% запросов без привлечения оператора.
class AIIVR: def __init__(self, routing_config: dict): self.destinations = routing_config["destinations"] self.llm = AsyncOpenAI() async def handle_call(self, call: IncomingCall) -> str: """Обрабатываем входящий звонок — возвращаем destination""" # Приветствие await call.say( "Добрый день! Вас приветствует {company}. Как я могу вам помочь?" ) # Слушаем намерение (до 8 секунд) user_input = await call.listen(timeout_sec=8, silence_threshold_ms=800) if not user_input: return await self.handle_silence(call) # Распознаём намерение и маршрутизируем route = await self.recognize_intent(user_input) if route["confidence"] >= 0.75: return await self.route_call(call, route["destination"]) else: return await self.clarify_intent(call, user_input) async def recognize_intent(self, user_input: str) -> dict: destinations_description = "\n".join( f"- {d['id']}: {d['description']}" for d in self.destinations ) response = await self.llm.chat.completions.create( model="gpt-4o-mini", messages=[{ "role": "system", "content": f"""Определи куда направить звонок. Доступные направления: {destinations_description} Верни JSON: {{"destination": "id", "confidence": 0.0-1.0}}""" }, {"role": "user", "content": user_input}], response_format={"type": "json_object"} ) return json.loads(response.choices[0].message.content) async def route_call(self, call: IncomingCall, destination: str) -> str: dest = next(d for d in self.destinations if d["id"] == destination) # Подтверждение маршрутизации await call.say(dest.get("routing_message", f"Перевожу вас в {dest['name']}...")) if dest["type"] == "queue": await call.transfer_to_queue(dest["queue_id"]) elif dest["type"] == "extension": await call.transfer(dest["extension"]) elif dest["type"] == "bot": await call.transfer_to_bot(dest["bot_id"]) return destination Конфигурация направлений (YAML/JSON)
Пути маршрутизации задаются в простом конфиге — добавить новое направление можно без передеплоя.
destinations: - id: technical_support name: "Техническая поддержка" description: "Проблемы с сервисом, ошибки, не работает" type: queue queue_id: tech_support_q routing_message: "Соединяю с технической поддержкой. Ожидайте, пожалуйста." - id: billing name: "Оплата и счета" description: "Вопросы оплаты, счета, задолженности, тарифы" type: bot bot_id: billing_bot - id: sales name: "Продажи и новые подключения" description: "Подключить услугу, новый договор, тарифы" type: queue queue_id: sales_q Какие бизнес-показатели улучшает AI-IVR?
По данным Gartner, внедрение интеллектуального IVR снижает load на первую линию поддержки на 40–60%. AI-IVR обрабатывает до 80% звонков без участия оператора — это в 3 раза больше, чем DTMF. Среднее время разговора сокращается вдвое. Экономия на операторах достигает 50% при масштабировании. За счёт снижения load вы можете перераспределить персонал на более сложные задачи.
Как AI-IVR интегрируется с существующей АТС?
Интеграция выполняется через SIP trunk или REST API. Мы подключаемся к Asterisk, 1С-Битрикс24, Cisco, Genesys и другим без полной замены инфраструктуры. Система работает как промежуточный слой: принимает звонок, обрабатывает диалог и передаёт управление обратно в АТС. Для on-premise используем vLLM с квантизацией INT4 — это снижает затраты на GPU до 4 раз по сравнению с FP16.
Почему latency критична для AI-IVR?
Если ASR + LLM занимает больше 3 секунд, пользователь бросает трубку. Мы используем streaming ASR (например, Whisper в реальном времени) и кеширование интентов для частых запросов. Типичная latency p99 — 1.5–2 секунды. Для снижения задержек применяем квантизацию моделей и инференс на Triton Inference Server.
Процесс работы
Мы внедряем AI-IVR в несколько этапов:
| Этап | Длительность |
|---|---|
| Анализ сценариев и сбор данных | 1–2 недели |
| Проектирование диалогов (prompt engineering) | 1 неделя |
| Разработка и интеграция с АТС | 2–3 недели |
| Тестирование (A/B, нагрузочное) | 1–2 недели |
| Деплой и мониторинг | 1 неделя |
Общий срок для типового проекта — 4–6 недель. Для пилота с 3–5 направлениями — 2–3 недели.
Что входит в работу
- Документация: архитектурная схема, описание промптов, инструкция по добавлению направлений.
- Доступы: к системе логирования и мониторингу (Grafana, ELK), к API для самостоятельного обновления конфигов.
- Обучение: воркшоп для команды (4 часа) по управлению AI-IVR и дообучению на новых сценариях.
- Поддержка: 2 недели после запуска — ежедневные стендапы и фикс багов по приоритету.
Типичные ошибки при внедрении
- Слишком много направлений в промпте (более 10) — снижает точность. Оптимально 5–7.
- Отсутствие fallback-сценария при долгом молчании — система должна переспрашивать или переводить на оператора.
- Игнорирование latency: если ASR + LLM занимает больше 3 секунд, пользователь бросает трубку. Мы используем streaming ASR и кеширование интентов.
- Плохая обработка неоднозначных запросов — без уточняющего вопроса клиент может попасть не туда.
Закажите демонстрацию AI-IVR под ваш сценарий — мы оценим проект за один день и предложим решение с гарантией результата. Получите консультацию инженера: наши специалисты помогут подобрать оптимальную архитектуру.







