Files

4.9 KiB
Raw Permalink Blame History

Архитектура Голосового ИИ (Voice AI V1)

Этот документ описывает техническое устройство и жизненный цикл обработки входящих голосовых звонков с помощью ИИ-оператора. ИИ интегрирован поверх базовой телефонии Asterisk и не заменяет ее полностью, выступая как первая линия поддержки (L1).

1. Ключевые принципы

  1. AI-first: Звонок сначала направляется ИИ, если очередь настроена соответствующим образом.
  2. Перехват звонка (Handoff): Исходный звонок детерминированно переключается на человека-оператора, если ИИ не может решить проблему или если клиент явно просит человека.
  3. Единый источник истины: Asterisk остается мастер-системой для SIP-потока, записи звонков и маршрутизации.
  4. Безопасность (Read-Only): В версии V1 ИИ работает исключительно на чтение и выдачу справочной информации. Апдейт критичных финансовых данных в базе строго запрещен для ИИ и требует переключения на человека.

2. Архитектура обработки звонка

Процесс обработки звонка ИИ разделен на два основных микросервиса:

  • ai_voice_runtime_service (Аудио-прослойка): Осуществляет прием аудио-потока. Работает в Real-time. Слушает аудио (через ASR модель) и отправляет синтезированную речь обратно клиенту (через TTS модель). Также отлавливает попытки клиента перебить робота (Barge-in), мгновенно прерывая воспроизведение.
  • ai_orchestrator_service (Мозг ИИ): Не работает со звуком. Получает только готовый текстовый транскрипт (реплику). Принимает решение:
    1. Найти знания в kb-service (RAG).
    2. Сгенерировать текстовый ответ для клиента (который будет озвучен через TTS).
    3. Если запрос слишком сложный — отправить команду "Переключить на живого человека".

3. Флоу входящего звонка (Step-by-step)

  1. Абонент звонит на платформу.
  2. asterisk-bridge-service улавливает событие и решает направить звонок в voice_lab.
  3. Поднимаются две параллельные сессии: voice_ai_session (отслеживание аудио) и ai_session (бизнес-логика).
  4. Абонент подключается к медиа-интерфейсу ai_voice_runtime_service. Проигрывается дисклеймер: "Здравствуйте, я голосовой помощник...".
  5. Абонент озвучивает свой вопрос.
  6. ASR распознает вопрос и отправляет текст в ai_orchestrator_service.
  7. Оркестратор смотрит историю клиента, ищет ответ в базе знаний, генерирует ответ и возвращает команду в runtime "Скажи это".
  8. Если оркестратор понимает, что нужна помощь:
    • Отправляет сигнал needs_handoff с детальной "Сводкой ИИ" для оператора.
    • Звонок перехватывается, и абонент слушает музыку ожидания в очереди к живым людям.

4. Интеграция с Operator UI

Когда звонок поступает к оператору после ИИ, оператор не видит отдельный ИИ-интерфейс. Он видит стандартную карточку звонка. Но внутри этой карточки динамически выводится:

  • AI Summary (Сводка): Что клиент сказал, что ИИ попытался сделать и почему перевел звонок на человека.
  • Таймлайн: В историю обращений клиента логгируется, что "ИИ запрашивал перевод на специалиста".