Имена сущностей
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.
{
"measure_groups": {
...
},
"dimensions": {
...
},
"attribute_values": []
}Формат записи для переименования и добавления имён следующий:
{
"dimension": "ИМЯ ИЗМЕРЕНИЯ", # можно использовать только оригинальное имя, а не переименование
"attribute": "ИМЯ АТРИБУТА",
"value": "ЗНАЧЕНИЕ АТРИБУТА",
"new_values": [
"новое значение 1",
"новое значение 2"
]
}Приведём примеры:
"attribute_values": [
{
"dimension": "Медиастор_Филиал",
"attribute": "филиал",
"value": "Москва",
"new_values": [
"Столица",
"Москва"
]
},
{
"dimension": "Медиастор_Клиенты",
"attribute": "Наименование клиента",
"value": "«Красноярский завод цветных металлов имени В. Н. Гулидова»",
"new_values": [
"КЗЦМ",
"«Красноярский завод цветных металлов имени В. Н. Гулидова»"
]
}
]