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

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

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

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

Обучение Агента

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

  1. Нажать кнопку Train, расположенную в правом верхнем углу БотБилдера во вкладке Agent Designer.

  2. Нажать кнопку на карточке Агента.

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

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

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

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

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

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

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

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

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

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

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

  5. Название Пользовательские контекстные переменные должно соответствовать требованиям к названию Пользовательских контекстных переменных.

  6. Содержимое Подслота result Слота Regular Expression должно соответствовать его синтаксису.

  7. Выражение в Подслоте condition Слота Transition Rule должно соответствовать его синтаксису.

  8. В Слотах Incoming Request, Slot Filling, Memory, External Request не происходит попытка перезаписи Системная контекстная переменная, запрещенных для перезаписи.

  9. В Слоте Notification используется существующий Канал Проекта.

  10. Отсутствуют вложенные циклы Слота Repeat.

Ошибки валидации и их обозначение в Дереве

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

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

  • Сообщение собеседника

  • Нажатие кнопки button.

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

  • 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* — это путь от Слота Start до Слота, которым заканчивается невалидная Ветка сценария.

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

Тип подсветки
Ошибка валидации
Подсветка
Notes

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

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

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

  • 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* — ID Слота, после которого необходимо продолжить Сценарий агента.

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

Тип подсветки
Ошибка валидации
Подсветка
Notes

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

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

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

  • 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. Недостаточное количество фраз в обучающей выборке

Обучающая выборка для успешного распознавания следует наполнять по правилам, описанным в статье Распознавание естественного языка.В Обучающая выборка Интента должно быть минимум две строки. Если в Обучающая выборка будет всего одна строка, при Обучение Агента появится ошибка.

Уведомление ошибки будет содержит текст: “NLU slots or Intents has errors:The number of train examples of intent "intent" is not enough, it should be at least 2.”Где в кавычках уточняется имя проблемного Интента.

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

Тип подсветки
Ошибка валидации
Подсветка
Notes

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

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

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

Одна Обучающая фраза Интента не может содержать меньше одной буквы.Если Обучающая фраза Интента не содержит в себе хотя бы один буквенный символ, то при Обучение Агента появится следующая ошибка:

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

Тип подсветки
Ошибка валидации
Подсветка
Notes

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

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

Подсвечивается проблемный под-слот 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 Слота 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")}}}}}']”

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

Тип подсветки
Ошибка валидации
Подсветка
Notes

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

Неэкранированные символы в подслоте result слота Regular Expression

Подсвечивается проблемный под-слот result с неэкранированными символами ‘ или \.

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

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

Следующие Системная контекстная переменная и Канальные переменные недоступны для перезаписи:

Переменная
Смысл
Изменение пользователем через слоты

channel_visitor_id

ID собеседника\чата в Конечный канал

Невозможно

channel_conversation_id

ID диалога\чата в Конечный канал

Невозможно

channel_visitor_firstname

Имя собеседника в Конечный канал

Невозможно

channel_visitor_lastname

Фамиия собеседника в Конечный канал

Невозможно

channel_visitor_account

Аккаунт собеседника в Конечный канал

Невозможно

channel_visitor_phone

Телефон собеседника в Конечный канал

Невозможно

channel_visitor_email

Емейл собеседника в Конечный канал

Невозможно

channel_visitor_source

источник, откуда пришел Собеседник в Конечный канал (например utm метки)

Невозможно

channel_visitor_auth

Данный авторизации Собеседника

Невозможно

channel_visitor_location

Невозможно

channel_message_id

id сообщения в Chat2Desk

Невозможно

channel_message_recipient

Бот в Chat2Desk является оператором, в эту переменную записывается его id

Невозможно

channel_webhook_url

Channel webhook URL из настроек Канал Проекта

Невозможно

channel_webhook_token

Channel webhook Token из настроек Канал Проекта

Невозможно

channel_reply_to

сообщение, на которое был совершен ответ (reply) в Telegram

Невозможно

Переменная
Смысл
Изменение пользователем через слоты

agent_id

Уникальный идентификатор Агента в Платформа

Невозможно

chat_id

Уникальный идентификатор Чата в Платформа

Невозможно

channel_chat_id

идентификатор Собеседника в Конечный канал - синтетическая переменная, правила ее формирования задаются в настройках Коннектора к данному каналу

Невозможно

channel_id

Уникальный идентификатор объекта платформы Канал Проекта.

Невозможно

date

Время получения последнего сообщения от Собеседник = время получения последнего значения client_message, но именно из Канал Проекта (а не в слоте Memory)

Невозможно

dialog_id

Идентификатор диалога

Невозможно

modified_at

Время последней модификации Контекст Чата

Невозможно

slot_id

Уникальный для платформы идентификатор последнего "выполненного" Слота в Сценарий агента

Невозможно

strategy_modified_at

Время создания Обученная модель агента (время последнего переобучения)

Невозможно

confidence

Процент уверенности модели NLU при распознавании Реплика Интентом

Невозможно

error

Текст ошибки, полученный в результате выполнения слотов NLU/ Regular Expression / Memory

Невозможно

incoming_request_id

Уникальный для платформы идентификатор (токен) Входящий запрос

Невозможно

intent

Уникальный для платформы идентификатор распознанного Интента

Невозможно

IR_url

Адрес активного вебхука Входящий запрос (слот Incoming Request) в данной Обученная модель агента

Невозможно

notification_count

Счетчик рассылок в конкретном Чате

Невозможно

notification_task_id

Принимает значение равное Идентификатор задачи на рассылку,который система отправила в ответе (response) на Запрос на рассылку от внешней системе

Невозможно

notification_init_time

Датавремя начала выполнения Слота Notification по UTC

Невозможно

notification_message_id

Когда рассылка отправляется, Конечный канал возвращает id сообщения

Невозможно

notification_id

id рассылки, на данный момент = id Слота Notification

Невозможно

notification_status

Технический статус рассылкиВозможные значения: ‘no_account’, ‘failed’, ‘sent’, ‘delivered’, ‘read’

Невозможно

platform_chat_id

"Промежуточная версия” идентификатора Чата, предназначенная для сопоставления старых идентификаторов чатов с новыми идентификаторами

Невозможно

chat_language

В переменной хранится распознанный язык

Невозможно

channel_raw_response

json-объект, запрос, который отправляет Конечный канал в ответ на перевод на оператора/группу операторов

Невозможно

repeat_index

переменная используется для отражения номера текущей итерации цикла, нумерация итераций начинается с 0

Невозможно

email_status

Результ отправки письма

Невозможно

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

Текст ошибки: “Attempt to rewrite protected variables: “channel_visitor_account” is a system variable that cannot be overwritten in following slot types: Incoming Request, Slot Filling, Memory, External Request, Synonym, Notificaion."

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

Тип подсветки
Ошибка валидации
Подсветка
Notes

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

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

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

  • “var” is a system variable that cannot be overwritten 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 overwritten 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.

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

Тип подсветки
Ошибка валидации
Подсветка
Notes

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

Некорректное написание шаблонов в новом синтаксисе

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

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

Если ранее в Слоте Notification был выбран и затем удален Канал Проекта, при Обучение Агента появится следующая ошибка:

Текст ошибки: Notification slots with invalid channel settings found: <id Слота>

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

Тип подсветки
Ошибка валидации
Подсветка
Notes

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

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

Подсвечивается проблемный слот 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>.

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

Тип подсветки
Ошибка валидации
Подсветка
Notes

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

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

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

  • 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.

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

Тип подсветки
Ошибка валидации
Подсветка
Notes

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

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

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

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

Last updated