Задача: NLU упирался в потолок
Бот держал первую линию поддержки, но упирался в классический предел любого NLU-классификатора: как только реплика клиента отклонялась от заученных формулировок, распознавание проседало, и диалог уходил оператору с пометкой «не распознано». В отдельные дни доля корректно распознанных обращений падала до 50–53%.
Решение: второй уровень распознавания
Мы добавили в схему распознавания LLM-классификатор — он включается, когда штатный NLU не дотягивает до порога уверенности, и сопоставляет реплику клиента с базой размеченных тем бота, возвращая наиболее вероятную. Число таких попыток на один диалог ограничено, чтобы не зациклить разговор.
Что изменилось после внедрения
Распознавание. До внедрения классификатора доля корректно распознанных обращений в отдельные дни падала до 50–53%. После того как мы его внедрили, она выросла до 99,4–100% и с тех пор держится на этом уровне.
Переводы на оператора «не распознано». Прямое следствие роста распознавания: после внедрения классификатора такие переводы сократились практически до нуля.
Автоматизация. До внедрения классификатора доля диалогов, которые бот закрывал полностью сам, составляла около 46%. После внедрения она выросла до пика 59,2% и с тех пор держится в диапазоне 56–59%.
Дополнительно FCR — доля обращений, решённых с первого раза — составляет 81,5%, средняя оценка пользователей — 4,1 из 5.
Как устроен LLM-классификатор
Схема распознавания двухуровневая. Основной поток обрабатывает штатный NLU-классификатор с порогом уверенности — он быстрый и достаточен для типовых формулировок. Если он не дотягивает до порога, диалог не сразу уходит оператору: включается LLM-классификатор, с приоритетом на «оператор» в неоднозначных случаях, чтобы не пытаться додумать за клиента то, что явно требует человека.
Именно эта связка — а не переписывание сценариев или доразметка интентов — и дала скачок в показателях: бот не стал «умнее» в самих темах, он стал точнее их узнавать в живой, неаккуратной речи клиентов.