Требования для успешного обучения Агента
В этой статье описаны требования, которые необходимо соблюсти при создании Сценария Агента, чтобы он успешно обучился.
Валидация Сценария Агента
Валидация сценария — это проверка при обучении Агента на то, что все требования системы к Агенту удовлетворены.
Обучить Агента можно двумя способами:
По нажатию кнопки Train происходит:
Непосредственно Валидация сценария. Процесс валидации может занять некоторое время, до 10 минут на больших агентах (3000+ слотов)
При успешном прохождении валидации создается обученная модель Агента на основе валидного сценария.
В это время кнопка Train будет неактивна. Если Сценарий не соответствует требованиям, то валидация завершится неудачно и в правом нижнем углу появится текст ошибки.
Важно: Если данный сценарий ранее уже обучался, а после внесения изменений валидация сценария завершилась неудачно, то работать будет старая обученная модель агента
Требования к агенту для успешной валидации
Для того, чтобы валидация была пройдена успешно, сценарий должен удовлетворять правилам:
В Сценарии не должно быть веток без блокирующих слотов;
В Сценарии все ветки должны быть закрыты;
В обучающей выборке каждого интента должно быть минимум две строки;
Каждая строка обучающей выборки интента должна содержать не меньше одной буквы;
Содержимое подслота result слота Regular Expression должно соответствовать правилам синтаксиса;
Выражение в подслоте condition слота Transition Rule должно соответствовать правилам синтаксиса;
В слотах не происходит попытки перезаписи системных контекстных переменных, запрещенных для перезаписи;
В Слоте Notification используется существующий Канал Агента.
Возможные ошибки построения сценария и их обозначение в Дереве
1. Отсутствие блокирующих слотов в ветках сценария
Блокирующий слот — слот, по которому Агент встает в ожидание входящего сообщения из Канал Агента, это может быть сообщение Собеседника или нажатие кнопки.
В каждой ветке сценария должен присутствовать хотя бы один блокирующий слот, т.к. при наличии ветки сценария без блокирующего слота Агент может войти в постоянную цикличную работу (бесконечное количество раз будет проходить по всем слотам из этой ветки сценария). Список блокирующих слотов:
Wait For Reaction
Button Menu
Change Chat Mode
Incoming request
Важно: блокирующий слот не обязан находиться в конце ветки сценария, он может присутствовать в любом месте ветки сценария.
Если в ветке сценария не будет ни одного блокирующего слота из списка, то при обучении агента появится следующая ошибка:
Подсветка ошибки и всплывающая подсказка
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка ветки | Подсвечивается вся ветка сценария, в которой не хватает блокирующего слота. При добавлении слота в проблемную ветку новый слот в дереве затемняется и никак не выделен цветом. |
|
2. Не закрытые ветки сценария
На концах веток Сценария не могут находиться следующие слоты:
Timer
Incoming Request
Данные слоты определяют начало одного из сценариев Агента, соответственно, после них обязательно должны быть добавлены какие-либо слоты.
Уведомление об ошибке будет содержать текст: “Slot with invalid children found: *Slot ID*...“
, где *Slot ID* — это номер слота в Сценарии.
Подсветка ошибки и всплывающая подсказка
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота с последующей кнопкой добавления нового слота | Подсвечивается слот, после которого необходимо продолжить сценарий, кнопка добавления слота и соединительная линия между ними. |
|
3. Недостаточное количество фраз в обучающей выборке
Подсветка ошибки и всплывающая подсказка
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный под-слот intent с недостаточным количеством фраз в обучающей выборке. |
|
4. Недостаточное количество букв во фразе обучающей выборки
Подсветка ошибки и всплывающая подсказка
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный под-слот intent с недостаточным количеством букв во фразе обучающей выборки. |
|
5. Синтаксис в подслоте result слота Regular Expression
Символы ‘ и \ в подслоте result слота Regular Expression должны быть экранированы: им должен предшествовать символ \, в противном случае Агент не обучится.
Уведомление об ошибке будет содержать текст: “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 с неэкранированными символами ‘ или \. |
|
6. Попытка перезаписи системных контекстных переменных, запрещенных для перезаписи
Узнать, какие системные контекстные переменные доступны или недоступны для перезаписи, вы можете в статье Системные контекстные переменные
При попытке их перезаписи в Слотах Incoming Request, Slot Filling, Memory, External Request при обучении Агента будет выводиться следующая ошибка валидации сценарий:
В тексте ошибки есть список переменных, запрещенных для записи.
Подсветка ошибки и всплывающая подсказка
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный слот Incoming Request, Slot Filling, Memory, External Request, Synonym. |
|
7. Некорректное написание шаблонов в новом синтаксисе
Формат текста предупреждения:
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.
Подсветка ошибки и всплывающая подсказка
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается слот с некорректно составленным выражением или управляющей конструкцией |
|
8. В слоте Notification использован удаленный канал
Если ранее в Слоте Notification был выбран и затем удален Канал Агента Whatsapp (360dialog), будет выведена ошибка:
Текст ошибки:
Notification slots with invalid channel settings found: <id Слота>
Подсветка ошибки и всплывающая подсказка
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный слот Notification |
|
9. Некорректное имя пользовательской переменой
Если в Слоте Memory, Slot Filling, Incoming Request, Synonym или Notification либо в Внешний запрос указана Пользовательские контекстные переменные, название которой не соответствует требованиям, будет выведена ошибка:
Текст ошибки:
Filling slots with invalid fields found: <slot_id>.
Подсветка ошибки и всплывающая подсказка
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный слот, содержащий переменную |
|
10. Вложенные циклы слота Repeat
Если в ветке сценария Подслота Repeat Next присутствуют другие Слоты Repeat, будет выведена ошибка:
Текст ошибки:
One or more Repeat slots have errors.
Подсветка ошибки и всплывающая подсказка
Тип подсветки | Подсветка | Текст ошибки |
---|---|---|
Подсветка слота | Подсвечивается проблемный слот Repeat |
|
Last updated