v.5.152.0#
Изменения
-
Добавлен новый сервис Serving, который позволяет добавлять внешние HTTP-сервисы в платформу, делая их доступными для пользователей через единый сервис API — без необходимости обращаться к ним напрямую.
Serving избавляет пользователя от ручной настройки балансировки нагрузки, маршрутизации и авторизации: достаточно зарегистрировать сервис. Все запросы проходят через API с проверкой авторизации (BasicAuth или BearerAuth). При этом в токене можно настроить черные и белые списки для ограничения доступа к сервисам.
Например, ранее для интеграции с LUNA Streams требовалось писать плагин. Теперь LUNA Streams можно использовать как пользовательский сервис, что значительно упрощает процесс.
Основные возможности:
- Регистрация пользовательских сервисов через сервис Admin (обязательно указываются уникальное имя и адрес(а), опционально можно задать описание и включить общий доступ к сервису).
- Динамическая конфигурация Traefik — Serving предоставляет HTTP-эндпоинт
/traefik_config, который возвращает актуальную конфигурацию балансировщика на основе зарегистрированных сервисов. Traefik предлагает множество настроек, включая интервал опроса HTTP-сервера, который по умолчанию составляет 5 секунд. Это означает, что после регистрации сервиса может потребоваться до 5 секунд, чтобы он стал доступен для прокси-запросов. - Проксирование запросов — после регистрации и обновления конфигурации Traefik пользователь может обращаться к своему сервису через запросы ресурса /service-proxy в сервисе
API. Все данные запроса будут отправлены на балансировщикTraefik, чтобы затем перенаправить их в целевой сервис.
Также в сервис
APIдобавлены настройки для взаимодействия с балансировщикомTraefik: BALANCER_ADDRESS и BALANCER_TIMEOUTS.См. подробную информацию в разделе Сервис Serving и Настройки сервиса Serving.
-
Добавлены новые разрешения, задаваемые в токене,
serviceиservice_usage.Разрешение
serviceуправляет доступом к ресурсу/6/serviceи позволяет создавать, просматривать и удалять пользовательские сервисы.Разрешение
service_usageуправляет доступом к проксированию запросов на пользовательские сервисы (/6/service/{service_name}/proxy) и позволяет настраивать белые и чёрные списки имён сервисов.См. описание запроса create token.
-
В запросы на получение списка объектов или изображений из папки (get list of folder images, get list of folder objects) добавлена поддержка пагинации.
Ранее при выполнении запроса все объекты возвращались за один раз. Если в папке находилось большое количество объектов (например, десятки тысяч), это создавало избыточную нагрузку на сервер и приводило к увеличению времени ожидания ответа.
Теперь объекты можно получать частями, указывая параметр
limit(максимальное количество объектов за один запрос) иcontinuation_token(токен для получения следующей страницы). Токен возвращается в заголовке ответаX-Luna-Continuation-Token.Пример использования:
-
Пользователь отправляет первый запрос с параметром
limit=100(получить первые 100 объектов). В ответе сервер возвращает первые 100 объектов и заголовокX-Luna-Continuation-Tokenсо значением токена (например, "1ueGcxLPRx1Tr/XYExHnhbYLgveDs2J/wm36Hy4vbOwM="). -
Чтобы получить следующие 100 объектов, пользователь делает второй запрос, добавляя параметр
continuation_tokenс тем значениемX-Luna-Continuation-Token, которое вернул сервер. -
Когда все объекты выданы, сервер возвращает пустой токен ("").
-
-
Добавлена возможность запуска сервиса Video Agent в автономном режиме (Autonomous Mode).
В этом режиме пользователь получает доступ к Video Agent для создания и управления потоками (см. запросы на ресурс /streams сервиса Video Agent), без использования сервиса Video Manager в составе платформы. Это позволяет использовать Video Agent в случаях, когда по каким-то причинам нет возможности использовать Video Manager.
Однако есть ряд ограничений по сравнению с работой через Video Manager: недоступны функциональности разделяемых потоков, шаблонов расписаний, распределения потоков между агентами, группировки потоков и автоматического перезапуска потоков при недоступности сервера, на котором запущен агент.
Также добавлены новые настройки для запуска агентов в автономном режиме:
LUNA_VIDEO_AGENT_SETTINGS.max_direct_streams— максимальное количество одновременных потоков, с которыми может работать агент напрямую (целое число ≥ 0). Значение по умолчанию: 2. Если установить 0, агент не будет обрабатывать потоки напрямую (т.е. автономный режим будет фактически отключён);LUNA_VIDEO_AGENT_STREAMS_AUTORESTARTER_INTERVAL— интервал автоматического перезапуска потоков;LUNA_VIDEO_AGENT_LOGS_CLEAR_INTERVAL— интервал очистки логов.
Подробнее см. раздел Автономный режим работы сервиса Video Agent.
-
В спецификацию OpenAPI для запроса create stream добавлено предупреждение: использование типа
streamс ссылкой на видеофайл может привести к непредвиденному поведению (например, бесконечной обработке файла).Для работы с видеофайлами предназначен тип
videofile. Если по каким-то причинам необходимо использовать типstream, установите параметрbehavior_parameters.eof_retry.attempt_count = 0, чтобы отключить попытки переподключения после достижения конца файла. -
Для сервиса
Video Agentдобавлена возможность переключения на предыдущую версию алгоритмовLivenessиDeepfakeчерез настройки в Configurator.Ранее для смены версии алгоритмов требовалось вручную редактировать конфигурационный файл внутри контейнера. Теперь управление версиями вынесено в настройки Configurator: в группы параметров LUNA_VIDEO_AGENT_LIVENESS_ESTIMATOR_SETTINGS и LUNA_VIDEO_AGENT_DEEPFAKE_ESTIMATOR_SETTINGS добавлен параметр
version. Параметр принимает целочисленные значения:0— используется версия алгоритма по умолчанию.Это упрощает настройку и тестирование различных версий алгоритмов. Подробнее см. в разделе Управление версиями нейросетей Liveness и Deepfake.
-
Расширен набор допустимых символов для названий потоков.
Ранее название могло содержать только латинские буквы, цифры, дефис и нижнее подчёркивание — теперь это ограничение снято.
См. описание запросов create stream, put stream и get streams.
-
В мониторинг сервиса
Streams Retranslatorдобавлены новые серии:retranslate_stream_startedиretranslate_stream_stopped, которые фиксируют начало и завершение процесса ретрансляции потока.См. подробную информацию в разделе "Monitoring" руководства разработчика.
-
Добавлена возможность создавать lambda в отключенном состоянии (без немедленного запуска).
Для этого в запросах create lambda, put lambda и import lambda добавлен параметр
disabled, который принимает следующие значения:false— лямбда загружается и сразу запускается (поведение по умолчанию);true— лямбда загружается в отключенном состоянии. Это позволяет сначала загрузить лямбду, убедиться, что она создана без ошибок, и только в нужный момент запустить её с помощью запросаswitch lambda.
-
Теперь пользователь может самостоятельно указывать, какие группы потоков будет обрабатывать его лямбда типа Agent.
Для этого в секции пользовательских настроек
user_configлямбды нужно передать параметрluna_video_agent_groupsс указанием нужных групп потоков — он переопределит значение LUNA_LAMBDA_AGENT_UNIT_GROUPS в Configurator.См. раздел User settings руководства разработчика и описание запросов create lambda, put lambda, import lambda и update lambda config.
-
Изменен способ установки зависимостей для разработки лямбд.
Теперь вместо ручной установки отдельных зависимостей рекомендуется использовать библиотеку
luna-lambda-package-helperс соответствующим расширением. Она содержит все необходимые библиотеки с правильно ограниченными версиями, что гарантирует корректную работу лямбды.Доступные расширения:
base— для образаlpa-lambda-base;lambda— для сервиса Lambda;agent— для образаlpa-lambda-agent-base;fsdk— для образаlpa-lambda-base-fsdk.
См. подробную информацию и примеры в разделе "Luna lambda tools" руководства разработчика.
-
Обновлен раздел Lambda - base image requirements документации разработчика Lambda: добавлено описание переменной окружения
FSDK_ROOTдля указания пути к FSDK. -
В сервис Lambda добавлена возможность использования uv в качестве инструмента для установки зависимостей.
Использование
uv— это более современный и производительный способ управления зависимостями, который может быть полезен при решении специфических задач (например, при проблемах совместимости сpoetry).Примечание. Способы установки зависимостей через
poetryиpipостаются доступными.См. раздел Python dependencies в руководстве разработчика сервиса Lambda.
-
В запрос
patch lambdaдобавлен параметрpod_count, позволяющий изменять количество подов лямбды (от 0 до 32).Ранее изменить этот параметр у существующей лямбды можно было только через запрос
put lambda, но без возможности задать значение 0. Если установитьpod_count: 0, лямбда будет остановлена. -
Начиная с текущей версии LUNA PLATFORM, создаваемые лямбды игнорируют неизвестные параметры конфигурации, что позволяет им корректно работать при появлении новых параметров в будущих обновлениях.
Однако ранее созданные лямбды типа Agent могут перестать работать, требуя обновлений. Для их обновления используйте запрос "update lambda".
-
В сервис Builder добавлен новый параметр LUNA_BUILDER_BUILD_SETTINGS.K8S_BUILD_TASK_LIMIT, ограничивающий количество задач сборки Docker-образов, обрабатываемых одним экземпляром Builder.
Если в системе запущено несколько экземпляров Builder, настройка применяется к каждому из них независимо (т.е. ограничивает задачи для конкретного экземпляра, а не суммарное количество задач в кластере). Допустимые значения — целое число от 1 до 128, значение по умолчанию —
10.См. раздел Kubernetes cluster requirements в руководстве разработчика сервиса Builder.
-
В LUNA Vector Search Module добавлена поддержка матчинга по обобщённым событиям (
general_events) — ранее эта возможность была доступна только для обычных событий (events).При создании коллекций с типом объектов
general_eventsнеобходимо явно указывать параметры дескрипторов:descriptor_lengthиplat_scaling(для коллекций типаeventsэти параметры задаются автоматически).Подробнее см. раздел Коллекции в документации LUNA Vector Search Module.
Исправленные ошибки
-
Исправлена ошибка при создании потока с указанием
group_name, если одно или несколько полей вlocationявно заданы какnull.Ранее такой запрос завершался с ошибкой с кодом
12022и детализированным описанием проблемного поля. -
Исправлена проблема, при которой в запросе на создание потока можно было передавать лишние параметры в
analytics.parameters.Такие параметры никак не влияли на обработку, но могли вводить в заблуждение. Теперь в объекте
analytics.parametersразрешены толькоparameters,callbacksиtargets. Передача любых других дополнительных полей приведёт к ошибке валидации. -
В сервисе Video Agent исправлена проблема слишком частой отправки обратной связи: ранее статус
in_progressотправлялся на каждый обрабатываемый кадр, что создавало избыточную нагрузку на систему. -
Исправлена проблема с некорректным отображением статуса потока.
Ранее если одна из аналитик была на паузе, а другие работали, статус всего потока иногда ошибочно показывался как
paused(вместоin_progress). Кроме того, когда все аналитики находились на паузе, статус потока циклически переключался междуin_progressиpaused. -
В группу настроек LUNA_LAMBDA_AGENT_UNIT_SETTINGS добавлены отсутствовавшие ранее параметры
retransmission_fallbackиmax_direct_streams.retransmission_fallbackвключает механизм ретрансляции потоков с использованиемMediaMtxдля расширения совместимости с форматами, которые ранее не поддерживались (например, WebRTC). См. раздел "Retransmission fallback" в руководстве разработчика сервиса Video Agent.max_direct_streamsопределяет максимальное количество одновременных потоков, которые обрабатывает агент в автономном режиме. Подробнее см. раздел Автономный режим работы сервиса Video Agent.
Эти настройки аналогичны одноимённым настройкам сервиса Video Agent.