ОБУЧЕНИЕ И ТЕСТИРОВАНИЕ АГЕНТА

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

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

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

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

Обучить
@Агент
а можно двумя способами:
Нажать кнопку Train, расположенную в правом верхнем углу
@БотБилдер
а во вкладке Agent Designer. ​
image.png
Нажать кнопку на карточке
@Агент
а. ​
image.png
По нажатию кнопки Train происходит:
Непосредственно
@Валидация сценария
. Процесс
@Валидация сценария
может занять некоторое время, до 10 минут на больших
@Агент
ах.
При успешном прохождении
@Валидация сценария
создается
@Обученная модель агента
на основе валидного
@Сценарий
.
В это время кнопка Train будет неактивна. Если
@Сценарий
не соответствует требованиям, то
@Валидация сценария
завершится неудачно и в правом нижнем углу появится текст ошибки.
Важно: Если данный
@Сценарий
ранее уже обучался, а после внесения изменений
@Валидация сценария
завершилась неудачно, то работать будет старая
@Обученная модель агента
.

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

Для того, чтобы
@Валидация сценария
была пройдена успешно,
@Сценарий
должен удовлетворять правилам:
В
@Сценарий
не должно быть
@Ветка сценария
без Блокирующий слот;
@Ветка сценария
после
@Слот
ов
@Timer
и
@Incoming Request
должны быть закрыты;
В
@Обучающая выборка
@Интент
а должно быть минимум две строки;
@Обучающая фраза
@Интент
а должна содержать не меньше одной буквы;
Название
@Пользовательские контекстные переменные
должно соответствовать
требованиям к названию Пользовательских контекстных переменных
.
Содержимое
@Подслот
а
@result
@Слот
а
@Regular Expression
должно соответствовать его синтаксису.
Выражение в
@Подслот
е
@condition
@Слот
а
@Transition Rule
должно соответствовать его синтаксису.
В
@Слот
ах
@Incoming Request
,
@Slot Filling
,
@Memory
,
@External Request
не происходит попытка перезаписи
@Системные контекстные переменные
, запрещенных для перезаписи.
В
@Слот
е
@Notification
используется существующий
@Канал Агента
.
Отсутствуют вложенные циклы
@Слот
а
@Repeat
.

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

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

@Блокирующий слот
@Слот
, по которому
@Агент
встает в ожидание входящего сообщения из
@Канал Агента
.
@Сообщение собеседника
Нажатие кнопки
@button
.
В каждой
@Ветка сценария
должен присутствовать хотя бы один
@Блокирующий слот
, иначе при наличии
@Ветка сценария
без
@Блокирующий слот
а
@Агент
может войти в постоянную непрерывную работу (бесконечное количество раз будет проходить по всем слотам из
@Ветка сценария
).
Список
@Блокирующий слот
ов:
@Wait For Reaction
;
@Button Menu
;
@Change Chat Mode
;
@Incoming Request
.
Если в
@Ветка сценария
не будет ни одного
@Блокирующий слот
а из списка, то при
@Обучение
@Агент
а появится следующая ошибка:
image.png
Важно:
@Блокирующий слот
не обязан находиться в конце
@Ветка сценария
. Он может присутствовать в любом месте
@Ветка сценария
.
Уведомление ошибки будет содержать текст:
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
до
@Слот
а, которым заканчивается невалидная
@Ветка сценария
.

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

image.png
image.png

Тип подсветки
Ошибка валидации
Подсветка
Текст ошибки
1
Подсветка ветки
Отсутствие блокирующих слотов в ветках сценария.
Подсвечивается вся ветка сценария, в которой не хватает блокирующего слота. При добавлении слота в проблемную ветку новый слот в дереве затемняется и никак не выделен цветом.
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.
There are no rows in this table

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

На конце
@Ветка сценария
не могут находиться следующие слоты:
@Timer
;
@Incoming Request
.
Данные
@Слот
ы определяют начало одного из сценариев
@Агент
а, соответственно, после них обязательно должны быть добавлены какие-либо
@Слот
ы.
Если в
@Сценарий
в конце
@Ветка сценария
будет находиться один из перечисленных слотов, то при
@Обучение
@Агент
а появится следующая ошибка:
Снимок экрана 2021-04-13 в 14.45.32.png
Уведомление ошибки будет содержит текст: “Slot with invalid children found: *Slot ID*...“
Где *Slot ID* — ID
@Слот
а, после которого необходимо продолжить
@Сценарий
.

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

image.png
image.png
Тип подсветки
Ошибка валидации
Подсветка
Текст ошибки
1
Подсветка слота с последующей кнопкой добавления нового слота
Незакрытые ветки сценария.
Подсвечивается слот, после которого необходимо продолжить сценарий, кнопка добавления слота и соединительная линия между ними.
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.
There are no rows in this table

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

@Обучающая выборка
для успешного распознавания следует наполнять по правилам, описанным в статье .
В
@Обучающая выборка
@Интент
а должно быть минимум две строки. Если в
@Обучающая выборка
будет всего одна строка, при
@Обучение
@Агент
а появится ошибка.
Снимок экрана 2023-06-13 в 21.19.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.”
Где в кавычках уточняется имя проблемного
@Интент
а.
Снимок экрана 2021-04-13 в 14.55.31.png

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

image.png
Тип подсветки
Ошибка валидации
Подсветка
Текст ошибки
1
Подсветка слота
Недостаточное количество фраз в обучающей выборке
Подсвечивается проблемный под-слот 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.
There are no rows in this table

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

Одна
@Обучающая фраза
@Интент
а не может содержать меньше одной буквы.
Снимок экрана 2023-06-14 в 11.16.04.png
Если
@Обучающая фраза
@Интент
а не содержит в себе хотя бы один буквенный символ, то при
@Обучение
@Агент
а появится следующая ошибка:
Снимок экрана 2021-04-13 в 14.59.51.png
Тип подсветки
Ошибка валидации
Подсветка
Текст ошибки
1
Подсветка слота
Недостаточное количество букв во фразе обучающей выборки
Подсвечивается проблемный под-слот 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.
There are no rows in this table

5. Синтаксис в подслоте result слота Regular Expression

Символы и \ в
@Подслот
е
@result
@Слот
а
@Regular Expression
должны быть экранированы: им должен предшествовать символ \.
Если отсутствует экранирование символа \ в
@Подслот
е
@result
@Слот
а
@Regular Expression
при
@Обучение
@Агент
а появится следующая ошибка:
Снимок экрана 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
Тип подсветки
Ошибка валидации
Подсветка
Текст ошибки
1
Подсветка слота
Неэкранированные символы в под-слоте result слота Regular Expression
Подсвечивается проблемный под-слот result с неэкранированными символами ‘ или \.
and \ characters in result subslots must be escaped with a \ character. What to do: escape and \ characters with a \ character.
There are no rows in this table

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

Следующие
@Системные контекстные переменные
и
@Канальные переменные
недоступны для перезаписи:
Переменная
Смысл
Пример
Изменение пользователем через слоты
1
Уникальный идентификатор
@Агент
а в
@Платформа
1772
Невозможно
2
Уникальный идентификатор
@Чат
а в
@Платформа
1fab819e20c1e939ed14d7024d17653fb07a77dd
Невозможно
3
идентификатор
@Собеседник
а в
@Конечный канал
- синтетическая переменная, правила ее формирования задаются в настройках
@Коннектор
а к данному каналу
192929922|telegram
Невозможно
4
Уникальный идентификатор объекта платформы
@Канал Агента
.
28844
Невозможно
5
current_action_id
Номер текущего действия в дереве
@Сценарий
1
Невозможно
6
current_node_id
Номер текущей ноды в дереве
@Сценарий
1
Невозможно
7
date
Время получения последнего сообщения от
@Собеседник
= время получения последнего значения
@client_message
, но именно из
@Канал Агента
(а не в слоте
@Memory
)
2020-12-17 13:29:19
Невозможно
8
dialog_flag
Состояние
@Диалог
а
waiting
Невозможно
9
dialog_id
Идентификатор диалога
1fab819e20c1e939ed14d7024d17653fb07a77dd
Невозможно
10
modified_at
Время последней модификации
@Контекст Чата
12/17/2020 10:46:25
Невозможно
11
slot_id
Уникальный для платформы идентификатор последнего "выполненного"
@Слот
а в
@Сценарий
1
Невозможно
12
strategy_modified_at
Время создания
@Обученная модель агента
(время последнего переобучения)
12/17/2020 10:46:25
Невозможно
13
Процент уверенности модели
@NLU
при распознавании
@Реплика
@Интент
ом
0.4812345
Невозможно
14
error
Текст ошибки, полученный в результате выполнения слотов
@NLU
/
@Regular Expression
/
@Memory
no intent!
Невозможно
15
incoming_request_id
Уникальный для платформы идентификатор (токен)
@Входящий запрос
5944::80nyRRRjWAjQGfHkQJyJu6VWT8ToMpw79wi3m4e-x0g
Невозможно
16
intent
Уникальный для платформы идентификатор распознанного
@Интент
а
1
Невозможно
17
internal_event_id
Идентификатор отправленного события для действия по
@Сценарий
в конкретном
@Чат
е
3f1149b94f4b4222a8337a7643f0b745:1fab819e20c1e939ed14d7024d17653fb07a77dd
Невозможно
18
recover_action_id
переменная не используется
1
Невозможно
19
recover_node_id
переменная не используется
1
Невозможно
20
Адрес активного вебхука
@Входящий запрос
(слот
@Incoming Request
) в данной
@Обученная модель агента
https://admin.chatme.ai/api/incoming_request/29614::XnLlRoKPAnwLKNoFHUWPmzYkE1fT9pi-10ZkjcmDRBc
Невозможно
21
notification_count
Счетчик рассылок в конкретном
@Чат
е
123
Невозможно
22
notification_task_id
Принимает значение равное
@Идентификатор задачи на рассылку
,который в ответе (response) на
@Запрос на рассылку
от внешней системе
123e4567-e89b-12d3-a456-426655440000
Невозможно
23
notification_init_time
Датавремя начала выполнения
@Слот
а
@Notification
по UTC
Невозможно
24
notification_message_id
Когда рассылка отправляется,
@Конечный канал
возвращает id сообщения
любая строка в зависимости от мессенджера
Невозможно
25
notification_id
id рассылки, на данный момент = id
@Слот
а
@Notification
123
Невозможно
26
notification_status
@Технический статус рассылки
Возможные значения: ‘no_account’, ‘failed’, ‘sent’, ‘delivered’, ‘read’
'sent'
'delivered'
‘failed’
‘no_account’.
Невозможно
27
platform_chat_id
"Промежуточная версия” идентификатора
@Чат
а, предназначенная для сопоставления старых идентификаторов чатов с новыми идентификаторами
1fab819e20c1e939ed14d7024d17653fb07a77dd
Невозможно
28
chat_language
В переменной хранится распознанный язык
Russian
Невозможно
29
channel_raw_response
json-объект, запрос, который отправляет
@Конечный канал
в ответ на перевод на оператора/группу операторов
{
"code": 200,
"body": {
"result": "ok"
}
}
Невозможно
30
repeat_index
переменная используется для отражения номера текущей итерации цикла, нумерация итераций начинается с 0
Невозможно
31
email_status
Результ отправки письма
{ "task_id": <идентификатор задачи> }
Невозможно
There are no rows in this table
Переменная
Смысл
Формат
Изменение пользователем через слоты
1
channel_visitor_id
ID собеседника\чата в
@Конечный канал
текст: зависит от
@Конечный канал
Невозможно
2
channel_conversation_id
ID диалога\чата в
@Конечный канал
текст: зависит от
@Конечный канал
Невозможно
3
channel_visitor_firstname
Имя собеседника в
@Конечный канал
текст: зависит от
@Конечный канал
Невозможно
4
channel_visitor_lastname
Фамиия собеседника в
@Конечный канал
текст: зависит от
@Конечный канал
Невозможно
5
channel_visitor_account
Аккаунт собеседника в
@Конечный канал
текст: зависит от
@Конечный канал
Невозможно
6
channel_visitor_phone
Телефон собеседника в
@Конечный канал
текст: зависит от
@Конечный канал
Невозможно
7
channel_visitor_email
Емейл собеседника в
@Конечный канал
текст: зависит от
@Конечный канал
Невозможно
8
channel_visitor_source
источник, откуда пришел
@Собеседник
в
@Конечный канал
(например utm метки)
текст: зависит от
@Конечный канал
Невозможно
9
channel_visitor_auth
Данны авторизации
@Собеседник
а
текст: зависит от
@Конечный канал
Невозможно
10
channel_visitor_location
геолокация
@Собеседник
а
строка
Невозможно
11
channel_message_id
id сообщения в
@Chat2Desk
строка
Невозможно
12
channel_message_recipient
Бот в
@Chat2Desk
является оператором, в эту переменную записывается его id
строка
Невозможно
13
channel_webhook_url
адрес вебхука
@Канал Агента
строка
Невозможно
14
channel_webhook_token
токен из настроек
@Канал Агента
строка
Невозможно
There are no rows in this table
При попытке их перезаписи
@Слот
ах
@Incoming Request
,
@Slot Filling
,
@Memory
,
@External Request
при
@Обучение
@Агент
а появится следующая ошибка:
image.png
Текст ошибки: “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."

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

image.png
Тип подсветки
Ошибка валидации
Подсветка
Текст ошибки
1
Подсветка слота
Попытка перезаписи системных контекстных переменных, запрещенных для перезаписи
Подсвечивается проблемный слот 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.
There are no rows in this table

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
Тип подсветки
Ошибка валидации
Подсветка
Текст ошибки
1
Подсветка слота
Некорректное написание шаблонов в новом синтаксисе
Подсвечивается слот с некорректно составленным выражением или управляющей конструкцией
Error “<описание ошибки>” in expression “<проблемное выражение>” What to do: edit the expression. New syntax documentation:
There are no rows in this table

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

Если ранее в
@Слот
е
@Notification
был выбран и затем удален
@Канал Агента
, при
@Обучение
@Агент
а появится следующая ошибка:
image.png
Текст ошибки: ​Notification slots with invalid channel settings found: <id Слота>

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

image.png
Тип подсветки
Ошибка валидации
Подсветка
Текст ошибки
1
Подсветка слота
В слоте Notification использован удаленный канал
Подсвечивается проблемный слот Notification
A non-existing channel is set in the destination field (the channel might be deleted). ​What to do: choose an existing channel.
There are no rows in this table

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

Если в
@Слот
е
@Memory
,
@Slot Filling
,
@Incoming Request
,
@Synonym
или
@Notification
либо в
@Внешний запрос
указана
@Пользовательские контекстные переменные
, название которой не соответствует
требованиям
, при
@Обучение
@Агент
а появится следующая ошибка:
image.png
Текст ошибки:
Filling slots with invalid fields found: <slot_id>.

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

image.png
Тип подсветки
Ошибка валидации
Подсветка
Текст ошибки
1
Подсветка слота
Некорректное имя пользовательской переменной
Подсвечивается проблемный слот, содержащий переменную
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.
There are no rows in this table

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

Если в
@Ветка сценария
@Подслот
а
@Repeat Next
присутствуют другие
@Слот
ы
@Repeat
, будет выведена ошибка:
image.png
Текст ошибки:
One or more Repeat slots have errors.

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

image.png
Тип подсветки
Ошибка валидации
Подсветка
Текст ошибки
1
Подсветка слота
Вложенные циклы слота Repeat
Подсвечивается проблемный слот Repeat
Nested repeats are not allowed . ​What to do: delete nested slot Repeat.
There are no rows in this table

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.