Требования для успешного обучения Агента

В этой статье описаны требования, которые необходимо соблюсти при создании Сценария Агента, чтобы он успешно обучился.

Валидация Сценария Агента

Валидация сценария — это проверка при обучении Агента на то, что все требования системы к Агенту удовлетворены.

Обучить Агента можно двумя способами:

По нажатию кнопки Train происходит:

  1. Непосредственно Валидация сценария. Процесс валидации может занять некоторое время, до 10 минут на больших агентах (3000+ слотов)

  2. При успешном прохождении валидации создается обученная модель Агента на основе валидного сценария.

В это время кнопка Train будет неактивна. Если Сценарий не соответствует требованиям, то валидация завершится неудачно и в правом нижнем углу появится текст ошибки.

Важно: Если данный сценарий ранее уже обучался, а после внесения изменений валидация сценария завершилась неудачно, то работать будет старая обученная модель агента

Требования к агенту для успешной валидации

Для того, чтобы валидация была пройдена успешно, сценарий должен удовлетворять правилам:

  1. В Сценарии не должно быть веток без блокирующих слотов;

  2. В Сценарии все ветки должны быть закрыты;

  3. В обучающей выборке каждого интента должно быть минимум две строки;

  4. Каждая строка обучающей выборки интента должна содержать не меньше одной буквы;

  5. Содержимое подслота result слота Regular Expression должно соответствовать правилам синтаксиса;

  6. Выражение в подслоте condition слота Transition Rule должно соответствовать правилам синтаксиса;

  7. В слотах не происходит попытки перезаписи системных контекстных переменных, запрещенных для перезаписи;

  8. В Слоте Notification используется существующий Канал Агента.

Возможные ошибки построения сценария и их обозначение в Дереве

1. Отсутствие блокирующих слотов в ветках сценария

Блокирующий слот — слот, по которому Агент встает в ожидание входящего сообщения из Канал Агента, это может быть сообщение Собеседника или нажатие кнопки.

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

  • Wait For Reaction

  • Button Menu

  • Change Chat Mode

  • Incoming request

Важно: блокирующий слот не обязан находиться в конце ветки сценария, он может присутствовать в любом месте ветки сценария.

Если в ветке сценария не будет ни одного блокирующего слота из списка, то при обучении агента появится следующая ошибка:

Подсветка ошибки и всплывающая подсказка

Тип подсветкиПодсветкаТекст ошибки

Подсветка ветки

Подсвечивается вся ветка сценария, в которой не хватает блокирующего слота. При добавлении слота в проблемную ветку новый слот в дереве затемняется и никак не выделен цветом.

  • Blocking slot types (Button menu, Change chat mode, Incoming request, Wait for reaction) were not found in the branch: *Slot ID* -> *Slot ID*” What to do: add blocking slots to the branch.

2. Не закрытые ветки сценария

На концах веток Сценария не могут находиться следующие слоты:

  • Timer

  • Incoming Request

Данные слоты определяют начало одного из сценариев Агента, соответственно, после них обязательно должны быть добавлены какие-либо слоты.

Уведомление об ошибке будет содержать текст: “Slot with invalid children found: *Slot ID*...“, где *Slot ID* — это номер слота в Сценарии.

Подсветка ошибки и всплывающая подсказка

Тип подсветкиПодсветкаТекст ошибки

Подсветка слота с последующей кнопкой добавления нового слота

Подсвечивается слот, после которого необходимо продолжить сценарий, кнопка добавления слота и соединительная линия между ними.

  • Slot of this type can’t be the last one in the branch. What to do: add subsequent branch or at least any of these slots: Wait for reaction, Change chat mode, Jump.

3. Недостаточное количество фраз в обучающей выборке

Подсветка ошибки и всплывающая подсказка

Тип подсветкиПодсветкаТекст ошибки

Подсветка слота

Подсвечивается проблемный под-слот intent с недостаточным количеством фраз в обучающей выборке.

  • The number of requests of the intent ‘название интента’ is not enough, it should be at least 2. What to do: add some requests to the intent.

4. Недостаточное количество букв во фразе обучающей выборки

Подсветка ошибки и всплывающая подсказка

Тип подсветкиПодсветкаТекст ошибки

Подсветка слота

Подсвечивается проблемный под-слот intent с недостаточным количеством букв во фразе обучающей выборки.

  • The number of letters in the request "..." of this intent is not enough, it should be at least 1. What to do: edit the request so that it contains at least 1 letter.

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 с неэкранированными символами ‘ или \.

  • ‘ and \ characters in result subslots must be escaped with a \ character. What to do: escape ‘ and \ characters with a \ character.

6. Попытка перезаписи системных контекстных переменных, запрещенных для перезаписи

Узнать, какие системные контекстные переменные доступны или недоступны для перезаписи, вы можете в статье Системные контекстные переменные

При попытке их перезаписи в Слотах Incoming Request, Slot Filling, Memory, External Request при обучении Агента будет выводиться следующая ошибка валидации сценарий:

В тексте ошибки есть список переменных, запрещенных для записи.

Подсветка ошибки и всплывающая подсказка

Тип подсветкиПодсветкаТекст ошибки

Подсветка слота

Подсвечивается проблемный слот Incoming Request, Slot Filling, Memory, External Request, Synonym.

  • “var” is a system variable that cannot be used in following slot types: Incoming Request, Slot Filling, Memory, External Request, Synonym. What to do: remove the “var” variable from the slot. Для случаев, если несколько системных переменных попытались перезаписать, отображать их в одном уведомлении через запятую, пример:

  • “var1”, “var2”, “var3” are system variables that cannot be used in following slot types: Incoming Request, Slot Filling, Memory, External Request, Synonym. What to do: remove the “var1”, “var2”, “var3” variables from the slot.

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

  • A non-existing channel is set in the destination field (the channel might be deleted). What to do: choose an existing channel.

9. Некорректное имя пользовательской переменой

Если в Слоте Memory, Slot Filling, Incoming Request, Synonym или Notification либо в Внешний запрос указана Пользовательские контекстные переменные, название которой не соответствует требованиям, будет выведена ошибка:

Текст ошибки:

Filling slots with invalid fields found: <slot_id>.

Подсветка ошибки и всплывающая подсказка

Тип подсветкиПодсветкаТекст ошибки

Подсветка слота

Подсвечивается проблемный слот, содержащий переменную

  • Wrong name. The name must be no more than 128 characters and may contain only latin letters, numbers and _ . What to do: edit the name.

10. Вложенные циклы слота Repeat

Если в ветке сценария Подслота Repeat Next присутствуют другие Слоты Repeat, будет выведена ошибка:

Текст ошибки:

One or more Repeat slots have errors.

Подсветка ошибки и всплывающая подсказка

Тип подсветкиПодсветкаТекст ошибки

Подсветка слота

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

  • Nested repeats are not allowed . What to do: delete nested slot Repeat.

Last updated