Оптимизация и приоритизация
По мере роста вашего проекта и увеличения количества намерений, правильная организация и настройка NLU-модели становятся критически важными для поддержания высокой точности и качества диалога. В этом разделе мы рассмотрим два ключевых аспекта: рефакторинг и приоритизацию.
Оптимизация: Рефакторинг Намерений
Со временем некоторые общие намерения (например, «Вопросы по заказу») могут стать перегруженными и терять в точности. В таких случаях рекомендуется проводить рефакторинг — разделение одного большого намерения на несколько более мелких и сфокусированных.
Например, намерение «Вопросы по заказу» можно разделить на:
- «Где мой заказ?»
- «Изменить состав заказа»
- «Отменить заказ»
Эти новые, более точные намерения можно по-прежнему использовать в одном и том же месте в сценарии, но это значительно повысит точность распознавания и упростит дальнейшую поддержку модели.
Приоритизация: Как бот выбирает главное?
Пользователи не всегда говорят прямо. Их сообщения могут содержать сразу несколько мыслей. Например:
"Превет! Я хотел бы заказать пиццу. И поскорее!"
Наша NLU-модель анализирует каждое предложение отдельно и может распознать здесь сразу три намерения: приветствие, заказ_пиццы и просьба_ускорить. Приоритизация — это механизм, который позволяет боту понять, какое из этих намерений является главным, и отреагировать именно на него, проигнорировав второстепенные.
Как работает приоритизация?
В основе механизма лежит иерархия списков, в которые распределяются все намерения проекта. Когда в одном сообщении распознается несколько намерений, система выбирает то, которое находится в списке с наивысшим приоритетом.
Структура приоритетов
Стандартная иерархия выглядит следующим образом, от высшего приоритета к низшему:
- Критически важные намерения (
critical_list): Это намерения, которые должны быть обработаны в первую очередь, несмотря ни на что. Примеры:отмена_заказа,вызов_оператора. - Стандартные намерения (
other_listи др.): Основная масса ваших продуктовых намерений. Если в запросе нет критически важных, бот выберет намерение из этой группы. - Системные и "мусорные" намерения: Намерения с самым низким приоритетом, такие как
спасибо,приветствие,прощание. Они будут проигнорированы, если в сообщении есть что-то более важное. - Исключения (
no_priority_list): Намерения, которые по какой-то причине должны быть исключены из логики приоритизации.
Настройка приоритизации Конфигурация этих списков выполняется нашими специалистами на основе вашей бизнес-логики. Чтобы настроить приоритеты, вам достаточно предоставить нам ранжированный список ваших ключевых намерений.
Практический пример
Представим, что пользователь пишет: "Спасибо, все отлично! А где мой заказ?"
- Система распознает два намерения:
спасибо(низкий приоритет) иузнать_статус_заказа(стандартный приоритет). - Механизм приоритизации видит, что
узнать_статус_заказаимеет более высокий приоритет. - Бот проигнорирует благодарность и запустит сценарий для отслеживания заказа.
Этот подход позволяет боту фокусироваться на решении реальной задачи пользователя, делая диалог более эффективным и естественным.