Имена сущностей
ViTalk работает с сущностями (показатели, атрибуты, значения атрибутов, измерения) в базе данных ViQube. Чтобы при запросе выделялись корректные сущности, необходимо, чтобы их можно было найти используя интуитивные обозначения на естественном языке. Рекомендации к именованию сущностей приведены здесь.
Однако бывают ситуации, при которых база данных уже настроена с не самыми подходящими именами сущностей и перенастройка БД может быть дорогостоящей. Также, на одну сущность может оказаться удобно ссылаться используя разные имена (Москва, столичный филиал, главный филиал).
Поэтому, для управления именами сущностей, используемыми в ViTalk, предоставляется несколько инструментов.
В разделе синонимы описано, как можно настроить глобальные (независимые от конкретных показателей, измерений и др. сущностей) синонимичные фразы, а также можно указать части сущностей, которые должны игнорироваться при их поиске в ViTalk (например, в измерении Медиастор_клиенты, можно срезать часть Медиастор_).
В данном разделе описана работа с конфигурационным файлом entity_names.json. Конфигурация в этом файле позволяет переименовать или задать альтернативные имена конкретным сущностям БД. Именно заданные имена будут использоваться ViTalk для распознавания присутствия сущностей в запросе на естественном языке.
Файл entity_names.json генерируется после заполнения файла metadata.json. В него попадают те сущности, которые не будут игнорироваться ViTalk в соответствии с конфигурацией в metadata.json.
Файл имеет следующую структуру:
{
"measure_groups": {
"ИМЯ_ГРУППЫ ПОКАЗАТЕЛЕЙ_1": {
"имя показателя": [
"новое имя показателя1",
"новое имя показателя2"
],
"имя показателя2": [
...
],
...
},
"ИМЯ_ГРУППЫ ПОКАЗАТЕЛЕЙ_2": {
..
},
...
}
},
"dimensions": {
"Имя измерения1" {
"vitalk_name": [
"Новое имя измерения1", ...
],
"attributes": {
"имя_атрибута1": [
"Новое имя атрибута1", ...
],
"имя_атрибута2": [...],
...
}
"roles": {
"Имя ГП": {
"Имя роли измерения1": ["новое имя роли"],
...
},
...
}
}
},
"attribute_values": []
}
Далее, опишем настройку имен разных типов сущностей:
Переименование показателей
Чтобы переименовать показатель или добавить новое имя, необходимо найти этот показатель в разделе measure_groups.
Например, мы хотим, чтобы показатель “отгрузка” также назывался “продажи”. Для этого достаточно добавить слово “продажи” в список имён.
"measure_groups": {
"Медиастор_Оборот": {
"Оборот": [
"Оборот"
],
"прибыль": [
"прибыль"
],
"отгрузка": [
"отгрузка",
"продажи" # добавлено новое имя
],
...
Переименование измерений, ролей измерений и атрибутов
Чтобы переименовать измерение, его атрибуты или роли, необходимо найти это измерение в разделе “dimensions”. Предположим, мы хотим, чтобы атрибут “филиал” измерения “Медиастор_филиал” можно было найти по слову офис.
В таком случае нам нужно найти атрибут “филиал” в поле “attributes” и дописать имя “офис”.
"dimensions": {
...,
"Медиастор_Филиал": {
"vitalk_name": [
"Медиастор_Филиал"
],
"attributes": {
"филиал": [
"филиал",
"офис" # добавлено новое имя
]
},
"roles": {
"Медиастор_Оборот": {
"Медиастор_Филиал": [
"Медиастор_Филиал"
]
},
"Медиастор_Дебиторка": {
"Медиастор_Филиал": [
"Медиастор_Филиал"
]
},
"Медиастор_Расходы": {
"Медиастор_Филиал": [
"Медиастор_Филиал"
]
}
}
},
Чтобы отредактировать имя роли измерения, нужно найти раздел с ролями для интересующей группы показателей (поле roles)
Поле vitalk_name позволяет отредактировать имя неролевого измерения.
Переименование значений атрибутов.
Чтобы переименовать значения атрибутов (фильтры), нужно самостоятельно дописать их в раздел attribute_values
Формат записи для переименования и добавления имён следующий:
Приведём примеры: