v.5.103.0#
Изменения
-
Добавлена валидация длины дескрипторов при создании обобщённых событий "create new general events".
Теперь при создании обобщенного события вместе с дескриптором, в БД происходит поиск последнего сохраненного дескриптора с таким же типом и версией, как у переданного в запросе:
- если найден, сравнивается его длина с длиной переданного дескриптора. При совпадении - успешно создается событие, в противном случае возвращается ответ с кодом состояния 409 и ошибкой 12034 "Descriptor has incorrect length";
- если не найден, переданный дескриптор становится эталоном для последующих проверок.
Например, если в БД ранее был сохранен дескриптор с "type_1", "version_1" и "lenght_1" и при попытке создать событие с дексриптором, у которого параметры:
- "type_1", "version_2", "lenght_1" - событие будет создано (разные версии);
- "type_2", "version_1", "lenght_1" - событие будет создано (разные типы);
- "type_1", "version_1", "lenght_2" - событие не будет создано (та же пара тип+версия, но разная длина) и вернется ошибка с кодом состояния 409.
Примечание. Проверка выполняется только при создании обобщенного события вместе с новым дескриптором. Если дескриптор уже существует в БД или не передаётся в запросе - валидация не применяется.
-
Добавлена поддержка шифрования дескрипторов для обобщенных событий.
См. раздел "Descriptors encryption" в руководстве разработчика.
-
Добавлена новая настройка
LUNA_API_CORS
, управляющая списком заголовков, разрешённых к чтению черезAccess-Control-Expose-Headers
в соответствии сCORS
.По умолчанию разрешены:
X-Luna-Meta-Rescale
— параметры масштабирования изображений, иX-Luna-Expiry-Date
— срок хранения данных.Это позволяет клиентским приложениям, работающим в браузере, получать дополнительные данные, которые могут быть полезны для обработки ответов от сервера. См. подробнее о настройке и принципах работы CORS.
-
Добавлен новый тип лямбды
agent
.Тип Agent-lambda предназначен для создания агентов с пользовательскими видеоаналитиками. Таким образом, это даёт возможность использовать не только стандартные аналитики (отслеживание людей и подсчет количества людей), но и собственные алгоритмы для видеоанализа, написанные на основе различных моделей нейронных сетей.
Agent-Lambda не может обрабатывать любые пользовательские запросы напрямую и функционирует исключительно в сочетании с сервисом Video Manager, который является обязательным компонентом для его работы. Также во время своей работы может взаимодействовать со следующими сервисами LUNA PLATFORM:
- Faces
- Sender
- Events
- Image Store
Примечание. Агенты могут быть внутренними (агенты, взаимодействующие напрямую с сервисами платформы) и внешними (агенты, взаимодействующие только через API и запущенные вне основного контура платформы, см. "внешний режим работы агента"). Agent-lambda на данный момент работает как внутренний агент.
Для создания лямбды с типом
agent
нужно предварительно перенести базовый образdockerhub.visionlabs.ru/luna/lpa-lambda-agent-base:<lambda_version>
в свой регистри по аналогии с другими типами лямбд.См. подробную информацию и примеры кода для Agent-lambda, в разделе "Agent lambda development" руководства разработчика сервиса Lambda.
Исправленные ошибки
-
Исправлена проблема, связанная с эстиматором Deepfake, у которого по умолчанию был включен упрощенный режим работы при отправке запросов к ресурсу
/sdk
. Теперь данный эстиматор по умолчанию использует режим работы 2 (с предварительной проверкой изображения), что соответствует документации.Для подробной информации о режимах работы эстиматора см. раздел "Deepfake".
-
Исправлено некорректное поведение при котором завершенным потокам (со статусами
done
/failure
), ошибочно присваивался статусpending
после остановки агента, обрабатывающего эти потоки. Теперь система сохраняет исходный статус завершенных потоков. -
Исправлено поведение, которое приводило к появлению ошибки с кодом состояния 500 при выполнении запроса "create stream", когда функция лицензии
analytics streams limit
была отключена. -
Аналитика отслеживания людей
human_tracking
теперь может корректно работать, если агент был запущен во "внешнем режиме".Ранее попытка запустить работу аналитики приводила к ошибке вида "Connect call failed".
Также исправлена некорректная работа аналитики
human_tracking
, при которой не удавалось создать поток, если параметрrate
, задающий частоту обработки кадров, отличался от значения по умолчанию. -
Исправлена ошибка, из-за которой различались ответы в зависимости от типа содержимого (
application/msgpack
илиapplication/json
), при отправке запросов на сравнение ("matching faces", "human body matching", "general events matching").Ранее при отправке одного и того же запроса с некорректными полями возвращались разные ошибки:
- для
application/json
— ошибка с кодом 12022 и детализированным описанием проблемного поля. - для
application/msgpack
— ошибка с кодом 12047 и общее сообщение без конкретики.
Теперь в этом случае для обоих типов содержимого возвращается единый код ошибки и одинаково детализированное сообщение (как было для
application/json
). - для