DATA
Вы можете задать значениям из справочника сущностей дополнительные справочные данные. Для этого заполните поле DATA для выбранной сущности.
В JAICP каждая сущность описывается через набор значений, которые она может принимать. Значения задаются через паттерны или синонимы.
Каждому значению можно задать дополнительные справочные данные, указав их в поле DATA в формате JSON или string.
Синтаксис
Для сущности Город добавим в справочник синонимы города Санкт-Петербург: Питер, СПб, Санкт-Петербург, Петербург. В поле DATA укажем дополнительные данные: официальное название города, страну и часовой пояс.
В формате JSON:
{
"name":"Санкт-Петербург",
"country":"Russia",
"timezone":"Europe/Moscow"
}В формате string:
Санкт-Петербург;Russia;Europe/MoscowПример использования
Рассмотрим пример онлайн магазина, который занимается продажей овощей.
В меню проекта перейдите на вкладку CAILA > Сущности > Мои сущности и создайте сущность vegetable с паттернами:
(картошк*|картох*|картофель)
(томат*|помидор*)Затем, в поле DATA для каждого паттерна добавьте дополнительные данные в формате JSON: уникальный идентификатор продукта и его основное название.
- для паттерна
(картошк*|картох*|картофель):
{
"product_id": 1,
"unique_name": "Картофель"
}- для паттерна
(томат*|помидор*):
{
"product_id": 2,
"unique_name": "Томат"
}Теперь напишем сценарий. Клиент посылает сообщение, в котором намеревается заказать определенный продукт. Бот выведет сообщение о заказе желаемого продукта с помощью $parseTree._Product.unique_name. Затем будет сделан запрос к сайту http://example-service/order с уникальным id продукта.
theme: /
state: Start
q!: $regex</start>
a: Здравствуйте! В нашем магазине представлен широкий ассортимент продуктов. Что вы хотите?
state: Vegetable
q!: хочу заказать @vegetable
a: Ок, заказываю вам {{$parseTree._Product.unique_name}}
script:
$http.post("http://example-service/order", {"productId": $parseTree._Product.product_id});