# Распознавание намерений | Слот 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)

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET 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?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
