Мы часто видим, как клиенты теряют терпение, пробиваясь через 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 под ваш сценарий — мы оценим проект за один день и предложим решение с гарантией результата. Получите консультацию инженера: наши специалисты помогут подобрать оптимальную архитектуру.







