Восемь секунд — это не «модель думает». Это сумма шести участков, из которых на саму модель приходится две трети, а на всё остальное — треть. И главная неприятность в том, что самый большой участок сократить почти нельзя: ответ длиной 300 токенов при скорости 60 токенов в секунду пишется 5 секунд, и это физика, а не настройка.
Зато его можно начать показывать раньше. Разница между «человек ждёт 8 секунд пустого экрана» и «человек видит первое слово через 3 секунды и дальше читает по мере появления» не стоит почти ничего и меняет восприятие сервиса сильнее, чем любая замена модели. Именно поэтому разговор о скорости надо начинать не с вопроса «какая модель быстрее», а с раскладки по участкам.
Дальше — из чего складываются восемь секунд в модельном примере; какие нормы действуют в чате, мессенджере и голосе и почему их нельзя сравнивать; четыре приёма с ценой и эффектом каждого; почему обращение к собственной 1С регулярно оказывается самым медленным звеном; и что записать в требования, чтобы скорость была проверяемым параметром, а не пожеланием.
Из чего складываются восемь секунд
Вводные модельного примера: чат-агент на сайте оптовой компании, база из 380 документов, поток 6 000 обращений в месяц. На типовой вопрос «где мой заказ и когда отгрузка» система ищет фрагменты в базе регламентов, отбирает пять лучших, отдельно ходит в 1С за статусом заказа и пишет ответ на 300 токенов. Скорость генерации — 60 токенов в секунду, это рабочий ориентир для облачной модели на сентябрь 2026.
| Участок | Секунд | Доля | Кто на это влияет |
|---|---|---|---|
| Сеть и очередь на входе | 0,2 | 3 % | хостинг, квота у провайдера |
| Поиск по базе: векторный и текстовый одновременно | 0,4 | 5 % | размер базы, тип хранилища |
| Переранжирование: 20 кандидатов сжимаются до 5 фрагментов | 0,5 | 6 % | настройка поиска |
| Вызов 1С за статусом заказа | 1,2 | 15 % | ваша учётная система, не подрядчик |
| Ожидание первого токена от модели | 0,7 | 9 % | длина запроса, загрузка провайдера |
| Написание ответа: 300 токенов при 60 токенах в секунду | 5,0 | 62 % | длина ответа, класс модели |
| Всего до полного ответа | 8,0 | 100 % | — |
Горизонтальная схема потока данных слева направо из восьми блоков со стрелками: «Вопрос клиента» → «Сеть и очередь 0,2 с» → «Поиск по базе 0,4 с» → «Переранжирование 20 → 5 фрагментов, 0,5 с» → «Вызов 1С за статусом заказа, 1,2 с» → «Ожидание первого токена 0,7 с» → «Написание ответа 300 токенов, 5,0 с» → «Ответ клиенту». Ширина блоков пропорциональна времени, последний блок заметно шире остальных вместе взятых и выделен штриховкой. Под схемой шкала времени от 0 до 8 секунд с двумя отметками: «3,0 с — здесь появляется первое слово при потоковой выдаче» и «8,0 с — полный ответ». Чертёжный стиль, все подписи по-русски.
Из таблицы видно то, что обычно и оказывается неожиданностью: на модель приходится 71 % задержки, но почти всё это — не размышление, а печать. Ожидание первого токена — 0,7 секунды, дальше идёт равномерная выдача слов. Значит, любые попытки «взять модель побыстрее» упираются в число выходных токенов, а не в её класс. Ответ вдвое короче пишется вдвое быстрее, и это единственный способ реально сократить пять секунд.
Второе наблюдение: пять участков из шести — это ваша инфраструктура, а не провайдер. Их суммарные 3,0 секунды целиком в руках подрядчика. Отдельно стоит рассуждающая модель: она добавляет не доли секунды, а десятки, и порог, за которым рассуждение окупает свою задержку, разобран отдельно.
Нормы по каналам: где секунда, а где минута
Одной нормы «быстро» не существует — терпение читателя определяется каналом, а не техникой. В телефонном разговоре пауза дольше секунды читается как обрыв связи; в переписке в мессенджере десять секунд задержки не заметит никто, потому что человек всё равно отложил телефон.
| Канал | Что человек должен увидеть первым | Целевое время | Порог, за которым уходят |
|---|---|---|---|
| Голосовой робот | первый звук ответа | медиана меньше 1 с | 1 с |
| Чат на сайте | первое слово ответа | до 3 с | 8–10 с |
| Мессенджер: MAX, Telegram | полный ответ | до 20 с | около 1 минуты |
| Почта и заявки с формы | письмо с ответом | 1–5 минут | часы |
| Фоновая обработка: ночная сверка, разбор архива | ничего, работает без зрителя | минуты и часы | нет |
Горизонтальный график-диапазон с логарифмической осью времени от 0,1 секунды до 1 часа. Пять полос сверху вниз: «Голосовой робот — до 1 с», «Чат на сайте, первое слово — до 3 с», «Мессенджер, полный ответ — до 20 с», «Почта — 1–5 минут», «Фоновая обработка — минуты и часы». Каждая полоса имеет светлую часть «норма» и затемнённый хвост «порог, за которым уходят». Поверх полосы чата вертикальная выделенная отметка «8,0 с — наш пример без потоковой выдачи», она попадает в затемнённую зону. Чертёжный стиль, все подписи по-русски.
Средняя по журналу за неделю почти всегда выглядит прилично: её вытягивают вниз короткие ответы и попадания в кэш. Уходят же люди не от средней, а от своего конкретного случая. Рабочий показатель — 95-й процентиль: время, в которое укладываются 95 обращений из 100. В нашем примере средняя 8,0 секунды, а 95-й процентиль — около 14, потому что часть запросов ждёт медленного ответа учётной системы. Именно эту цифру и надо ставить в требования.
Четыре способа ускорить, не меняя модель
Все четыре работают с участками, а не с провайдером. Ни один не требует смены модели, и ни один не ухудшает ответы — при условии, что после каждого изменения проводится замер на контрольных вопросах, а не проверка на глаз.
- 1Потоковая выдача ответа — 8 часов, 24 000 ₽
Система отдаёт слова по мере их появления, а не целиком в конце. Полное время не меняется вообще: было 8,0 секунды, стало 8,0. Меняется то, что человек ждёт пустого экрана 3,0 секунды вместо 8,0. Это самое дешёвое улучшение из четырёх и единственное, которое ничего не ломает; если его нет в вашем чате — начинать надо с него.
- 2Порог отсечения фрагментов — 12 часов, 36 000 ₽
Вместо фиксированных пяти фрагментов в запрос идёт от одного до пяти по релевантности, в среднем 3,2. Запрос худеет с 3 800 до 2 936 токенов, ожидание первого токена падает с 0,7 до 0,55 секунды, переранжирование — с 0,5 до 0,35. Побочный эффект приятнее основного: короче запрос — меньше счёт за токены, там этот же приём даёт 3 110 ₽ в месяц.
- 3Витрина данных вместо прямого вызова 1С — 20 часов, 60 000 ₽
Агент ходит не в боевую базу, а в отдельную таблицу-витрину, которая обновляется по событию отгрузки, плюс кэш справочных ответов на 60 секунд и жёсткий таймаут 1,5 секунды. Участок сжимается с 1,2 до 0,3 секунды, а главное — исчезает хвост в 6–15 секунд на закрытии месяца.
- 4Тяжёлые запросы — на отдельную ветку, 6 часов, 18 000 ₽
Классификатор на младшей модели стоит 0,023 ₽ за обращение и решает, нужна ли развёрнутая проверка. Восемь процентов запросов уходят в ветку, где ответ занимает полминуты и человеку показывают статус ожидания; остальные 92 % не платят за это своими секундами.
| Участок | Было | Стало |
|---|---|---|
| Сеть и очередь на входе | 0,2 с | 0,2 с |
| Поиск по базе | 0,4 с | 0,4 с |
| Переранжирование | 0,5 с | 0,35 с |
| Вызов учётной системы | 1,2 с | 0,3 с |
| Ожидание первого токена | 0,7 с | 0,55 с |
| До первого слова | 3,0 с | 1,8 с |
| Написание ответа | 5,0 с | 5,0 с |
| Полный ответ | 8,0 с | 6,8 с |
Две горизонтальные полосы одинаковой шкалы, ось в секундах от 0 до 8. Верхняя подписана «Как настроено по умолчанию»: сплошная полоса длиной 8,0 с, метка «первое слово» стоит в самом конце, на отметке 8,0. Нижняя подписана «После четырёх приёмов»: полоса длиной 6,8 с, метка «первое слово» стоит на отметке 1,8 и выделена, оставшаяся часть полосы заштрихована подписью «текст появляется по мере написания». Между полосами фигурная скобка с подписью «6,2 секунды пустого экрана, которых больше нет». Внизу сноска «46 часов работы, 138 000 ₽». Чертёжный стиль, подписи по-русски.
Порог в 1,4 % проверяется по своему журналу за час: возьмите диалоги, где последняя реплика клиента осталась без продолжения, и посчитайте, сколько из них оборвалось на ожидании. Меньше 82 в месяц — берите одну потоковую выдачу за 24 000 ₽ и вернитесь к остальному позже. Отдельно считается кэш готовых ответов: он снимает четверть обращений вообще, отдавая их за 0,2 секунды.
Почему ваша же 1С оказывается самым медленным звеном
Пока ответ приходит целиком, вызов учётной системы занимает 1,2 секунды из 8,0 — 15 %, на них никто не смотрит. Как только включена потоковая выдача, картина переворачивается: человек ждёт 3,0 секунды до первого слова, и 1,2 из них — это ваша 1С, то есть 40 % реального ожидания. Самый крупный кусок из тех, что вообще можно сократить.
Учётная система живёт своей жизнью: закрытие месяца, регламентные задания, чужой тяжёлый отчёт, блокировка записи. Тот же вызов, который обычно идёт 1,2 секунды, в такие моменты уходит на 6–15 секунд, и агент честно ждёт его, потому что ему так велели. Для клиента это выглядит как «бот завис в понедельник утром» — и лечится это не ускорением, а таймаутом и заранее оговорённым поведением при его срабатывании.
- Витрина вместо боевой базы. Отдельная таблица со статусами, остатками и ценами, которая обновляется по событию. Агент читает её, а не создаёт нагрузку на 1С в час пик.
- Кэш справочных ответов на 60 секунд. Часы работы, реквизиты, условия доставки за минуту не меняются. Повторный вопрос закрывается без обращения к учётной системе вообще.
- Таймаут и явная деградация. Полторы секунды на ответ; не успел — агент говорит «статус смотрю отдельно, отвечу в этом же диалоге» и продолжает разговор. Молчащий агент хуже агента, который признался, что ждёт.
- Отдельный пул соединений и своя квота. Агент не должен конкурировать за подключения с ночной выгрузкой. Смежная тема — лимиты API и что происходит при их превышении: очередь на стороне учётной системы выглядит точно так же, как медленный ответ.
Что записать в требования
Формулировка «система должна отвечать быстро» не проверяется и не защищает. Пять пунктов ниже проверяются по журналу за пять минут и ничего не стоят, если записать их до начала работ.
- 1Два числа на каждый канал: время до первого слова и время до полного ответа. Для чата на сайте — 3 и 10 секунд, для мессенджера — 5 и 20, для голоса — медиана до первого звука меньше 1 секунды.
- 2Замер по 95-му процентилю, а не по средней, на выборке не меньше 500 обращений подряд. Средняя прячет ровно те случаи, из-за которых люди уходят.
- 3Поведение при превышении описано явно: показать статус ожидания, отдать частичный ответ, перевести на оператора или ответить позже в том же диалоге. Молчание — не вариант поведения, а его отсутствие.
- 4Таймаут на каждый внешний вызов и на вызов модели, с указанием, что происходит после его срабатывания. Без этого один медленный отчёт в 1С останавливает весь канал.
- 5Состав журнала: на каждое обращение пишется время по участкам отдельно — поиск, переранжирование, внешние вызовы, ожидание первого токена, генерация. Без этих полей ускорение превращается в перебор гипотез вслепую.
Когда за скорость браться не надо
Ускорение — инженерная работа со своей ценой, и есть сценарии, где она заведомо не вернётся. Правильное решение в них — оставить как есть и заняться тем, что действительно мешает.
- Сценарий фоновый. Ночная сверка реестров, разбор архива, подготовка карточек к утру — здесь зрителя нет, и разница между 8 и 30 секундами на операцию не стоит ни рубля.
- Задержка не измерена. Пока в журнале нет времени по участкам, любое ускорение — это гадание. Час на настройку журнала окупается до того, как потрачен первый час на оптимизацию.
- Поиск работает хуже 85 %. Если нужный документ находится реже чем в 85 случаях из 100, ускорять нечего — быстрый неверный ответ хуже медленного верного. Сначала разбираются причины промахов поиска, потом секунды.
- Узкое место — человек. Если агент отвечает за 8 секунд, а очередь к оператору по эскалациям идёт сорок минут, то секунды в этой сумме не видны вообще. Считать надо весь путь обращения, а не только машинную его часть.
Зеркальный признак — когда браться нужно: канал живой, поток выше 3 000 обращений в месяц, в журнале виден 95-й процентиль больше 10 секунд и есть измеренная доля оборванных диалогов. Если верно всё четыре, потоковая выдача за 24 000 ₽ окупится в первый же месяц, а остальные три приёма стоит считать по порогу из расчёта выше. Для голосового канала арифметика другая и жёстче — она разобрана в материале про определение конца фразы у голосового агента.
