Skip to main content
Version: 1.15.0

AIVector

Этот класс серверного API содержит методы для работы с механизмом Vector Collection Definition и позволяет записывать, удалять и искать контент в векторной базе данных.

Для начала работы укажите путь в Системном свойстве (sys_property) ain.vctrdb.url и токен авторизации в системном свойстве ain.vctrdb.token.

Для методов AIVector теги колонок имеют приоритет над динамическими тегами, поэтому при наличии тега колонки скрипт динамического тега с таким же именем выполнен не будет.

AIVector(name)


Используйте данный конструктор, чтобы создать экземпляр класса AIVector для указанного Vector Collection Definition. Параметр name – это значение, указанное в поле Name нужной записи коллекции Vector Collection Definition.

Параметры:

НаименованиеТипОбязательныйЗначение по умолчанию
nameStringДаНет

collect()


Используйте этот метод, чтобы удалить записи, которые перестали подходить условиям текущей коллекции или которые были удалены из экземпляра.

Возвращает:

ТипОписание
undefinedМетод не возвращает значения

Пример:

collect()
ss.importIncludeScript('AIVector');
const vector = new AIVector('my_collection');
vector.load();
vector.collect();

load()


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

Возвращает:

ТипОписание
undefinedМетод не возвращает значения

Пример:

load()
ss.importIncludeScript('AIVector');
const vector = new AIVector('my_collection');
vector.load();
vector.collect();

search(query, count, metadata, options)


Используйте этот метод для поиска релевантных записей в векторной базе данных по запросу.

Параметры:

НаименованиеТипОбязательныйЗначение по умолчаниюОписание
queryStringДаНетВведите текст, по которому будет осуществлен поиск в векторной базе данных.
countIntegerНет5Укажите количество наиболее подходящих записей, которые метод должен вернуть.
metadataObjectНет{}Укажите фильтр по метаданным записей.
optionsObjectНет{}Укажите дополнительные параметры поиска: переранжирование и настройка гибридного поиска. Допустимые ключи – rerank и alpha.

Ключи параметра options

Оба ключа необязательны. Если ключ не передан, используется значение, заданное в конфигурации векторной базы данных для этой коллекции.

КлючТипОбязательныйЗначение по умолчаниюОписание
rerankBooleanНетИз конфигурации коллекцииВключает переранжирование результатов реранкером для этого запроса. Реранкер уточняет порядок найденных записей по релевантности.
alphaNumberНетИз конфигурации коллекцииВес векторного поиска в гибридном поиске. Возможные значения: от 0 до 1.

Гибридный поиск сочетает векторный (по смыслу) и полнотекстовый (по словам) поиск. На полнотекстовую часть приходится оставшаяся доля, то есть (1 – alpha). Например, при alpha = 0.7 векторная часть влияет на итоговый скор с весом 0.7, а полнотекстовая – с весом 0.3.

Возвращает:

ТипОписание
Array of ObjectМетод возвращает массив объектов типа JSON. Смотрите пример ниже.
{
"key": "itsm_incident",
"metadata": {
"caller": "100000000000000000",
"id": "0593e0a4-fb69-11ee-a5b6-0242ac110002",
"record_id": "1571198114224389356",
"service": ""
},
"document": "Тема: Недоступен агент мониторинга на узле myNode.com\nОписание: Третье отключение за день\nУслуга: Virtual Host",
"distance": 0.39052727818489075
},
  • key – имя коллекции.
  • document – контент, содержащийся в векторной базе данных для этой записи.
  • metadata – тэги и их значения, а также ID документа в векторной базе данных.

Пример:

В параметре options включено переранжирование и задан вес векторной части гибридного поиска для конкретного запроса:

search() c options
ss.importIncludeScript('AIVector');

const vdb = new AIVector('itsm_incident');
const records = vdb.search('Мышка опять не работает', 3, {}, { rerank: true, alpha: 0.7 });

ss.info(records);