> For the complete documentation index, see [llms.txt](https://chatme-ai-4.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://chatme-ai-4.gitbook.io/docs/proekty-na-platforme/proekt-i-ego-soderzhimoe/agenty-na-platforme/kak-postroit-scenarii-agenta/kak-sozdavat-i-nastraivat-sloty/raspoznavanie-namerenii-or-slot-nlu-i-pod-sloty-intent-i-fallback.md).

# Распознавание намерений | Слот NLU и под-слоты Intent и Fallback

## Назначение и общая информация

Слот NLU — Слот, предназначенный для реализации распознавания речи Агентом ー обработки сообщений на естественном языке с целью определить высказанное намерение (Интент) Собеседника и в зависимости от него выполнить переход в соответствующую Ветка сценария.

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-A7pZk2rk45/a3741a48640b3e2b00af3575ed8938508bc9668a68c8061915cb1303b7e4f6b8434351f7739d6ecd3b5448c8095b6415ceb83d86a71b2912e3cf439b8da12b189c2dac4a4da6694192d095c7e300ab644fa0562300cae217127216e8f96d9750aebe6e46)

Слот NLU является Комплексный слотом и не может существовать без Дочерний слотов intent и Подслота fallback, которые начинают собственные ветки, в которые будет осуществлен переход  после распознавания соответствующего намерения.Слот NLU обрабатывает входящую Реплика Собеседника, предварительно записанную в Контекстная переменная client\_message.Слот NLU распознает только те Интенты, которые заключены в его Подслоты intent , остальные Интенты, существующие в Компания, не участвуют в распознавании в данном NLU слоте. Например, на изображении выше, слот NLU будет обучен распознавать только два Интента, которые выбраны в его Подслотах intent . Если же ни один из этих Интентов не будет распознан, Общение перейдет в Подслот fallback.

## Создание и настройки комплексного слота NLU (NLU+intent+fallback)

### Атрибуты слота

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-ZDjqoR5SA7/1f88b3e005986466e5c08503e5829151f0e409f8b30ea2a7b620ce4d8084e9b859fa2b8a7c4533779f112fb7462fe6638000d5eebc76b894113a03d6fc3c41d6e3d041778345eb8017393cd384a2314befa529df6ac7e75bda96435d9b5f734e00f23b41)

1. NAME\* — название Слота, которое будет отображено в Дерево сценария. Максимальная длина значения поля — 40 символов.
2. Confidence Threshold\* — это выраженное в процентах минимальное значение уверенности в распознанном намерении, при котором Интент считается распознанным, и Общение может перейти в его ветку (ветку  Подслота intent). Значение может быть целым числом от 0 до 100.

Значение Confidence Threshold рекомендуется устанавливать исходя из утверждения, что это значение должно быть обратно пропорционально количеству Интентов в Слоте: чем больше Интентов, тем меньше должен быть Confidence Threshold. Для начала рекомендуется устанавливать значение 15 и изменять это значение в зависимости от результатов тестирования Агента. Подробнее: [Тестирование и улучшение распознавания Агента: подбор Confidence threshold](/docs/kak-obuchit-i-protestirovat-agenta/trebovaniya-dlya-uspeshnogo-obucheniya-agenta.md)

### Атрибуты подслота intent

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-Ubc0Ef6XeF/bfe7e7b0d65430e882fa18d31a671e11fdd4831d90554e0e65211dbb1cdced21795d9480ed03cac2ef22f646fc1f5591532b2ff4b29efcee58d79dfa94bfdf6b500028429638c80410bd96b8f6e5b2ece8b2a3cc789a1188edcbebcc9a90f53ec565715d)

1. Name — название Слота, которое будет отображено в Дерево сценария. Максимальная длина значения поля — 40 символов. Если название не введено, Платформа автоматически копирует название Интента из поля Intent в поле Name.
2. Intent\* — Интент, при распознании которого Общение пойдет по Ветка сценария, следующей за данным Подслотом.
3. Кнопка SHOW INTENT IN A NEW TAB — по нажатию кнопки выбранный в поле Интент открывается в соседней вкладке браузера.

### Атрибуты подслота fallback

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-sITujlrvfY/3099fbc221258da636996bab9e7b284d6cc163feb736052268aae6618bfd84b6b2cc0fef1d0e4fc26b0e01bda392e2f6cd8d8b8d4ad2ea15994ce18f8af931b70cd94caa20dc4747ee853dfc88f481a88867d1b16fc44e99ec9b62a835b3196608e843ca)

Name — название Слота, которое будет отображено в Дерево сценария. Максимальная длина значения поля — 40 символов. При создании слота NLU в поле Name подслота Fallback автоматически подставляется содержимое поля Name слота NLU. Если содержимое поля Name удалено, Подслот в Дерево сценария будет отображаться без названия.

### Подслоты intent и fallback

#### Автоматическая генерация подслотов при создании слота NLU

* При создании Слота NLU автоматически генерируются два Подслота intent и Подслот fallback. В них подставляются Интенты из Ресурсы Компании.\
  ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-qE4nRlN5yZ/08558fe1b4d8ebc5aad5a689aa349bc3468b0259e6476749e5a8c9898bd70f33e21346d2fce1ba7e3e60e3a04bb012b4a0450ade3c74b9b5f1c06184b5ea7c246999d149e2910b0d179451f2a3050248c90d3aa7040fd1099c41d7d44d37252dd7331ce0)
* Если в Компания нет Интентов, то за слотом NLU будут созданы Подслоты с автоматически сгенерированными Интентами:\
  ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-WtJLQn_49X/6c848c0ff07f92f0dde92bcd603b2364398ac8a7de1b8c6167481647b84779b61dcbd66b8bbda591f3525fde7d21bfa7eb5729cff825e39c49b1b31fe51db0b341f21641ed5a530830c91619f371f1eb9dfbc80965557476f4d8068c7e31e685b9e406e8)

Эти Интенты появятся в Ресурсы Компании. О создании Интентов: Вкладка интентов — Intents.

* Заменить Интенты в сгенерированных подслотах можно, развернув подслот двойным нажатием мышки, нажав на название Интента и выбрав нужный из выпадающего списка и нажав кнопку Save.
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-F-sa4W2fgF/f8ac77c462bc7fb85a2025deb307cd1b4806997bd1710d9b9ce5021c0329399a28217cbb1afd9053d6460c0cc2be723464cfc09a5dbf12f5fbab98e564902ee85a9ec1670f7c5fea09f9bd2faf6dff19b041081522b9810913ae6ef61d71f9ca4187d0b8)

#### Добавление подслотов Intent

Чтобы добавить новый Подслот, нужно нажать на кнопку +. Новый Подслот появится в дереве выше Подслота, который всегда расположен самым нижним.![new intent.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-Rpwgmcux8e/38b86d96dba6b8f8a4c501a5838c8f5fc985e37fa9ee6de2b4323d154f90b8e880302578255205fa9f7ff31c6fe8626f32841717dea81f1b7263f3a7507094df8cce4c921739d58e11cbb029d51405c18ecf6ce361b83361e6603a404a8977bdd7688d11)

#### Удаление подслотов Intent и Fallback

* Чтобы удалить Подслот intent, необходимо кликнуть по нему правой кнопкой мыши и нажать кнопку Remove Branch, затем нажать OK во всплывшем диалоговом окне.
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-i_BiCiZvvZ/400f7a79c244eacf1f19761079d8a89a8ebdc17df3102c9401dc5a94e7ffb908f8fd54003ac25e8da0d278d9006c9c64bc676f2124d970d7252ad3d5191ebb7aebfd41361f2febf00b5af0ed4782d371367d7443595b1f8f7887b77bbc9537c1897a7db0)![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-PCF2tNT6Sd/87d65c33144ad181ffc6add7dff95910b1f1e23e2ae0655c8be1aa99eebe03afebbbeba2bb1f96611865d05cecbd2bf1364b4004d6ac03b13a9d066cb39ec7bfe373e4eced6e3436cdf178d3d98c15bee3e722da8883d5e514c9601edaf6245d2db29a85)
* Возможно удалить любой Подслот intent, если после удаления у Слота NLU останется не менее двух Подслотов intent.
* Удаление Подслота fallback невозможно.

## Работа слота

Слот NLU обучается на выборках Интентов, добавленных в качестве его Подслотов intent. О наполнении Обучающая выборка: Распознавание агентом естественного языка.Слот NLU на входе принимает Контекстная переменная client\_message, обрабатывает ее, распознавая Интент, и переводит Общение в ветку распознанного Интента. Если же ни один Интент не распознан с должным уровнем уверенности, Общение переходит в Подслот fallback.

### Процесс распознавания Интентов

1. Обучение: слот NLU обучается на выборках Интентов, добавленных в качестве его Подслотов intent.
2. > Важно: если Агент был отредактирован, но изменения коснулись только содержимого других Слотов, помимо NLU, то при переобучении Агента слот NLU не будет переобучаться.
3. Получение реплики: слот NLU принимает Сообщение собеседника ー текст в Контекстная переменная client\_message.
4. Классификация реплики: происходит классификация сообщения из Контекстная переменная client\_message и расставляет все Интенты данного Слота NLU по уровню уверенности в них ー confidence (выражена в процентах, так же как и CONFIDENCE THRESHOLD ).
5. Создание в Контекст Чата Контекстная переменная nlu\_result: создается Контекстная переменная, значением которой становится json-объект, содержащий информацию о топ-5 распознанных интентов в порядке убывания их confidence.\
   Пример: \[{'intent\_name': 'size', 'confidence': 0.9993743300437927}, {'intent\_name': 'product\_in\_stock', 'confidence': 0.00019508253899402916}, {'intent\_name': 'model\_price', 'confidence': 0.00012844608863815665}, {'intent\_name': 'address', 'confidence': 0.00010525238758418709}]
6. Переход в интент: Интент с максимальным confidence при условии, что этот confidence >= CONFIDENCE THRESHOLD из настроек данного слота NLU, и является Интентом, которым распознана Реплика. Как следствие:
7. * Общение перейдет в ветку данного Подслота intent;
   * в  Контекст Чата появляется Контекстная переменная:
   * * intent\_name ー название распознанного Интента;
     * confidence — степень уверенности в принадлежности Реплика определенному Интенту, выраженная в процентах.
8. Переход в фоллбек: Если же confidence всех Интентов ниже CONFIDENCE THRESHOLD из настроек данного слота NLU, то считается, что ни один Интент не был распознан, как следствие:
9. * Общение перейдет в ветку Подслота fallback;
   * в Контекст Чата появляется Контекстная переменная error — текст ошибки.

Пример: в данном случае Реплика Собеседник была отнесена слотом NLU к Интенту 1analytics, и произошел переход по соответствующей ему Ветка сценария.![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-AIOFWsCxA0/46107dc13ccc2fb97213419f0b0a78e3bc96d28ad845d67451179286abcaccd2545c49af8a8a5263a166856a75b36bcc1366b03d490dac378e9a73bca6d56c6d4af7f2d5bd8dd6321de9b942c3be5ce6bb05f64e7ae244a47d82466089534c65fef2aff8)![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-xWNkDFY5ts/42a43b9c65ed172c7c8d0de2bbccde0cdb6f0881e13e6d515a159004d1cfc4497d7f665c93619179e971cdeb29e0f4875417d67821a522a400e78f448e1072742d6ff125799b6c9b4461e20aee1a842a0fc0fe267b474c9fb4e75173849c59c708f82f91)

| Язык                |
| ------------------- |
| Русский             |
| Английский          |
| Португальский       |
| Украинский          |
| Испанский           |
| Вьетнамский         |
| Тайский             |
| Индонезийский       |
| Малайский           |
| Филиппинский        |
| Сербский            |
| Немецкий            |
| Польский            |
| Французский         |
| Пакистанский (урду) |
| Киргизский          |
| Арабский            |
