> 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/razvetvlenie-scenariya-v-zavisimosti-ot-uslovii-or-slot-transition-rule-i-pod-slot-condition.md).

# Разветвление сценария в зависимости от условий | Слот Transition Rule и под-слот Condition

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

Слот Transition Rule — Слот, позволяющий делать разветвления сценария в зависимости от условий, указанных в Подслотах condition.

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-mY83W0Waor/61e5984971cadd5d6a315afff3a6dd00e353abdcb2d4c3d026470a90ef339604871b04a3a5def695169f03bd24e848b758b9f1175b45347f8f60891470ccde71b943436d03b40ba2cf9061255c8d523a33130ee0bed828ccd19585647465ddbf5c083a94)

## Создание и настройки комплексного слота Transition Rule (Transition Rule+condition)

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

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-f65z-Bq5_C/ffd054b9b8aaadfb63c27c04c5c9bcdded8db88332c45773fddc6e4aabf86293587ecb17d1cd2f03c3c3668535a28b2655f7e511158e74c890170c44f8224da1a458d139ebbbb9c46d1f95e5111ba04d6f76fc44b8f2db614fafa37ab48b60af057e314b)

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

### Атрибуты подслотов Condition

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-P6yaJIqIDg/352339e8727e5c9aeca06404f05055c5f794589777cf2afc02a6c025169e5b881a9cbbfb848e2345cb941830145b70b51781dd5595cfb92ce10752c5e77a80b6bf955b8ac1f39eb11f347263f157df13c7b6c83a83ea124f609fc4d7d76cc4ca16d67b97)

1. Nameー название Слота, которое будет отображено в Дерево сценария. Максимальная длина значения поля — 40 символов. Если название не введено при создании Подслота, автоматически копируются первые 40 символов текста из поля Condition в поле Name. Если же поле Name очищено при редактировании подслота, то на подслоте в Дерево сценария будут отображаться первые 34 символа из поля Condition.
2. Condition\*ー логическое выражение, которое будет проверено в процессе Общение, и если результат проверки будет ИСТИНА, произойдет переход в ветку, идущую после этого Подслота. Выражение задается, используя Синтаксис.\
   В поле Condition доступна прокрутка при большой длине выражения.

> Важно: Проверка невозможной операции даст значение False:

> 1\. Невалидная операция, например, выражение 1 < a4

> 2\. Сравнение с несуществующей переменной

> 3\. Сравнение строки операциями >, <, >=, <=

Cимвол \ в Подслоте должен быть экранирован: ему должен предшествовать символ  \\, в противном случае Агент не обучится. Подробнее: Требования для успешного обучения Агента

### Использование синтаксиса в Подслоте Condition (Transition Rule)

В Подслоте Condition допустимо использование Выражение в поле Condition. Подробнее: СинтаксисРезультатом вычисления условия будет значение логического типа: True или False. Если результатом вычисления условия является значение какого-то другого типа (строка, число, список, и т.п.), то оно будет приведено к логическому типу.

### Создание слота

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

При создании слота Transition Rule автоматически создаются два обязательных Подслота condition.

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

* Первый из них всегда имеет значение “main”, которое можно изменить на нужное нам условие, используя Синтаксис
* Второй, имеющий значение “true” и имя FALLBACK\_CONDITION, изменить нельзя. Этот подслот всегда будет оставаться самым нижним в данном комплексном слоте — все новые Подслоты condition будут автоматически размещены выше него.

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

* Используя кнопку “+” можно создать новый Подслот condition.
* ![ДОБАВИТЬ КОНДИШН.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-TWIbm3_t8A/8f51c886019eec6dd842542a48ad488ea42015548e346645a52d86b3683e333eb4d43935d37194b387e12ffd5e9611ce06e7389ffacb7ff2d465669456036a44885ffdc8bab4842f0833c3cc062ea66f308127b8aa0f69b4eb812452562df6e7c01a63d4)
* Новые Подслоты condition будут располагаться над автоматически созданным Подслотом condition со значением “true” в порядке их создания.
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-db7-lvluR5/09990f3ab74ceba8a7c3b785ffe48b13a32302c0030983fda613aef002e442119724fffa9edf311969b44515abe8112abc3ec3c0f7abaf481cc600a6fc17837162feef339a6538b7e77b0b905ad0835c1002edab2a8f4c2c1a40e58146d44e975e71062f)

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

* Чтобы удалить Подслот condition, необходимо кликнуть по нему правой кнопкой мыши и нажать кнопку Remove Branch, затем нажать OK во всплывшем диалоговом окне.
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-6crQgJanIF/1aec480ba10b03fcf083783ae543536c3949d927a166cc3b232039f5563d242c1ccd0639d81d84d5e35315430e6a39eccc2a4c6bd9efcc60cfed1250ecb535a2710e4d842ee40607cf35458aec95576eb9a0c1b99b1dbce2d1a2f53f32bb0f947a4e19b6)![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-OEzJfAmC3j/8a8bbeaf9efe8dee0636fca9a56e414764fc464b282817a294cb89f0a02354fd48c3617b13456297b35f273a4a5c90b740be37869998ef501ea5b872baa12d6ccb55bbcfb44b4da6569d74000518b26f39e367819899e3a42ccfbe7f11d721a929824325)
* Возможно удалить любой Подслот condition, кроме Подслота со значением true, если после удаления у Transition Rule  останется не менее двух Подслотов.
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-0CSwuJJd3R/553e12ba6d1fb3e058372a8ceca7994fa92c81eb2b9730b58bc3530e0d132403e6eecd20654416805132adca36b1b40a2a42d214c59e3bbf0497b06fd47a7f9a6de3d82dc01b3775785870ce39bfd8cd1dbfab479b135d5ccfa9e141c05b6875e31fc31d)
* Удаление Подслота со значением true или единственного, помимо него, невозможно. При попытке это сделать появится следующая ошибка по центру внизу:
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-7NNxyDN9kc/389058dbe593457e736a7fa3b1f6f00eb3909402976a702af4e79e6666e5b78ce41a9c86f9644b0141fbc9cd0407281d4ec973624d88230d4cd0b64f299ac9f7a2a60976263b272405e235f3bdba3de5d3c35e2bee371d7ca8368917c5fc0ed4a754c99e)

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

1. При прохождении сценария через Слот Transition Rule, происходит проверка истинности выражений, указанных в Подслотах condition от верхнего Подслота к нижнему;
2. Общение немедленно перейдет в ветку первого Подслота condition, результат выражения которого будет ИСТИНА, выражения в нижерасположенных Подслотах condition не будут проверены. Например, если Контекстная переменная {{ username }} является строкой и имеет значение “Иван”, произойдет переход в ветку Подслота condition с условием {{ username == 'Иван' }} так как это условие первым будет удовлетворено при проверке.

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-HT-QXGUj7X/6596a6049c9f02b64c388de4184cbe26ad76a51f6697229d54675f48c184cf5aba663760dd93ef9f9eecc3e61ec2917b55ba104d664e0f648a057cf206cb2a810072322a3fb953e436a1bfbcf3f5c9ad6cf94d4edab72d6d0fd95e2da67e02fccbdd0774)<br>
