01. Аудит 100 % звонков и переклассификация без повторного ASR

Статус ядро продукта
Доступно все подписки; в API-режиме — транскрипт + метрики
Зависимости 02-architecture.md §2, §4

Проблема

Отдел контроля качества физически слушает 1–7 % звонков: выборка формируется вручную, а «неудобные» звонки (короткие, с конфликтом, с отказами) в неё не попадают. Руководитель принимает решения по 3 % разговоров и считает, что знает про остальные 97 %.

Вторая, менее очевидная проблема: модель классификации устаревает. Сменился скрипт, появилась новая кампания, изменилась таксономия — и весь исторический массив звонков описан старыми метками. У классических решений повторный разбор означает повторный прогон распознавания: дорого, долго, иногда невозможно (аудио уже удалено).

Решение

Разделяем дорогое и дешёвое. Распознавание (ASR) делается один раз и сохраняется в S3/MinIO как JSON с таймкодами. Классификация — отдельная стадия, которая читает транскрипт и пишет вердикт по ключу call_id + taxonomy_version.

Отсюда три следствия, которые и продаются:

  1. 100 % покрытие. Обрабатываются все записи, без выборок и «ручных отборов». Полный охват даёт то, чего не даёт выборочное прослушивание: конфликты, отказы и короткие сбросы попадают в анализ, а не выпадают из него.
  2. Переклассификация архива за часы. Изменили таксономию или промпт — запускается только стадия классификации. ASR не повторяется. Пересчёт 6 млн звонков — это работа LLM-слоя, а не GPU-распознавания: часы вместо недель.
  3. Сравнение версий таксономии. Каждый вердикт хранит taxonomy_version, поэтому можно ответить на вопрос «сколько было бы конфликтов, если считать по новому определению» — без повторной обработки аудио.

Знаменатель покрытия

«100 %» считается от записей, поступивших в конвейер: файл доставлен коннектором или выгрузкой из АТС и прошёл стадию приёма. Что не было доставлено, система увидеть не может, — поэтому честный охват проверяется сверкой объёмов: число звонков в выгрузке АТС против числа принятых и обработанных. Методику сверки (период, источник, разбор расхождений — недоставленные файлы, дубли, записи вне периода) фиксируем на пилоте, вместе с критериями Go/No-Go.

Дашборд покрытия разделяет три знаменателя: поступившие записи, обработанные и ушедшие в очередь ручного контроля — чтобы «обработано 100 %» всегда имело явную базу сравнения.

Как это выглядит

Метрики успеха

Метрика Цель
Доля обработанных звонков от поступивших 100 % (SLA ≤ 24 ч, цель ≤ 30 мин)
Время переклассификации 1 млн звонков ≤ 6 ч
Ресурс на переклассификацию только LLM-слой, ASR не повторяется
Доля звонков в очереди ручного контроля ≤ 5 % (порог уверенности настраивается)

Как это устроено у нас