Перейти к основному содержимому

Пользовательские справочники

Наряду с системными сущностями и справочниками, Aimylogic предоставляет возможность создавать пользовательские справочники, чтобы бот мог извлекать из фразы клиента сущности, которые в них добавлены.

Сущности

Каждая сущность — это некий идентификатор записи в вашем справочнике. Для каждой записи нужно указать хотя бы один синоним на естественном языке, чтобы бот понимал, какие именно слова клиента относятся к этой сущности.

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

Как создать справочник

Управлять пользовательскими справочниками можно на странице Сущности в редакторе бота. Здесь находится список системных справочников и кнопка Создать справочник синонимов.

Нажатие на кнопку открывает окно создания справочника. Здесь нужно придумать имя для справочника.

предупреждение
В качестве имени справочника можно использовать только латинские буквы в нижнем регистре, цифры и знак подчеркивания.

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

Как использовать справочники

В примере на видео мы создали справочник с именем $product и добавили в него несколько сущностей. Например, сущность iphone с синонимами айфон и ай фон.

Теперь можно добавить в сценарий бота блок Интенты и указать Хочу заказать $product в качестве примера фразы.

То есть, если клиент напишет боту «Я хочу заказать у вас айфон», бот автоматически извлечет из этой фразы сущность product и создаст переменную $product со значением iphone. Эту переменную можно использовать так же, как и любую другую — например, запросить цену товара со своего сервера с помощью HTTP-запроса и вывести ее клиенту.

Как добавить сразу много сущностей

Вы можете добавлять сущности по одной или загрузить файл со списком сущностей и их синонимов.

Чтобы загрузить файл с сущностями, нажмите кнопку Загрузить справочник. В открывшемся окне вы можете добавить файл с сущностями, где в первом столбце должна быть указана сама сущность, а в остальных столбцах этой же строки — ее синонимы.

Есть ряд требований к файлу справочника:

  • формат файла может быть XLS или CSV;
  • размер файла не может превышать 1 Мбайт.

Все сущности, которые вы загрузите с помощью файла, отобразятся прямо в интерфейсе.

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

Управление вложенностью справочника

При загрузке справочника вы можете активировать опцию Добавлять значения сущностей в формате JSON.

По умолчанию эта опция деактивирована. В этом случае при загрузке справочника в формате CSV синонимы должны отделяться друг от друга запятыми:

macbook, mackbook, mac, mac book, macos

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

При использовании значений сущностей в формате JSON есть ряд дополнительных требований к записи строк:

  • В строке для сущности сначала указывается JSON со значениями сущности, а затем синонимы.
  • Если вы загружаете справочник в формате CSV, синонимы должны отделяться от объекта JSON точкой с запятой, а сами синонимы между собой отделяются запятыми.

Пример строки для CSV-файла:

{"name":"macbook","full":"MacBook Pro 13"}; mackbook, mac, mac book, macos

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

предупреждение
Если строки из файла отобразились на странице справочника некорректно, убедитесь, что вы активировали опцию Добавлять значения сущностей в формате JSON перед загрузкой файла и что корректно записали строки со значениями сущностей и синонимами в файле.

В сценарии можно обратиться к конкретному полю из значения сущности, указав его как $<имя справочника>.<имя поля>:

В данном случае бот будет искать во фразе клиента сущности из справочника $macbook. Когда он распознает во фразе слово mac как синоним сущности из этого справочника, он запишет его в переменную $macbook. Далее бот получит поле full из объекта JSON со значениями сущности, соответствующей данному синониму, и выведет в ответе следующее: