Перейти к содержанию

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.