4.9 KiB
4.9 KiB
Архитектура Голосового ИИ (Voice AI V1)
Этот документ описывает техническое устройство и жизненный цикл обработки входящих голосовых звонков с помощью ИИ-оператора. ИИ интегрирован поверх базовой телефонии Asterisk и не заменяет ее полностью, выступая как первая линия поддержки (L1).
1. Ключевые принципы
- AI-first: Звонок сначала направляется ИИ, если очередь настроена соответствующим образом.
- Перехват звонка (Handoff): Исходный звонок детерминированно переключается на человека-оператора, если ИИ не может решить проблему или если клиент явно просит человека.
- Единый источник истины: Asterisk остается мастер-системой для SIP-потока, записи звонков и маршрутизации.
- Безопасность (Read-Only): В версии V1 ИИ работает исключительно на чтение и выдачу справочной информации. Апдейт критичных финансовых данных в базе строго запрещен для ИИ и требует переключения на человека.
2. Архитектура обработки звонка
Процесс обработки звонка ИИ разделен на два основных микросервиса:
ai_voice_runtime_service(Аудио-прослойка): Осуществляет прием аудио-потока. Работает в Real-time. Слушает аудио (через ASR модель) и отправляет синтезированную речь обратно клиенту (через TTS модель). Также отлавливает попытки клиента перебить робота (Barge-in), мгновенно прерывая воспроизведение.ai_orchestrator_service(Мозг ИИ): Не работает со звуком. Получает только готовый текстовый транскрипт (реплику). Принимает решение:- Найти знания в
kb-service(RAG). - Сгенерировать текстовый ответ для клиента (который будет озвучен через TTS).
- Если запрос слишком сложный — отправить команду "Переключить на живого человека".
- Найти знания в
3. Флоу входящего звонка (Step-by-step)
- Абонент звонит на платформу.
asterisk-bridge-serviceулавливает событие и решает направить звонок вvoice_lab.- Поднимаются две параллельные сессии:
voice_ai_session(отслеживание аудио) иai_session(бизнес-логика). - Абонент подключается к медиа-интерфейсу
ai_voice_runtime_service. Проигрывается дисклеймер: "Здравствуйте, я голосовой помощник...". - Абонент озвучивает свой вопрос.
- ASR распознает вопрос и отправляет текст в
ai_orchestrator_service. - Оркестратор смотрит историю клиента, ищет ответ в базе знаний, генерирует ответ и возвращает команду в runtime "Скажи это".
- Если оркестратор понимает, что нужна помощь:
- Отправляет сигнал
needs_handoffс детальной "Сводкой ИИ" для оператора. - Звонок перехватывается, и абонент слушает музыку ожидания в очереди к живым людям.
- Отправляет сигнал
4. Интеграция с Operator UI
Когда звонок поступает к оператору после ИИ, оператор не видит отдельный ИИ-интерфейс. Он видит стандартную карточку звонка. Но внутри этой карточки динамически выводится:
- AI Summary (Сводка): Что клиент сказал, что ИИ попытался сделать и почему перевел звонок на человека.
- Таймлайн: В историю обращений клиента логгируется, что "ИИ запрашивал перевод на специалиста".