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.
Параметры:
| Наименование | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| name | String | Да | Нет |
collect()
Используйте этот метод, чтобы удалить записи, которые перестали подходить условиям текущей коллекции или которые были удалены из экземпляра.
Возвращает:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения |
Пример:
ss.importIncludeScript('AIVector');
const vector = new AIVector('my_collection');
vector.load();
vector.collect();
load()
Используйте метод, чтобы обновить коллекции. В результате старые записи будут обновлены, а новые загружены.
Возвращает:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения |
Пример:
ss.importIncludeScript('AIVector');
const vector = new AIVector('my_collection');
vector.load();
vector.collect();
search(query, count, metadata, options)
Используйте этот метод для поиска релевантных записей в векторной базе данных по запросу.
Параметры:
| Наименование | Тип | Обязательный | Значение по умолчанию | Описание |
|---|---|---|---|---|
| query | String | Да | Нет | Введите текст, по которому будет осуществлен поиск в векторной базе данных. |
| count | Integer | Нет | 5 | Укажите количество наиболее подходящих записей, которые метод должен вернуть. |
| metadata | Object | Нет | {} | Укажите фильтр по метаданным записей. |
| options | Object | Нет | {} | Укажите дополнительные параметры поиска: переранжирование и настройка гибридного поиска. Допустимые ключи – rerank и alpha. |
Ключи параметра options
Оба ключа необязательны. Если ключ не передан, используется значение, заданное в конфигурации векторной базы данных для этой коллекции.
| Ключ | Тип | Обязательный | Значение по умолчанию | Описание |
|---|---|---|---|---|
| rerank | Boolean | Нет | Из конфигурации коллекции | Включает переранжирование результатов реранкером для этого запроса. Реранкер уточняет порядок найденных записей по релевантности. |
| alpha | Number | Нет | Из конфигурации коллекции | Вес векторного поиска в гибридном поиске. Возможные значения: от 0 до 1. Гибридный поиск сочетает векторный (по смыслу) и полнотекстовый (по словам) поиск. На полнотекстовую часть приходится оставшаяся доля, то есть |
Возвращает:
| Тип | Описание |
|---|---|
| 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 включено переранжирование и задан вес векторной части гибридного поиска для конкретного запроса:
ss.importIncludeScript('AIVector');
const vdb = new AIVector('itsm_incident');
const records = vdb.search('Мышка опять не работает', 3, {}, { rerank: true, alpha: 0.7 });
ss.info(records);