Оптимизация и приоритизация

По мере роста вашего проекта и увеличения количества намерений, правильная организация и настройка NLU-модели становятся критически важными для поддержания высокой точности и качества диалога. В этом разделе мы рассмотрим два ключевых аспекта: рефакторинг и приоритизацию.

Оптимизация: Рефакторинг Намерений

Со временем некоторые общие намерения (например, «Вопросы по заказу») могут стать перегруженными и терять в точности. В таких случаях рекомендуется проводить рефакторинг — разделение одного большого намерения на несколько более мелких и сфокусированных.

Например, намерение «Вопросы по заказу» можно разделить на:

  • «Где мой заказ?»

  • «Изменить состав заказа»

  • «Отменить заказ»

Эти новые, более точные намерения можно по-прежнему использовать в одном и том же месте в сценарии, но это значительно повысит точность распознавания и упростит дальнейшую поддержку модели.

Приоритизация: Как бот выбирает главное?

Пользователи не всегда говорят прямо. Их сообщения могут содержать сразу несколько мыслей. Например:

"Превет! Я хотел бы заказать пиццу. И поскорее!"

Наша NLU-модель анализирует каждое предложение отдельно и может распознать здесь сразу три намерения: приветствие, заказ_пиццы и просьба_ускорить. Приоритизация — это механизм, который позволяет боту понять, какое из этих намерений является главным, и отреагировать именно на него, проигнорировав второстепенные.

Как работает приоритизация?

В основе механизма лежит иерархия списков, в которые распределяются все намерения проекта. Когда в одном сообщении распознается несколько намерений, система выбирает то, которое находится в списке с наивысшим приоритетом.

Структура приоритетов

Стандартная иерархия выглядит следующим образом, от высшего приоритета к низшему:

  1. Критически важные намерения (critical_list): Это намерения, которые должны быть обработаны в первую очередь, несмотря ни на что. Примеры: отмена_заказа, вызов_оператора.

  2. Стандартные намерения (other_list и др.): Основная масса ваших продуктовых намерений. Если в запросе нет критически важных, бот выберет намерение из этой группы.

  3. Системные и "мусорные" намерения: Намерения с самым низким приоритетом, такие как спасибо, приветствие, прощание. Они будут проигнорированы, если в сообщении есть что-то более важное.

  4. Исключения (no_priority_list): Намерения, которые по какой-то причине должны быть исключены из логики приоритизации.

Практический пример

Представим, что пользователь пишет: "Спасибо, все отлично! А где мой заказ?"

  1. Система распознает два намерения: спасибо (низкий приоритет) и узнать_статус_заказа (стандартный приоритет).

  2. Механизм приоритизации видит, что узнать_статус_заказа имеет более высокий приоритет.

  3. Бот проигнорирует благодарность и запустит сценарий для отслеживания заказа.

Этот подход позволяет боту фокусироваться на решении реальной задачи пользователя, делая диалог более эффективным и естественным.

Последнее обновление