Comment on page
Требования для успешного обучения Агента
В этой статье описаны требования, которые необходимо соблюсти при создании Сценария Агента, чтобы он успешно обучился.
Валидация сценария — это проверка при обучении Агента на то, ч то все требования системы к Агенту удовлетворены.
Обучить Агента можно двумя способами:
- 1.Нажать кнопку Train, расположенную в правом верхнем углу БотБилдера во вкладке AgentDesigner.
- 2.Нажать кнопку на карточке Агента.
По нажатию кнопки Train происходит:
- 1.Непосредственно Валидация сценария. Процесс валидации может занять некоторое время, до 10 минут на больших агентах (3000+ слотов)
- 2.При успешном прохождении валидации создается обученная модель Агента на основе валидного сценария.
В это время кнопка Train будет неактивна.
Если Сценарий не соответствует требованиям, то валидация завершится неудачно и в правом нижнем углу появится текст ошибки.
Важно: Если данный сценарий ранее уже обучался, а после внесения изменений валидация сценария завершилась неудачно, то работать будет старая обученная модель агента
Для того, чтобы валидация была пройдена успешно, сценарий должен удовлетворять правилам:
- 1.В Сценарии не должно быть веток без блокирующих слотов;
- 2.В Сценарии все ветки должны быть закрыты;
- 3.В обучающей выборке каждого интента должно быть минимум две строки;
- 4.Каждая строка обучающей выборки интента должна содержать не меньше одной буквы;
- 5.Название пользовательских контекстных переменных должно соответствовать правилам Требования к названию пользовательской переменной;
- 6.Содержимое подслота result слота Regular Expression должно соответствовать правилам синтаксиса;
- 7.Выражение в подслоте condition слота Transition Rule должно соответствовать правилам синтаксиса;
- 8.В слотах не происходит попытки перезаписи системных контекстных переменных, запрещенных для перезаписи;
- 9.В Слоте Notification используется существующий Канал Агента.
Блокирующий слот — слот, по которому Агент встает в ожидание входящего сообщения из Канал Агента, это может быть сообщение Собеседника или нажатие кнопки.
В каждой ветке сценария должен присутствовать хотя бы один блокирующий слот, т.к. при наличии ветки сценария без блокирующего слота Агент может войти в постоянную цикличную работу (бесконечное количество раз будет проходить по всем слотам из этой ветки сценария).
Список блокирующих слотов:
- Wait For Reaction
- Button Menu
- Change Chat Mode
- Incoming request
Важно: блокирующий слот не обязан находиться в конце ветки сценария, он может присутствовать в любом месте ветки сценария.
Если в ветке сценария не будет ни одного блокирующего слота из списка, то при обучении агента появится следующая ошибка:
Blocking slot types (BUTTON_MENU, CHANGE_CHAT_MODE, INCOMING_REQUEST, WAIT_FOR_REACTION) was not found in paths: *Slot ID* -> *Slot ID*”
, где *Slot ID* -> *Slot ID*
— это путь от корневого слота до слота, которым заканчивается невалидная ветка сценария.
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка ветки | Подсвечивается вся ветка сценария, в которой не хватает блокирующего слота. При добавлении слота в проблемную ветку новый слот в дереве затемняется и никак не выделен цветом. |
|
На концах веток Сценария не могут находиться следующие слоты:
- Timer
- Incoming Request
Данные слоты определяют начало одного из сценариев Агента, соответственно, после них обязательно должны быть добавлены какие-либо слоты.
Если в Сценарии в конце ветки сценария будет находиться один из перечисленных слотов, то при обучение Агента появится следующая ошибка:
Уведомление об ошибке будет содержать текст:
“Slot with invalid children found: *Slot ID*...“
, где *Slot ID* — это номер слота в Сценарии.


Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота с последующей кнопкой добавления нового слота | Подсвечивается слот, после которого необходимо продолжить сценарий, кнопка добавления слота и соединительная линия между ними. |
|
Обучающую выборку для успешного распознавания следует наполнять по правилам, описанным в статье Рекомендации по наполнени ю выборки Агента. В обучающей выборке Интента должно быть минимум две строки.
Если в выборке будет всего одна строка, то при обучении Агента появится следующая ошибка:
Уведомление об ошибке будет содержать текст:
“NLU slots or Intents has errors: The number of train examples of intent "intent" is not enough, it should be at least 2.”
, где в кавычках уточняется имя проблемного Интента.
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный под-слот intent с недостаточным количеством фраз в обучающей выборке. |
|
Строка обучающей выборки не может содержать меньше одной буквы.
Если строка обучающей выборки Интента не содержит в себе хотя бы один буквенный символ, то при валидации сценария вы получите следующую ошибку:
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный под-слот intent с недостаточным количеством букв во фразе обучающей выборки. |
|
Символы ‘ и \ в подслоте result слота Regular Expression должны быть экранированы: им должен предшествовать символ \, в противном случае Агент не обучится.
При отстуствии экранирования символа \ в подслоте result появится следующая ошибка:
Уведомление об ошибке будет содержать текст:
“Strategy is not valid. Errors: StrategyDTO(id=26944, agent_id=23289, is_active=False, dialog_timeout=datetime.timedelta(0, 900), modified_at=datetime.datetime(2021, 4, 15, 9, 49, 45, 763752), keep_chat_state_between_dialogs=False) ['Invalid strategy schema. Error: {\'node_list\': {9: {\'transition_rule_list\': {0: {\'error\': TransitionRuleCompilerError(\'Failed to compile transition rule!\', "parse_result in context && context.parse_result == \'\\\\\' -> 4")}}}}}']”
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный под-слот result с неэкранированными символами ‘ или \. |
|
Узнать, какие системные контекстные переменные доступны или недоступны для перезаписи, вы можете в статье Системные контекстные переменные
При попытке их перезаписи в Слотах Incoming Request, Slot Filling, Memory, External Request при обучении Агента будет выводиться следующая ошибка валидации сценарий:

В тексте ошибки есть список переменных, запрещенных для записи.
Подсветка ошибки и всплывающая подсказка
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный слот Incoming Request, Slot Filling, Memory, External Request, Synonym. |
|
Правила написания Шаблонов описаны в статье Новый синтаксис. Если Шаблон в новом синтаксисе был прописан некорректно, будет выведена ошибка:
Формат текста предупреждения:
Invalid template syntax: Slot <id проблемного слота>. Error “<описание ошибки>” in expression “<проблемное выражение>”
Пример:
Invalid template syntax: Slot 8848840. Error “unexpected char '@' at 3” in expression “{{ @foo }}”
Расшифровка ошибки: в Слоте 8848840 обнаружена ошибка — лишний символ '@' с порядковым номером 3 в выражении {{ @foo }}.
Важно: отсчет порядковых номеров символов в проблемном выражении начинается с 0.
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается слот с некорректно составленным выражением или управляющей конструкцией |
|
Если ранее в Слоте Notification был выбран и затем удален Канал Агента Whatsapp (360dialog), будет выведена ошибка:
Текст ошибки:
Notification slots with invalid channel settings found: <id Слота>
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный слот Notification |
|
Если в Слоте Memory, Slot Filling, Incoming Request, Synonym или Notification либо в Внешний запрос указана Пользовательские контекстные переменные, название которой не соответствует требованиям, будет выведена ошибка:
Текст ошибки:
Filling slots with invalid fields found: <slot_id>.

Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный слот, содержащий переменную |
|
Если в ветке сценария Подслота Repeat Next присутствуют другие Слоты Repeat, будет выведена ошибка:
Текст ошибки:
One or more Repeat slots have errors.

Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный слот Repeat |
|