06. LLM-аналитик: «спросите свои звонки»
| Статус | доступно |
| Доступно | «Бизнес» — 300 запросов/мес, «Корпоративный» и выше — без лимита |
| Зависимости | 02-architecture.md (ClickHouse, S3-транскрипты), 03-models.md §3.2 (Qwen локально) |
Проблема
Дашборды отвечают на вопросы, которые мы предвидели, а руководитель спрашивает другое: «почему в марте упала конверсия в Москве», «что говорят клиенты про новую цену», «покажи, где менеджеры обещают скидку и не дают». Чтобы ответить, аналитик строит выгрузку, читает транскрипты — и через два дня приносит ответ, который уже неактуален.
Решение
Вопрос на русском языке → ответ с доказательствами. Три шага внутри:
- Разбор вопроса. LLM определяет тип: агрегатный («сколько», «динамика», «сравни») или содержательный («что говорят», «какие причины», «найди»).
- Исполнение. Для агрегатов генерируется запрос к ClickHouse (только по заранее разрешённым представлениям, без произвольного SQL). Для содержательных вопросов — семантический поиск по транскриптам (индексы фрагментов) + выборка релевантных звонков.
- Ответ с цитатами. Всегда: числа — со ссылкой на дашборд-источник, цитаты — с ссылкой на карточку звонка и таймкод. Если данных недостаточно — честное «в базе нет таких разговоров» вместо правдоподобной выдумки.
Границы, которые мы фиксируем заранее: - Отвечаем только по данным заказчика, ничего не додумываем из общей модели. - Никаких персональных данных в ответе: телефоны и суммы маскируются по настройке анкеты E. - Каждый запрос и ответ — в журнале аудита (кто спросил, что получил, сколько стоило). - Стоимость одного запроса оценивается и ограничивается; запросы с тяжёлыми выгрузками уходят в асинхронный режим с уведомлением.
Как это выглядит
- Строка поиска в интерфейсе: «Покажи, где клиенты ругались на сроки доставки в апреле».
- Ответ: краткий вывод + 8–12 цитат с таймкодами + кнопка «собрать в отчёт».
- «Спросите голосом» — тот же сценарий для мобильного руководителя.
- API:
POST /v1/ask {question, period}→{answer, citations[], cost_estimate}.
Метрики успеха
| Метрика | Цель |
|---|---|
| Ответы с корректными ссылками на источник | ≥ 95 % (проверяется выборочно) |
| Ответ на содержательный вопрос | ≤ 15 секунд (p95) |
| Ресурс на запрос | локальная LLM внутри контура |
| Доля вопросов, на которые клиент получил действие | ≥ 30 % (перешли в звонок/задачу) |
| Повторное использование через месяц | ≥ 50 % активных пользователей тарифа |
Как это устроено у нас
- Вопрос задаётся обычными словами, ответ собирается по транскриптам внутри контура.
- Каждый ответ ведёт к конкретным звонкам с цитатами и таймкодами — его можно проверить.
- Ограничения доступа те же, что в панели: аналитик не видит то, что ему не положено.