chatme.ai
Search
K
Comment on page

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

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

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

Валидация сценария — это проверка при обучении Агента на то, что все требования системы к Агенту удовлетворены.
Обучить Агента можно двумя способами:
  1. 1.
    Нажать кнопку Train, расположенную в правом верхнем углу БотБилдера во вкладке AgentDesigner.
  2. 2.
    Нажать кнопку на карточке Агента.
По нажатию кнопки Train происходит:
  1. 1.
    Непосредственно Валидация сценария. Процесс валидации может занять некоторое время, до 10 минут на больших агентах (3000+ слотов)
  2. 2.
    При успешном прохождении валидации создается обученная модель Агента на основе валидного сценария.
В это время кнопка Train будет неактивна. Если Сценарий не соответствует требованиям, то валидация завершится неудачно и в правом нижнем углу появится текст ошибки.
Важно: Если данный сценарий ранее уже обучался, а после внесения изменений валидация сценария завершилась неудачно, то работать будет старая обученная модель агента

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

Для того, чтобы валидация была пройдена успешно, сценарий должен удовлетворять правилам:
  1. 1.
    В Сценарии не должно быть веток без блокирующих слотов;
  2. 2.
    В Сценарии все ветки должны быть закрыты;
  3. 3.
    В обучающей выборке каждого интента должно быть минимум две строки;
  4. 4.
    Каждая строка обучающей выборки интента должна содержать не меньше одной буквы;
  5. 5.
    Название пользовательских контекстных переменных должно соответствовать правилам Требования к названию пользовательской переменной;
  6. 6.
    Содержимое подслота result слота Regular Expression должно соответствовать правилам синтаксиса;
  7. 7.
    Выражение в подслоте condition слота Transition Rule должно соответствовать правилам синтаксиса;
  8. 8.
    В слотах не происходит попытки перезаписи системных контекстных переменных, запрещенных для перезаписи;
  9. 9.
    В Слоте 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) was not found in paths: *Slot ID* -> *Slot ID*”, где *Slot ID* -> *Slot ID* — это путь от корневого слота до слота, которым заканчивается невалидная ветка сценария.

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

image.png
image.png
Тип подсветки
Подсветка
Текст ошибки
Подсветка ветки
Подсвечивается вся ветка сценария, в которой не хватает блокирующего слота. При добавлении слота в проблемную ветку новый слот в дереве затемняется и никак не выделен цветом.
  • 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
Данные слоты определяют начало одного из сценариев Агента, соответственно, после них обязательно должны быть добавлены какие-либо слоты.
Если в Сценарии в конце ветки сценария будет находиться один из перечисленных слотов, то при обучение Агента появится следующая ошибка:
Снимок экрана 2021-04-13 в 14.33.18.png
Уведомление об ошибке будет содержать текст: “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. Недостаточное количество фраз в обучающей выборке

Обучающую выборку для успешного распознавания следует наполнять по правилам, описанным в статье Рекомендации по наполнению выборки Агента. В обучающей выборке Интента должно быть минимум две строки.
Снимок экрана 2021-04-13 в 14.51.44.png
Если в выборке будет всего одна строка, то при обучении Агента появится следующая ошибка:
Снимок экрана 2021-04-13 в 14.55.31.png
Уведомление об ошибке будет содержать текст: “NLU slots or Intents has errors: The number of train examples of intent "intent" is not enough, it should be at least 2.”, где в кавычках уточняется имя проблемного Интента.

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

image.png
Тип подсветки
Подсветка
Текст ошибки
Подсветка слота
Подсвечивается проблемный под-слот 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. Недостаточное количество букв во фразе обучающей выборки

Строка обучающей выборки не может содержать меньше одной буквы.
Снимок экрана 2021-04-13 в 15.11.33.png
Если строка обучающей выборки Интента не содержит в себе хотя бы один буквенный символ, то при валидации сценария вы получите следующую ошибку:
Снимок экрана 2021-04-13 в 14.59.51.png

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

Тип подсветки
Подсветка
Текст ошибки
Подсветка слота
Подсвечивается проблемный под-слот 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 должны быть экранированы: им должен предшествовать символ \, в противном случае Агент не обучится.
При отстуствии экранирования символа \ в подслоте result появится следующая ошибка:
Снимок экрана 2021-04-28 в 14.11.02.png
Уведомление об ошибке будет содержать текст: “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")}}}}}']”

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

image.png
Тип подсветки
Подсветка
Текст ошибки
Подсветка слота
Подсвечивается проблемный под-слот 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 при обучении Агента будет выводиться следующая ошибка валидации сценарий:
В тексте ошибки есть список переменных, запрещенных для записи.
Подсветка ошибки и всплывающая подсказка
image.png
Тип подсветки
Подсветка
Текст ошибки
Подсветка слота
Подсвечивается проблемный слот 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. Некорректное написание шаблонов в новом синтаксисе

Правила написания Шаблонов описаны в статье Новый синтаксис. Если Шаблон в новом синтаксисе был прописан некорректно, будет выведена ошибка:
image.png
Формат текста предупреждения:
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.

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

image.png
Тип подсветки
Подсветка
Текст ошибки
Подсветка слота
Подсвечивается слот с некорректно составленным выражением или управляющей конструкцией

8. В слоте Notification использован удаленный канал

Если ранее в Слоте Notification был выбран и затем удален Канал Агента Whatsapp (360dialog), будет выведена ошибка:
image.png
Текст ошибки:
Notification slots with invalid channel settings found: <id Слота>

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

image.png
Тип подсветки
Подсветка
Текст ошибки
Подсветка слота
Подсвечивается проблемный слот 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 либо в Внешний запрос указана Пользовательские контекстные переменные, название которой не соответствует требованиям, будет выведена ошибка:
image.png
Текст ошибки:
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, будет выведена ошибка:
image.png
Текст ошибки:
One or more Repeat slots have errors.

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

Тип подсветки
Подсветка
Текст ошибки
Подсветка слота
Подсвечивается проблемный слот Repeat
  • Nested repeats are not allowed . What to do: delete nested slot Repeat.