v.5.185.0#
Изменения
-
В состав LUNA PLATFORM добавлен новый локальный сервис
Docsдля раздачи статической документации.Новый сервис содержит всю техническую документацию по продукту и позволяет пользователю работать с ней без доступа к сети Интернет.
Адрес сервиса по умолчанию —
http://127.0.0.1:5320.В руководство по установке LUNA PLATFORM добавлен соответствующий раздел по запуску сервиса
Docs.Подробную информацию см. в разделе Описание сервисов руководства администратора.
-
Добавлена возможность массового обновления разрешений для нескольких токенов за один запрос.
Ранее для обновления разрешений каждого токена требовалось выполнять отдельный запрос, что создавало неудобства при массовой синхронизации (например, при изменении набора разрешений роли или назначении пользователю новой роли).
Теперь с помощью нового запроса update tokens permissions можно передать массив идентификаторов токенов (до 10 000) и единый набор разрешений, который будет установлен для всех указанных токенов. Разрешения полностью заменяются на переданные (не дополняются).
Для каждого токена возвращается результат: успешно обновлённые получают новый JWT-токен, ненайденные — статус
failedс ошибкой 41003 "Object not found". Отсутствие одного или нескольких токенов не блокирует обновление остальных. -
Добавлен новый запрос get restreams list, позволяющий получить постраничный список всех активных ретрансляций с необязательной фильтрацией по
account_id,stream_id,type,quality,sharedиpersistent.Ретрансляции, созданные до этого обновления, выводятся в списке без поля
account_id, поэтому фильтрация по этому полю к ним не применяется. -
Теперь в перечисленных ниже запросах фильтрация по полям с пользовательскими данными выполняется без учёта регистра символов:
- получение списков и лиц, а также подсчёта их количества (фильтр
user_data); - получение событий/обобщенных событий и статистики по ним (операторы
like/nlikeдля полейmetaиevent); - матчинг лиц, тел и обобщенных событий (фильтр
user_data, операторыlike/nlikeдля полейmetaиevent); - получение обработчиков и верификаторов по
description, а также в политикеmatching_policy(фильтрuser_data, операторыlike/nlikeдля поляmeta); - запросы ресурса
sender(фильтрuser_data, операторыlike/nlikeдля поляevent).
- получение списков и лиц, а также подсчёта их количества (фильтр
-
В запросы "attach/detach faces to the list" добавлен новый query-параметр
ignore.Если передано
ignore=1, не найденные лица изface_idsбольше не блокируют выполнение всего запроса: возвращается ответ с кодом состояния 200 и JSON-сообщением{"not_found_faces": ["..."]}, перечисляющим идентификаторы ненайденных лиц, а остальные запрошенные лица корректно прикрепляются/открепляются.Поведение по умолчанию (
ignore=0) не изменилось: при отсутствии любого из переданных лиц весь запрос завершается ошибкой с кодом 400. -
Добавлена новая группа настроек LAMBDA_BASE_IMAGE, позволяющая указать базовые Docker-образы, которые будут использоваться по умолчанию при создании lambda (если в запросе не передан явный параметр
base_image).Для каждого образа можно задать имя (name) и тег (tag). Если образы не заданы, используются встроенные образы LUNA PLATFORM.
Параметр
base_image, переданный в запросе создания lambda, всегда имеет приоритет над настройкой.См. Base image руководства разработчика.
-
Обновлены базовые Docker-образы для создания lambda.
Теперь они используют AlmaLinux 10, CUDA 12.4, обновлённую версию SDK (
v.5.39.0), а также обновлённые библиотекиpynvcodec/pyfsdkinterop(≥ 3.1.6).Важно! Lambda со старыми зависимостями могут перестать работать на новых базовых образах из-за перехода на новые CUDA и FSDK. Чтобы сохранить работоспособность такой lambda, зафиксируйте предыдущий базовый образ с помощью настройки
LAMBDA_BASE_IMAGE(см. изменение выше): тогда lambda будет продолжать работать на старом образе, если обновить её зависимости невозможно. -
Добавлена возможность отложить запуск lambda до завершения её инициализации.
Теперь при разработке lambda можно объявить функцию
checkWarmup. Она позволяет отложить начало приёма запросов до тех пор, пока lambda не будет полностью готова к работе (например, пока не загрузятся модели или не установятся соединения с БД). Таймаут на инициализацию задаётся в настройке LAMBDA_WARMUP_TIMEOUT. Если lambda не успеет подготовиться за это время, она будет автоматически перезапущена.Подробнее см. раздел Warmup check руководства разработчика.
Исправленные ошибки
-
В спецификацию OpenAPI запроса create handler добавлены отсутствующие значения по умолчанию для параметров
policies.detect_policy.face_quality.checks.Ранее эти значения не отображались, хотя фактически применялись. Теперь для параметров
estimateиthresholdкаждой проверки качества лица или изображения явно указано значение по умолчанию. -
Исправлена ошибка некорректного объединения настроек потоков из нескольких групп.
Ранее при привязке потока к нескольким группам некоторые настройки могли сбрасываться на значения по умолчанию вместо того, чтобы наследоваться из группы с более низким приоритетом.
Теперь настройки из всех групп объединяются корректно (в соответствии с правилами группировки потоков): параметры, не переопределённые группой с более высоким приоритетом, сохраняются из групп с более низким приоритетом.
-
Исправлена ошибка при выполнении запросов get stream(s) и count streams с фильтром
agent_id.Ранее поток с несколькими аналитиками, обрабатываемыми одним агентом, возвращался и подсчитывался несколько раз. Теперь такой поток возвращается и учитывается однократно.
-
Унифицирован формат параметра
autorestart.restartдля потоков и групп.Теперь в запросах create stream, put stream, create group и update group параметр принимает только целочисленные
0или1; передача логических значений (true/false) отклоняется с кодом состояния 400.Также в ответах запросов get streams и get groups параметр всегда возвращается в виде целого числа
0или1. Ранее сохранённые в базе данных логические значения автоматически преобразуются однократной миграцией. -
Исправлено некорректное описание параметра
data.rotationв запросах create stream и put stream для потоков с параметромorientation_strategy, установленным в значениеvideo_info.Ранее для стратегии
video_infoбыл указан параметрrotation, что создавало ложное впечатление о возможности его ручной настройки. Однако при выбореvideo_infoзаданное пользователем вращение не применяется: угол поворота всегда автоматически считывается из метаданных самого видеопотока.Теперь параметр
rotationбольше не отображается в спецификации указанных запросов дляvideo_info. Поведение для значенияstaticне изменилось. -
Исправлено сообщение об ошибке при указании недопустимого значения
orientation_strategyв запросах create stream и put stream для потоков, связанных с группой (черезgroup_id/group_name).В сообщении об ошибке теперь перечисляются оба допустимых значения:
staticиvideo_info(ранее указывалось толькоstatic). -
Исправлена ошибка, из-за которой значение
runtime_settings.optimal_batch_sizeв группах настроек LUNA_VIDEO_AGENT_HUMAN_TRACKER_SETTINGS и LUNA_VIDEO_AGENT_FACE_LANDMARKS5_ESTIMATOR_SETTINGS игнорировалось агентом.Теперь заданные значения учитываются на соответствующих этапах обработки, что обеспечивает стабильность и воспроизводимость результатов анализа видео.
-
Исправлена проблема, из-за которой фактическая частота кадров при декодировании RTSP-потоков была ниже заданной.
-
Исправлена ошибка, которая приводила к досрочному завершению ретрансляции потока.
Ранее непостоянная ретрансляция (с флагом
persistent=0) могла завершаться до истечения времени, заданного в LUNA_STREAMS_RETRANSLATOR_IGNORED_RESTREAM_TTL, даже при условии востребованности потока (наличия активных зрителей).Теперь непостоянная ретрансляция остаётся активной до тех пор, пока к ней подключены зрители. Остановка происходит только после того, как последний зритель отключится, — и только по истечении
LUNA_STREAMS_RETRANSLATOR_IGNORED_RESTREAM_TTLсекунд (по умолчанию 60) с этого момента. Если зрителей никогда не было, отсчёт TTL начинается с момента создания ретрансляции. -
Исправлена ошибка, при которой истекало время действия токена доступа к ретрансляции RTSP-потока, хотя сама ретрансляция ещё оставалась активной.
В результате пользователи при повторном подключении к потоку получали ошибку с кодом состояния 401.
Теперь срок действия токена автоматически обновляется на протяжении всего времени, пока ретрансляция активна.
-
Исправлена ошибка сборки Docker-образов lambda при использовании kaniko для S3-хранилищ с привязкой к региону.
Ранее при сборке образа использовался путь к архиву с кодом вида
s3://..., что приводило к ошибке 400 "InvalidArgument: Malformed signature credentials".Теперь архив передаётся в kaniko по временной HTTPS-ссылке.
-
Исправлено поведение при истечении времени создания образа lambda (IMAGE_CREATION_TIMEOUT): теперь задача сборки образа останавливается, а не продолжает выполняться после того, как lambda получила статус
failed.