# 06. LLM-аналитик: «спросите свои звонки»

| | |
|---|---|
| **Статус** | v1.2 (Q3 2027) |
| **Тариф** | «Бизнес» — 300 запросов/мес, «Корпоративный» и выше — без лимита |
| **Зависимости** | [02-architecture.md](../02-architecture.md) (ClickHouse, S3-транскрипты), [03-models.md](../03-models.md) §3.2 (Qwen локально) |

## Проблема

Дашборды отвечают на вопросы, которые мы предвидели, а руководитель спрашивает другое:
«почему в марте упала конверсия в Москве», «что говорят клиенты про новую цену», «покажи,
где менеджеры обещают скидку и не дают». Чтобы ответить, аналитик строит выгрузку, читает
транскрипты — и через два дня приносит ответ, который уже неактуален.

## Решение

**Вопрос на русском языке → ответ с доказательствами.** Три шага внутри:

1. **Разбор вопроса.** LLM определяет тип: агрегатный («сколько», «динамика», «сравни») или
   содержательный («что говорят», «какие причины», «найди»).
2. **Исполнение.** Для агрегатов генерируется запрос к ClickHouse (только по заранее
   разрешённым представлениям, без произвольного SQL). Для содержательных вопросов —
   семантический поиск по транскриптам (индексы фрагментов) + выборка релевантных звонков.
3. **Ответ с цитатами.** Всегда: числа — со ссылкой на дашборд-источник, цитаты — с ссылкой
   на карточку звонка и таймкод. Если данных недостаточно — честное «в базе нет таких
   разговоров» вместо правдоподобной выдумки.

**Границы, которые мы фиксируем заранее:**
- Отвечаем только по данным заказчика, ничего не додумываем из общей модели.
- Никаких персональных данных в ответе: телефоны и суммы маскируются по настройке анкеты E.
- Каждый запрос и ответ — в журнале аудита (кто спросил, что получил, сколько стоило).
- Стоимость одного запроса оценивается и ограничивается; запросы с тяжёлыми выгрузками
  уходят в асинхронный режим с уведомлением.

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

- **Строка поиска в интерфейсе:** «Покажи, где клиенты ругались на сроки доставки в апреле».
- **Ответ:** краткий вывод + 8–12 цитат с таймкодами + кнопка «собрать в отчёт».
- **«Спросите голосом»** — тот же сценарий для мобильного руководителя.
- **API:** `POST /v1/ask {question, period}` → `{answer, citations[], cost_estimate}`.

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

| Метрика | Цель |
|---|---|
| Ответы с корректными ссылками на источник | ≥ 95 % (проверяется выборочно) |
| Ответ на содержательный вопрос | ≤ 15 секунд (p95) |
| Стоимость запроса | ≤ 5 ₽ в среднем |
| Доля вопросов, на которые клиент получил действие | ≥ 30 % (перешли в звонок/задачу) |
| Повторное использование через месяц | ≥ 50 % активных пользователей тарифа |

## Этапы

1. **v1.2:** вопросы по агрегатам + семантический поиск, цитаты, лимиты запросов.
2. **v1.3:** «сохранить вопрос как дашборд», голосовой ввод, шаблоны типовых вопросов по
   отраслям.
3. **2028:** авто-инсайты — система сама приносит «3 вещи, которые изменились на этой неделе».

## Монетизация

Работает как усилитель тарифа: лимит 300 запросов в «Бизнесе» превращается в естественный
апсейл в «Корпоративный» без лимита (разница 90 000 ₽/мес). Себестоимость запроса держится
локальной LLM, поэтому безлимит не создаёт риска перерасхода.

## Почему этого нет у других

- **SaaS для продаж** дают отчёты и чек-листы, но не свободный вопрос по всей базе.
- **API-конструкторы** не имеют аналитического слоя вообще (и тем более семантического
  поиска с цитатами).
- **Enterprise-вендоры** начинают добавлять NL-запросы (например, через GigaChat), но в
  рамках корпоративного проекта и без «доказательной базы» по каждому ответу.
- **Наша основа** — экономика: локальная LLM на арендованном GPU делает безлимитные вопросы
  дешёвыми, а облачные API конкурентов — дорогими на объёме.
