Download OpenAPI specification:Download
API VisionLabs Luna Platform 5. Версия API – 6.
Спецификация OpenAPI – единственный документ, содержащий актуальную информацию о API сервиса.
Спецификация может использоваться:
Все документы и код, созданные с использованием этой спецификации, могут содержать неточности, и их следует тщательно проверять.
Спецификацию OpenAPI можно получить с помощью ресурса /docs/spec. Заголовок "Accept" должен принимать значение "application/x-yaml".
Позволяет получить версии всех сервисов.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "LUNA PLATFORM": {
- "major": 0,
- "minor": 0,
- "patch": 0
}, - "luna-api": {
- "api": 5,
- "major": 3,
- "minor": 1,
- "patch": 2
}, - "luna-events": {
- "api": 1,
- "major": 1,
- "minor": 0,
- "patch": 5
}, - "luna-faces": {
- "api": 2,
- "major": 2,
- "minor": 3,
- "patch": 9
}, - "luna-image-store-bodies-samples": {
- "api": 1,
- "major": 2,
- "minor": 1,
- "patch": 11
}, - "luna-image-store-faces-samples": {
- "api": 1,
- "major": 2,
- "minor": 1,
- "patch": 10
}, - "luna-image-store-images": {
- "api": 1,
- "major": 2,
- "minor": 1,
- "patch": 13
}, - "luna-handlers": {
- "api": 1,
- "major": 1,
- "minor": 0,
- "patch": 0
}, - "luna-tasks": {
- "api": 1,
- "major": 1,
- "minor": 0,
- "patch": 13
}, - "luna-matcher-proxy": {
- "api": 1,
- "major": 1,
- "minor": 0,
- "patch": 0
}, - "luna-remote-sdk": {
- "api": 1,
- "major": 1,
- "minor": 0,
- "patch": 0
}, - "luna-lambda": {
- "api": 1,
- "major": 1,
- "minor": 0,
- "patch": 0
}
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Создать аккаунт.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта для создания нового аккаунта. |
Content-Type | string Value: "application/json" Тип содержимого – |
login required | string (login) [ 3 .. 128 ] characters ^[a-z0-9_\-\.]+@[a-z]+\.[a-z]{2,}$ Электронная почта аккаунта. |
password required | string (password) [ 3 .. 128 ] characters ^.{3,128}$ Пароль аккаунта. |
account_type required | string (account_type_for_creation) Enum: "advanced_user" "user" Тип аккаунта:
|
description | string (account_description) <= 128 characters Default: "" Описание аккаунта. |
{- "login": "mylogin@gmail.com",
- "password": "string",
- "account_type": "advanced_user",
- "description": "main admin account"
}
{- "account_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "url": "/6/account",
}
Позволяет получить параметры для ресурса.
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта для создания нового аккаунта. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить информацию об аккаунте.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" url = f"{baseUri}/account" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=" } response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "account_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "login": "mylogin@gmail.com",
- "account_type": "advanced_user",
- "description": "main admin account",
- "create_time": "2018-08-11T09:11:41.674Z",
- "last_update_time": "2018-08-11T09:11:41.674Z"
}
Позволяет обновить аккаунт. Должно быть указано как минимум одно поле.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
login | string (login) [ 3 .. 128 ] characters ^[a-z0-9_\-\.]+@[a-z]+\.[a-z]{2,}$ Электронная почта аккаунта. |
password | string (password) [ 3 .. 128 ] characters ^.{3,128}$ Пароль аккаунта. |
account_type | string (account_type_for_creation) Enum: "advanced_user" "user" Тип аккаунта:
|
description | string (account_description) <= 128 characters Default: "" Описание аккаунта. |
{- "login": "mylogin@gmail.com",
- "password": "string",
- "account_type": "advanced_user",
- "description": "main admin account"
}
{- "error_code": 12022,
- "desc": "Bad/incomplete input data",
- "detail": "Failed to validate input json. Path: 'extra_field', message: 'extra fields not permitted'"
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Создать токен.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
description | string (token_description) <= 128 characters Default: "" Описание токена. |
expiration_time required | string or null <date-time> Время окончания действия токена в формате RFC 3339. Значение |
required | object (permissions) Разрешения для токена. Значение |
visibility_area | string (visibility_area) Default: "all" Enum: "account" "all" Задает видимость данных для токена.
|
{- "description": "main account token",
- "expiration_time": "2050-11-11T11:11:11.111+03:00",
- "permissions": {
- "face": [
- "creation",
- "view",
- "modification",
- "deletion",
- "matching"
], - "list": [
- "creation",
- "view",
- "modification",
- "deletion"
], - "event": [
- "creation",
- "view",
- "matching"
], - "attribute": [
- "creation",
- "view",
- "modification",
- "deletion",
- "matching"
], - "handler": [
- "creation",
- "view",
- "modification",
- "deletion"
], - "verifier": [
- "creation",
- "view",
- "modification",
- "deletion"
], - "task": [
- "creation",
- "view",
- "modification",
- "deletion"
], - "face_sample": [
- "creation",
- "view",
- "deletion"
], - "body_sample": [
- "creation",
- "view",
- "deletion"
], - "image": [
- "creation",
- "view",
- "deletion"
], - "object": [
- "creation",
- "view",
- "deletion"
], - "token": [
- "creation",
- "view",
- "modification",
- "deletion"
], - "resources": [
- "iso",
- "sdk",
- "liveness"
], - "emit_events": {
- "allowed": 1,
- "white_list": null,
- "black_list": null
}, - "lambdas": [
- "creation",
- "view",
- "modification",
- "deletion"
]
}, - "visibility_area": "all"
}
{- "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbklkIjoiN2Q0MjYwNmEtZmM3NS00NDU4LWE3OGUtOWYzNGM2MjIyZWQyIiwiZXhwaXJhdGlvblRpbWUiOm51bGwsImFjY291bnRJZCI6IjdkYjUzNThiLWZjMzMtNDIwZC1hYTgzLTk5YTRkOWY0MGM0MSJ9.kDL5oLTJaxKyYbwmKV1lejxrzsFoFzx5VOzvTR-i90k",
- "token_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "url": "/6/tokens/557d54ec-29ad-4f3c-93b4-c9092ef12515",
}
Позволяет получить информацию о токенах.
page | integer >= 1 Default: 1 Номер страницы. |
page_size | integer [ 1 .. 1000 ] Default: 10 Количество элементов на странице. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
create_time__lt | string <date-time> (time) Example: create_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра |
create_time__gte | string <date-time> (time) Example: create_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create token url = f"{baseUri}/tokens" headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} payload = {"permissions": {"face": ["view"]}, "description": "description"} requests.post(url, json=payload, headers=headers) headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=" } url = f"{baseUri}/tokens" response = requests.get(url, headers=headers, params={"page": 1, "page_size": 10}) print(response.status_code) print(response.json())
{- "tokens": [
- {
- "description": "main account token",
- "expiration_time": "2050-11-11T11:11:11.111+03:00",
- "permissions": {
- "face": [ ],
- "list": [ ],
- "event": [ ],
- "attribute": [ ],
- "handler": [ ],
- "verifier": [ ],
- "task": [ ],
- "face_sample": [ ],
- "body_sample": [ ],
- "image": [ ],
- "object": [ ],
- "token": [
- "view"
], - "resources": [ ],
- "emit_events": {
- "allowed": 1,
- "white_list": null,
- "black_list": null
}, - "lambdas": [ ]
}, - "visibility_area": "account",
- "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbklkIjoiN2Q0MjYwNmEtZmM3NS00NDU4LWE3OGUtOWYzNGM2MjIyZWQyIiwiZXhwaXJhdGlvblRpbWUiOm51bGwsImFjY291bnRJZCI6IjdkYjUzNThiLWZjMzMtNDIwZC1hYTgzLTk5YTRkOWY0MGM0MSJ9.kDL5oLTJaxKyYbwmKV1lejxrzsFoFzx5VOzvTR-i90k",
- "token_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "account_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "create_time": "2018-08-11T09:11:41.674Z",
- "last_update_time": "2018-08-11T09:11:41.674Z"
}
]
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет обновить токен. Нельзя обновить часть токена, нужно задать все поля для токена.
token_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 8950722f-3fd4-4223-b48f-03f95f0e8dfb Идентификатор токена. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
description | string (token_description) <= 128 characters Default: "" Описание токена. |
expiration_time required | string or null <date-time> Время окончания действия токена в формате RFC 3339. Значение |
required | object (permissions) Разрешения для токена. Значение |
visibility_area | string (visibility_area) Default: "all" Enum: "account" "all" Задает видимость данных для токена.
|
{- "description": "main account token",
- "expiration_time": "2050-11-11T11:11:11.111+03:00",
- "permissions": {
- "face": [ ],
- "list": [ ],
- "event": [ ],
- "attribute": [ ],
- "handler": [ ],
- "verifier": [ ],
- "task": [ ],
- "face_sample": [ ],
- "body_sample": [ ],
- "image": [ ],
- "object": [ ],
- "token": [
- "view"
], - "resources": [ ],
- "emit_events": {
- "allowed": 1,
- "white_list": null,
- "black_list": null
}, - "lambdas": [ ]
}, - "visibility_area": "account"
}
{- "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbklkIjoiN2Q0MjYwNmEtZmM3NS00NDU4LWE3OGUtOWYzNGM2MjIyZWQyIiwiZXhwaXJhdGlvblRpbWUiOm51bGwsImFjY291bnRJZCI6IjdkYjUzNThiLWZjMzMtNDIwZC1hYTgzLTk5YTRkOWY0MGM0MSJ9.kDL5oLTJaxKyYbwmKV1lejxrzsFoFzx5VOzvTR-i90k",
- "token_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "url": "/6/tokens/557d54ec-29ad-4f3c-93b4-c9092ef12515",
}
Позволяет получить токен по его идентификатору.
token_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 8950722f-3fd4-4223-b48f-03f95f0e8dfb Идентификатор токена. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=" } url = f"{baseUri}/tokens" payload = {"permissions": {"face": ["view"]}, "description": "description", "expiration_time": None} tokenId = requests.post(url, json=payload, headers=headers).json()["token_id"] url = f"{baseUri}/tokens/{tokenId}" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "description": "main account token",
- "expiration_time": "2050-11-11T11:11:11.111+03:00",
- "permissions": {
- "face": [ ],
- "list": [ ],
- "event": [ ],
- "attribute": [ ],
- "handler": [ ],
- "verifier": [ ],
- "task": [ ],
- "face_sample": [ ],
- "body_sample": [ ],
- "image": [ ],
- "object": [ ],
- "token": [
- "view"
], - "resources": [ ],
- "emit_events": {
- "allowed": 1,
- "white_list": null,
- "black_list": null
}, - "lambdas": [ ]
}, - "visibility_area": "account",
- "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbklkIjoiN2Q0MjYwNmEtZmM3NS00NDU4LWE3OGUtOWYzNGM2MjIyZWQyIiwiZXhwaXJhdGlvblRpbWUiOm51bGwsImFjY291bnRJZCI6IjdkYjUzNThiLWZjMzMtNDIwZC1hYTgzLTk5YTRkOWY0MGM0MSJ9.kDL5oLTJaxKyYbwmKV1lejxrzsFoFzx5VOzvTR-i90k",
- "token_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "account_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "create_time": "2018-08-11T09:11:41.674Z",
- "last_update_time": "2018-08-11T09:11:41.674Z"
}
Позволяет удалить токен по его идентификатору.
token_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 8950722f-3fd4-4223-b48f-03f95f0e8dfb Идентификатор токена. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=" } url = f"{baseUri}/tokens" payload = {"permissions": {"face": ["view"]}, "description": "description", "expiration_time": None} tokenId = requests.post(url, json=payload, headers=headers).json()["token_id"] url = f"{baseUri}/tokens/{tokenId}" response = requests.delete(url, headers=headers) print(response.status_code)
{- "error_code": 12012,
- "desc": "Bad/incomplete input data",
- "detail": "Bad query parameters 'account_id'",
}
Позволяет получить параметры для ресурса.
token_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 8950722f-3fd4-4223-b48f-03f95f0e8dfb Идентификатор токена. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет проверить аккаунт, логин с паролем или токен.
account_id
, вернется account_type
login
/password
, вернутся account_id
и account_type
token
, вернутся account_type
и permissions
для токенаLuna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Value: "application/json" Тип содержимого – |
login required | string (login) [ 3 .. 128 ] characters ^[a-z0-9_\-\.]+@[a-z]+\.[a-z]{2,}$ Электронная почта аккаунта. |
password required | string (password) [ 3 .. 128 ] characters ^.{3,128}$ Пароль аккаунта. |
{- "login": "mylogin@gmail.com",
- "password": "string"
}
{- "account_type": "advanced_user",
- "permissions": {
- "face": [ ],
- "list": [ ],
- "event": [ ],
- "attribute": [ ],
- "handler": [ ],
- "verifier": [ ],
- "task": [ ],
- "face_sample": [ ],
- "body_sample": [ ],
- "image": [ ],
- "object": [ ],
- "token": [
- "view"
], - "resources": [ ],
- "emit_events": {
- "allowed": 1,
- "white_list": null,
- "black_list": null
}, - "lambdas": [ ]
}, - "account_id": "string"
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет обнаруживать лица и/или тела и оценивать атрибуты на входных изображениях. После выполнения запроса полученные данные не сохраняются в базе данных или Image Store, а только возвращаются в ответе.
Порядок входящих изображений соответствует порядку элементов в выходном JSON.
Если входящее изображение повреждено, то для него возвращается ошибка. Обработка остальных изображений продолжается в обычном режиме.
Примечания к входящим данным:
image_type | integer Default: 0 Enum: 0 1 2 Тип входного изображения. 0 – необработанное изображение, 1 – биометрический образец лица, 2 – биометрический образец тела. | ||||||||
estimate_people_count | integer (int01) Default: 0 Enum: 0 1 Следует ли выполнять оценку количества людей на изображении. ⚠ Для выполнения оценки требуется включить функцию подсчета лиц в лицензии. | ||||||||
multiface_policy | integer (multiface_policy) Default: 1 Enum: 0 1 2 Политика детекции нескольких лиц:
| ||||||||
detect_face | integer (detect_face) Default: 0 Enum: 0 1 Следует ли детектировать лица на изображении. | ||||||||
detect_body | integer (detect_body) Default: 0 Enum: 0 1 Следует ли детектировать тела на изображении. | ||||||||
estimate_head_pose | integer (estimate_head_pose) Default: 0 Enum: 0 1 Следует ли оценивать положение головы на изображении. Положение головы представлено углом наклона головы вверх/вниз (pitch), углом отклонения головы вправо/влево (roll), углом поворота головы вправо/влево (yaw). Не поддерживается с биометрическими образцами (см. параметр | ||||||||
estimate_emotions | integer (estimate_emotions) Default: 0 Enum: 0 1 Следует ли оценивать эмоции на изображении. Оценивается вероятностная оценка следующих эмоций: "anger" (злость), "disgust" (отвращение), "fear" (страх), "happiness" (счастье), "sadness" (грусть), "surprise" (удивление), "neutral" (нейтральность). | ||||||||
estimate_mask | integer (estimate_mask) Default: 0 Enum: 0 1 Следует ли оценивать состояние маски на лице. Оценивается вероятностная оценка следующих состояний маски: "medical_mask" (медицинская маска), "missing" (маска отсутствует), "occluded" (лицо перекрыто). Вероятностная оценка с наивысшим значением возвращается в параметре "predominant mask". | ||||||||
estimate_glasses | integer (estimate_glasses) Default: 0 Enum: 0 1 Следует ли оценивать очки на изображении. Возвращается один из следующих параметров: "eyeglasses" (очки), "sunglasses" (солнечные очки), "no_glasses" (очки отсутствуют). | ||||||||
estimate_liveness | integer (int01) Default: 0 Enum: 0 1 Следует ли оценивать Liveness на изображении. Оцениваются вероятностные оценки "quality" (качество) и "score" (точность определения). На основе этих вероятностных оценок возвращается следующий результат: "real" (проверка выявила, что человек является реальным), "spoof" (проверка выявила, что человек не является реальным), "unknown" (результат проверки неизвестен). Для выполнения этой оценки используется Liveness. См. руководство администратора для более подробной информации. ⚠ Требуются фотографии с веб-камеры или селфи. В противном случае результат может быть неверным. ⚠ Для выполнения оценки Liveness требуется включить функцию лицензирования Liveness. Оценка Liveness не поддерживается для биометрических образцов. Параметр | ||||||||
estimate_landmarks68 | integer (detect_landmarks68) Default: 0 Enum: 0 1 Следует ли обнаруживать на изображении 68 контрольных точек лица. Не поддерживается с биометрическими образцами (см. параметр | ||||||||
estimate_landmarks5 | integer (detect_landmarks5) Default: 0 Enum: 0 1 Следует ли определять на изображении пять основных контрольных точек лица. Не поддерживается с биометрическими образцами (см. параметр | ||||||||
estimate_quality | integer (estimate_quality) Default: 0 Enum: 0 1 Следует ли оценивать качество входного изображения лица. Оценивается каждый из следующих параметров: dark (степень того, что фото не затемнено), light (степень того, что фото не засвечено), blurriness (степень размытости), illumination (степень равномерности освещения), specularity (степень отсутствия бликов). Коэффициент качества оценивается для каждой вероятностной оценки. Его значение находится в диапазоне [0..1], где 0 соответствует низкому качеству, а 1 – высокому качеству. Влияние неравномерного освещения или большого количества бликов на алгоритмы распознавания лиц незначительно. | ||||||||
estimate_gaze | integer (estimate_gaze) Default: 0 Enum: 0 1 Следует ли оценивать направление взгляда на изображении. Взгляд представлен углом наклона взгляда вверх/вниз (pitch) и углом поворота взгляда вправо/влево (yaw) для обоих глаз одновременно. Не поддерживается с биометрическими образцами (см. параметр | ||||||||
estimate_eyes_attributes | integer (estimate_eyes_attributes) Default: 0 Enum: 0 1 Следует ли оценивать атрибуты глаз на изображении. Оцениваются параметры "right_eye" и "left_eye", которые содержат параметры "state" (opened (глаза открыты), closed (глаза закрыты) или occluded (глаза чем-то перекрыты)) и "iris_landmarks" (контрольные точки радужной оболочки). | ||||||||
estimate_mouth_attributes | integer (estimate_mouth_attributes) Default: 0 Enum: 0 1 Следует ли оценивать атрибуты рта на изображении. Оценивается каждая из следующих вероятностных оценок: "opened" (рот открыт), "occluded" (рот чем-то перекрыт), "smile" (улыбка), "score" (точность определения). | ||||||||
estimate_face_descriptor | integer (extract_descriptor) Default: 1 Enum: 0 1 Example: estimate_face_descriptor=1 Следует ли создавать биометрические шаблоны лиц. | ||||||||
estimate_basic_attributes | integer (extract_basic_attributes) Default: 0 Enum: 0 1 Следует ли извлекать базовые атрибуты лица (пол, возраст, этническая принадлежность). | ||||||||
estimate_body_descriptor | integer (extract_descriptor) Default: 1 Enum: 0 1 Example: estimate_body_descriptor=1 Следует ли создавать биометрические шаблоны тел. | ||||||||
estimate_upper_body | integer (int01) Default: 0 Enum: 0 1 Следует ли выполнять оценку атрибутов верхней части тела на изображении (верхняя одежда, цвет одежды, длина рукавов). | ||||||||
estimate_lower_body | integer (int01) Default: 0 Enum: 0 1 Следует ли выполнять оценку атрибутов нижней части тела на изображении (нижняя одежда, обувь). | ||||||||
estimate_accessories | integer (int01) Default: 0 Enum: 0 1 Следует ли оценивать аксессуары на теле человека на изображении (наличие рюкзака). | ||||||||
estimate_body_basic_attributes | integer (int01) Default: 0 Enum: 0 1 Следует ли оценивать базовые атрибуты тела на изображении (пол, возраст). | ||||||||
estimate_body_warp | integer (estimate_body_warp) Default: 0 Enum: 0 1 Следует ли создавать биометрический образец тела в формате Base64. | ||||||||
estimate_face_warp | integer (estimate_face_warp) Default: 0 Enum: 0 1 Следует ли создавать биометрический образец лица в формате Base64. | ||||||||
aggregate_attributes | integer (aggregate_attributes) Следует ли агрегировать следующие параметры:
Агрегация будет выполняться только в том случае, если включены соответствующие параметры для оценки перечисленных выше параметров. Если параметр задан, все оцененные параметры каждого изображения будут агрегированы и отображены в поле В противном случае все оцененные параметры каждого изображения будут отображаться в поле | ||||||||
pitch_threshold | integer (pitch_threshold) [ 0 .. 180 ] Example: pitch_threshold=180 Максимальное отклонение угла наклона головы вверх/вниз (pitch) от 0. Если оценочное значение равно или меньше порогового значения, изображение фильтруется. Если фильтрация по углу наклона головы вверх/вниз (pitch) не требуется, то необходимо удалить этот параметр из запроса или установить значение параметра равным 180. Когда значение установлено на "0", все изображения фильтруются. | ||||||||
roll_threshold | integer (roll_threshold) [ 0 .. 180 ] Example: roll_threshold=180 Максимальное отклонение угла отклонения головы вправо/влево (roll) от 0. Если расчетное значение равно или меньше порогового значения, изображение фильтруется. Если фильтрация по углу наклона головы в сторону не требуется, то необходимо удалить этот параметр из запроса или установить значение параметра равным 180. Когда значение установлено на "0", все изображения фильтруются. | ||||||||
yaw_threshold | integer (yaw_threshold) [ 0 .. 180 ] Example: yaw_threshold=180 Максимальное отклонение угла поворота головы вправо/влево (yaw) от 0. Если оценочное значение равно или меньше порогового значения, изображение фильтруется. Если фильтрация по углу наклона в сторону не требуется, необходимо удалить этот параметр из запроса или установить значение параметра равным 180. Когда значение установлено на "0", все изображения фильтруются. | ||||||||
score_threshold | number (score_threshold) [ 0 .. 1 ] Default: 0 Example: score_threshold=0.7 Порог оценки качества биометрического шаблона. Чем выше показатель качества изображения, тем лучше результаты извлечения биометрического шаблона. Все атрибуты с показателем качества ниже порогового значения будут проигнорированы (и не сохранены в БД). Функция будет работать как обычно со всеми остальными биометрическими шаблонами (если они оставлены). Проконсультируйтесь со специалистами VisionLabs о рекомендуемом значении этого параметра. Примечание. Этот параметр не связан с качеством изображения, оцененным в запросе на детекцию (параметром | ||||||||
mask_states | Array of integers (mask_states) non-empty Items Enum: 1 2 3 Example: mask_states=2&mask_states=3 Фильтр по состояниям маски.
| ||||||||
liveness_states | Array of integers (liveness_states) non-empty Items Enum: 0 1 2 Example: liveness_states=1 Фильтр по состояниям Liveness.
| ||||||||
use_exif_info | integer Default: 1 Enum: 0 1 Example: use_exif_info=1 Следует ли автоматически поворачивать изображение на основе данных EXIF. Обрабатываемое изображение должно иметь EXIF данные, иначе автоматическая ориентация выполняться не будет. Не влияет на изображения в формате tiff (они всегда автоматически ориентированы). Не поддерживается с биометрическими образцами (см. параметры | ||||||||
extract_exif | integer (extract_exif) Default: 0 Enum: 0 1 Следует ли извлекать метаинформацию EXIF из входных изображений JPEG. Точные выходные данные могут отличаться из-за отсутствия обязательных требований по записи данных как к программному обеспечению, так и к цифровым камерам. Данная функция будет анализировать теги и выводить их имена и значения в том виде, в котором они предоставлены. Для более подробной информации см. спецификацию JEITA CP-3451. |
Accept | string Enum: "application/json" "application/msgpack" Заголовок запроса Accept. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Enum: "application/json" "multipart/form-data" "image/jpeg" "image/png" "image/bmp" "image/x-portable-pixmap" "image/tiff" "image/x-jpeg-base64" "image/x-png-base64" "image/x-bmp-base64" "image/x-tiff-base64" "image/x-portable-pixmap-base64" |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
{- "images_estimations": [
- {
- "filename": "raw image",
- "exif": {
- "make": "Apple",
- "model": "iPhone 11",
- "gps": {
- "latitude": "55.0, 45.0, 18.29",
- "longitude": "37.0, 39.0, 16.32"
}, - "software": "13.6.1",
- "orientation": 6
}, - "estimations": [
- {
- "face": {
- "detection": {
- "rect": {
- "x": 71,
- "y": 45,
- "width": 134,
- "height": 178
}, - "landmarks5": [
- [
- 25,
- 25
], - [
- 83,
- 83
], - [
- 47,
- 47
], - [
- 33,
- 33
], - [
- 82,
- 82
]
], - "landmarks68": [
- [
- 1,
- 1
], - [
- 1,
- 1
], - [
- 4,
- 4
], - [
- 8,
- 8
], - [
- 14,
- 14
], - [
- 23,
- 23
], - [
- 33,
- 33
], - [
- 43,
- 43
], - [
- 60,
- 60
], - [
- 78,
- 78
], - [
- 96,
- 96
], - [
- 112,
- 112
], - [
- 124,
- 124
], - [
- 132,
- 132
], - [
- 135,
- 135
], - [
- 137,
- 137
], - [
- 138,
- 138
], - [
- 1,
- 1
], - [
- 8,
- 8
], - [
- 17,
- 17
], - [
- 26,
- 26
], - [
- 35,
- 35
], - [
- 59,
- 59
], - [
- 73,
- 73
], - [
- 86,
- 86
], - [
- 100,
- 100
], - [
- 113,
- 113
], - [
- 47,
- 47
], - [
- 45,
- 45
], - [
- 44,
- 44
], - [
- 43,
- 43
], - [
- 37,
- 37
], - [
- 42,
- 42
], - [
- 47,
- 47
], - [
- 54,
- 54
], - [
- 61,
- 61
], - [
- 14,
- 14
], - [
- 20,
- 20
], - [
- 29,
- 29
], - [
- 36,
- 36
], - [
- 28,
- 28
], - [
- 19,
- 19
], - [
- 69,
- 69
], - [
- 77,
- 77
], - [
- 86,
- 86
], - [
- 95,
- 95
], - [
- 88,
- 88
], - [
- 78,
- 78
], - [
- 33,
- 33
], - [
- 38,
- 38
], - [
- 45,
- 45
], - [
- 50,
- 50
], - [
- 57,
- 57
], - [
- 69,
- 69
], - [
- 82,
- 82
], - [
- 72,
- 72
], - [
- 60,
- 60
], - [
- 52,
- 52
], - [
- 45,
- 45
], - [
- 38,
- 38
], - [
- 36,
- 36
], - [
- 46,
- 46
], - [
- 51,
- 51
], - [
- 58,
- 58
], - [
- 77,
- 77
], - [
- 58,
- 58
], - [
- 51,
- 51
], - [
- 45,
- 45
]
], - "attributes": {
- "eyes_attributes": {
- "left_eye": {
- "iris_landmarks": [
- [
- 92,
- 92
], - [
- 92,
- 92
], - [
- 93,
- 93
], - [
- 93,
- 93
], - [
- 94,
- 94
], - [
- 95,
- 95
], - [
- 96,
- 96
], - [
- 98,
- 98
], - [
- 99,
- 99
], - [
- 100,
- 100
], - [
- 101,
- 101
], - [
- 102,
- 102
], - [
- 103,
- 103
], - [
- 104,
- 104
], - [
- 105,
- 105
], - [
- 105,
- 105
], - [
- 105,
- 105
], - [
- 105,
- 105
], - [
- 105,
- 105
], - [
- 104,
- 104
], - [
- 103,
- 103
], - [
- 102,
- 102
], - [
- 101,
- 101
], - [
- 100,
- 100
], - [
- 99,
- 99
], - [
- 98,
- 98
], - [
- 97,
- 97
], - [
- 96,
- 96
], - [
- 95,
- 95
], - [
- 94,
- 94
], - [
- 93,
- 93
], - [
- 93,
- 93
]
], - "state": "open"
}, - "right_eye": {
- "iris_landmarks": [
- [
- 152,
- 152
], - [
- 153,
- 153
], - [
- 153,
- 153
], - [
- 154,
- 154
], - [
- 154,
- 154
], - [
- 155,
- 155
], - [
- 157,
- 157
], - [
- 158,
- 158
], - [
- 159,
- 159
], - [
- 161,
- 161
], - [
- 162,
- 162
], - [
- 163,
- 163
], - [
- 164,
- 164
], - [
- 165,
- 165
], - [
- 166,
- 166
], - [
- 166,
- 166
], - [
- 166,
- 166
], - [
- 166,
- 166
], - [
- 166,
- 166
], - [
- 165,
- 165
], - [
- 164,
- 164
], - [
- 163,
- 163
], - [
- 162,
- 162
], - [
- 161,
- 161
], - [
- 159,
- 159
], - [
- 158,
- 158
], - [
- 158,
- 158
], - [
- 157,
- 157
], - [
- 156,
- 156
], - [
- 154,
- 154
], - [
- 154,
- 154
], - [
- 153,
- 153
]
], - "state": "open"
}
}, - "head_pose": {
- "pitch": 12.7464532852,
- "roll": -2.9892115593,
- "yaw": 17.7173442841
}, - "gaze": {
- "yaw": -5.9912848473,
- "pitch": -10.2646684647
}, - "emotions": {
- "predominant_emotion": "neutral",
- "estimations": {
- "anger": 8.682e-7,
- "disgust": 1.0670000000000001e-7,
- "fear": 4.386e-7,
- "happiness": 0.45658952,
- "sadness": 4.951e-7,
- "surprise": 0.0000029291,
- "neutral": 0.543405652
}
}, - "mask": {
- "predominant_mask": "occluded",
- "estimations": {
- "medical_mask": 0.020060448,
- "missing": 0.3235525191,
- "occluded": 0.6563870311
}, - "face_occlusion": {
- "predominant_occlusion": "correct",
- "estimations": {
- "full": 0.019,
- "clear": 0.02,
- "correct": 0.6108324766,
- "partially": 0.31,
- "mouth": 0.0209,
- "chin": 0.019097
}
}
}, - "glasses": {
- "glasses": "no_glasses"
}, - "mouth_attributes": {
- "score": 0.3884400725,
- "occluded": 1.4000000000000001e-9,
- "smile": 0.6115599275,
- "opened": 0.121500025
}, - "basic_attributes": {
- "ethnicities": {
- "predominant_ethnicity": "caucasian",
- "estimations": {
- "asian": 0.0000025556,
- "indian": 6.417e-7,
- "caucasian": 0.9999949932000001,
- "african_american": 0.0000017718000000000001
}
}, - "age": 24,
- "gender": 0
}, - "descriptor": {
- "sdk_descriptor": "ZHAAADgAAAB0k4SAf...IB6gHyAgH19fQ==",
- "score": 0.7854047418000001
}, - "liveness": {
- "prediction": "spoof",
- "estimations": {
- "quality": 0.7361597418785095,
- "score": 0.600364089012146
}
}
}, - "quality": {
- "blurriness": 0.9769582748000001,
- "dark": 0.9542820454000001,
- "illumination": 0.8248310089,
- "specularity": 0.8472354412,
- "light": 0.8179533482
}, - "warp": "/9j/4AAQSkZJRgABAQAAAQABA..C4gb+KneZD/erEHWn0/asOTzP/9k="
}
}, - "body": {
- "detection": {
- "rect": {
- "x": 32,
- "y": 4,
- "width": 224,
- "height": 255
}, - "warp": "/9j/4AAQSkZJRgABAQAAAQABAA...CX6kdapTi1qS00f/Z",
- "attributes": {
- "descriptor": {
- "sdk_descriptor": "ZHAAAGUAAAC....AfX9",
- "score": 1
}, - "basic_attributes": {
- "apparent_age": 25,
- "apparent_gender": 0
}, - "upper_body": {
- "headwear": {
- "state": 0,
- "apparent_color": "undefined"
}, - "sleeve": {
- "length": "short"
}, - "upper_clothing": {
- "colors": [
- "white",
- "black"
]
}
}, - "lower_body": {
- "lower_garment": {
- "type": "trousers",
- "colors": [
- "white",
- "black"
]
}, - "shoes": {
- "apparent_color": "black"
}
}, - "accessories": {
- "backpack": {
- "state": 0
}
}
}
}
}
}
], - "image_estimations": {
- "people": {
- "count": 1
}
}
}
]
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет выполнить визуальную проверку изображений фронтального типа на основе стандарта ISO/IEC 19794-5. Это означает, что изображения, прошедшие проверку, стандартизированы, а атрибуты лица человека соответствуют установленным требованиям. Для получения дополнительной информации о требованиях к атрибутам лица на изображении см. ISO/IEC 19794-5 пункты 7-10.
Выходной JSON содержит результат проверки для каждой проверки. Проверка изображения считается успешной, если набор этих результатов соответствует стандарту ISO.
Порядок входных изображений соответствует порядку элементов в выходном JSON. Если изображение повреждено, ресурс вернет ошибку для этого изображения, а другие изображения будут обработаны правильно.
Примечания к входящим данным:
image_type | integer Default: 0 Enum: 0 1 Тип входящего изображения. 0 - обычное изображение, 1 - нормализованное изображение лица. |
multiface_policy | integer (iso_multiface_policy) Default: 0 Enum: 0 1 2 Политика детекции нескольких лиц:
|
extract_exif | integer (extract_exif) Default: 0 Enum: 0 1 Следует ли извлекать метаинформацию EXIF из входных изображений JPEG. Точные выходные данные могут отличаться из-за отсутствия обязательных требований по записи данных как к программному обеспечению, так и к цифровым камерам. Данная функция будет анализировать теги и выводить их имена и значения в том виде, в котором они предоставлены. Для более подробной информации см. спецификацию JEITA CP-3451. |
Accept | string Enum: "application/json" "application/msgpack" Заголовок запроса Accept. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Enum: "application/json" "multipart/form-data" "image/jpeg" "image/png" "image/bmp" "image/x-portable-pixmap" "image/tiff" "image/x-jpeg-base64" "image/x-png-base64" "image/x-bmp-base64" "image/x-tiff-base64" "image/x-portable-pixmap-base64" |
{- "images": [
- {
- "filename": "raw image",
- "status": 1,
- "error": {
- "error_code": 0,
- "desc": "Success",
- "detail": "Success",
}, - "estimations": [
- {
- "face": {
- "detection": {
- "iso": {
- "status": 1,
- "checks": [
- {
- "name": "image_format",
- "object_value": "JPEG",
- "threshold_value": [
- "JPEG",
- "JPEG2000",
- "PNG"
], - "result": 1
}, - {
- "name": "illumination_quality",
- "object_value": 0.6005162000656128,
- "threshold_value": {
- "min": 0.3,
- "max": 1
}, - "result": 1
}, - {
- "name": "specularity_quality",
- "object_value": 0.7662366628646851,
- "threshold_value": {
- "min": 0.3,
- "max": 1
}, - "result": 1
}, - {
- "name": "blurriness_quality",
- "object_value": 0.9429352283477783,
- "threshold_value": {
- "min": 0.61,
- "max": 1
}, - "result": 1
}, - {
- "name": "dark_quality",
- "object_value": 0.9020983576774597,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "light_quality",
- "object_value": 0.7881984114646912,
- "threshold_value": {
- "min": 0.57,
- "max": 1
}, - "result": 1
}, - {
- "name": "head_yaw",
- "object_value": 2.818983316421509,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "head_pitch",
- "object_value": 3.816443920135498,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "head_roll",
- "object_value": 5.434040069580078,
- "threshold_value": {
- "min": -8,
- "max": 8
}, - "result": 1
}, - {
- "name": "gaze_yaw",
- "object_value": -3.773012399673462,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "gaze_pitch",
- "object_value": 0.7140519022941589,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "mouth_smiling",
- "object_value": 0.000290759839117527,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "mouth_occluded",
- "object_value": 0.00009619363845558837,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "mouth_open",
- "object_value": 0.6226108074188232,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "glasses",
- "object_value": "no_glasses",
- "threshold_value": [
- "no_glasses",
- "eyeglasses"
], - "result": 1
}, - {
- "name": "left_eye",
- "object_value": "open",
- "threshold_value": [
- "open"
], - "result": 1
}, - {
- "name": "right_eye",
- "object_value": "open",
- "threshold_value": [
- "open"
], - "result": 1
}, - {
- "name": "head_horizontal_center",
- "object_value": 0.51,
- "threshold_value": {
- "min": 0.45,
- "max": 0.55
}, - "result": 1
}, - {
- "name": "head_vertical_center",
- "object_value": 0.51,
- "threshold_value": {
- "min": 0.3,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "head_width",
- "object_value": 0.61,
- "threshold_value": {
- "min": 0.5,
- "max": 0.75
}, - "result": 1
}, - {
- "name": "head_height",
- "object_value": 0.71,
- "threshold_value": {
- "min": 0.6,
- "max": 0.9
}, - "result": 1
}, - {
- "name": "eye_distance",
- "object_value": 110,
- "threshold_value": {
- "min": 90,
- "max": null
}, - "result": 1
}, - {
- "name": "eyebrows_state",
- "object_value": "neutral",
- "threshold_value": [
- "neutral"
], - "result": 1
}, - {
- "name": "smile_properties",
- "object_value": "smile_lips",
- "threshold_value": [
- "none"
], - "result": 0
}, - {
- "name": "headwear_type",
- "object_value": "hat",
- "threshold_value": [
- "none"
], - "result": 0
}, - {
- "name": "natural_light",
- "object_value": 1,
- "threshold_value": 1,
- "result": 1
}, - {
- "name": "radial_distortion",
- "object_value": 0,
- "threshold_value": 0,
- "result": 1
}, - {
- "name": "red_eyes",
- "object_value": 0,
- "threshold_value": 0,
- "result": 1
}, - {
- "name": "face_color_type",
- "object_value": "color",
- "threshold_value": [
- "color"
], - "result": 1
}, - {
- "name": "background_lightness",
- "object_value": 0.5780888795852661,
- "threshold_value": {
- "min": 0.2,
- "max": 1
}, - "result": 1
}, - {
- "name": "background_uniformity",
- "object_value": 0.8874394297599792,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "shoulders_position",
- "object_value": "parallel",
- "threshold_value": [
- "parallel"
], - "result": 1
}
]
}, - "rect": {
- "x": 108,
- "y": 58,
- "width": 113,
- "height": 165
}
}
}
}
]
}
]
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет обнаруживать лица на входящих изображениях, создавать биометрические образцы и оценивать свойства лиц.
Детекции могут быть отфильтрованы по положению головы. Положение головы представлено углом наклона головы вверх/вниз (pitch), углом отклонения головы вправо/влево (roll), углом поворота головы вправо/влево (yaw).
Чтобы задать порог фильтрации для каждого угла, используйте соответствующие параметры запроса
(yaw_threshold
, pitch_threshold
and roll_threshold
). По умолчанию фильтрация не применяется.
Оцененные свойства лица не сохраняются в базе данных лиц. Они возвращаются только в ответе.
Биометрические образцы сохраняются в хранилище без возможности отключения сохранения. Вы можете отключить сохранение
биометрических образцов только используя обработчики.
Примечания к входящим данным:
multiface_policy | integer (multiface_policy) Default: 1 Enum: 0 1 2 Политика детекции нескольких лиц:
|
estimate_head_pose | integer (estimate_head_pose) Default: 0 Enum: 0 1 Следует ли оценивать положение головы на изображении. Положение головы представлено углом наклона головы вверх/вниз (pitch), углом отклонения головы вправо/влево (roll), углом поворота головы вправо/влево (yaw). Не поддерживается с биометрическими образцами (см. параметр |
estimate_emotions | integer (estimate_emotions) Default: 0 Enum: 0 1 Следует ли оценивать эмоции на изображении. Оценивается вероятностная оценка следующих эмоций: "anger" (злость), "disgust" (отвращение), "fear" (страх), "happiness" (счастье), "sadness" (грусть), "surprise" (удивление), "neutral" (нейтральность). |
estimate_mask | integer (estimate_mask) Default: 0 Enum: 0 1 Следует ли оценивать состояние маски на лице. Оценивается вероятностная оценка следующих состояний маски: "medical_mask" (медицинская маска), "missing" (маска отсутствует), "occluded" (лицо перекрыто). Вероятностная оценка с наивысшим значением возвращается в параметре "predominant mask". |
detect_landmarks68 | integer (detect_landmarks68) Default: 0 Enum: 0 1 Следует ли обнаруживать на изображении 68 контрольных точек лица.
Не поддерживается с биометрическими образцами (см. параметр |
extract_exif | integer (extract_exif) Default: 0 Enum: 0 1 Следует ли извлекать метаинформацию EXIF из входных изображений JPEG. Точные выходные данные могут отличаться из-за отсутствия обязательных требований по записи данных как к программному обеспечению, так и к цифровым камерам. Данная функция будет анализировать теги и выводить их имена и значения в том виде, в котором они предоставлены. Для более подробной информации см. спецификацию JEITA CP-3451. |
estimate_quality | integer (estimate_quality) Default: 0 Enum: 0 1 Следует ли оценивать качество входного изображения лица. Оценивается каждый из следующих параметров: dark (степень того, что фото не затемнено), light (степень того, что фото не засвечено), blurriness (степень размытости), illumination (степень равномерности освещения), specularity (степень отсутствия бликов). Коэффициент качества оценивается для каждой вероятностной оценки. Его значение находится в диапазоне [0..1], где 0 соответствует низкому качеству, а 1 – высокому качеству. Влияние неравномерного освещения или большого количества бликов на алгоритмы распознавания лиц незначительно. |
estimate_gaze | integer (estimate_gaze) Default: 0 Enum: 0 1 Следует ли оценивать направление взгляда на изображении. Взгляд представлен углом наклона взгляда вверх/вниз (pitch) и углом поворота взгляда вправо/влево (yaw) для обоих глаз одновременно. Не поддерживается с биометрическими образцами (см. параметр |
estimate_eyes_attributes | integer (estimate_eyes_attributes) Default: 0 Enum: 0 1 Следует ли оценивать атрибуты глаз на изображении. Оцениваются параметры "right_eye" и "left_eye", которые содержат параметры "state" (opened (глаза открыты), closed (глаза закрыты) или occluded (глаза чем-то перекрыты)) и "iris_landmarks" (контрольные точки радужной оболочки). |
estimate_mouth_attributes | integer (estimate_mouth_attributes) Default: 0 Enum: 0 1 Следует ли оценивать атрибуты рта на изображении. Оценивается каждая из следующих вероятностных оценок: "opened" (рот открыт), "occluded" (рот чем-то перекрыт), "smile" (улыбка), "score" (точность определения). |
pitch_threshold | integer (pitch_threshold) [ 0 .. 180 ] Example: pitch_threshold=180 Максимальное отклонение угла наклона головы вверх/вниз (pitch) от 0. Если оценочное значение равно или меньше порогового значения, изображение фильтруется. Если фильтрация по углу наклона головы вверх/вниз (pitch) не требуется, то необходимо удалить этот параметр из запроса или установить значение параметра равным 180. Когда значение установлено на "0", все изображения фильтруются. |
roll_threshold | integer (roll_threshold) [ 0 .. 180 ] Example: roll_threshold=180 Максимальное отклонение угла отклонения головы вправо/влево (roll) от 0. Если расчетное значение равно или меньше порогового значения, изображение фильтруется. Если фильтрация по углу наклона головы в сторону не требуется, то необходимо удалить этот параметр из запроса или установить значение параметра равным 180. Когда значение установлено на "0", все изображения фильтруются. |
yaw_threshold | integer (yaw_threshold) [ 0 .. 180 ] Example: yaw_threshold=180 Максимальное отклонение угла поворота головы вправо/влево (yaw) от 0. Если оценочное значение равно или меньше порогового значения, изображение фильтруется. Если фильтрация по углу наклона в сторону не требуется, необходимо удалить этот параметр из запроса или установить значение параметра равным 180. Когда значение установлено на "0", все изображения фильтруются. |
warped_image | integer (warped_image) Default: 0 Enum: 0 1 Является ли входное изображение биометрическим образцом или нет. |
use_exif_info | integer Default: 1 Enum: 0 1 Example: use_exif_info=1 Следует ли автоматически поворачивать изображение на основе данных EXIF. Обрабатываемое изображение должно иметь EXIF данные, иначе автоматическая ориентация выполняться не будет. Не влияет на изображения в формате tiff (они всегда автоматически ориентированы). Не поддерживается с биометрическими образцами (см. параметры |
estimate_face_quality | integer Default: 0 Enum: 0 1 Следует ли оценивать лицо и изображение с помощью проверки "face_quality". Позволяет выполнять различные проверки качества лица с пороговыми значениями, аналогичных стандарту ISO. Для получения дополнительной информации о требованиях к атрибутам лица на изображении см. ISO/IEC 19794-5 пункты 7-10. ⚠ Необходимо наличие параметра лицензирования ISO для выполнения проверки качества лица и изображения. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Enum: "image/jpeg" "image/png" "image/bmp" "image/x-portable-pixmap" "image/tiff" "multipart/form-data" "application/json" "image/x-jpeg-base64" "image/x-png-base64" "image/x-bmp-base64" "image/x-tiff-base64" "image/x-portable-pixmap-base64" |
{- "images": [
- {
- "filename": "face_1.jpg",
- "error": {
- "error_code": 0,
- "desc": "Success",
- "detail": "Success",
}, - "status": 1,
- "detections": {
- "samples": [
- {
- "face": {
- "detection": {
- "rect": {
- "x": 594,
- "y": 181,
- "width": 678,
- "height": 963
}, - "landmarks5": [
- [
- 169,
- 169
], - [
- 454,
- 454
], - [
- 325,
- 325
], - [
- 227,
- 227
], - [
- 466,
- 466
]
], - "quality": {
- "blurriness": 0.9740276337,
- "dark": 0.9211971164,
- "illumination": 0.8751303554,
- "specularity": 0.9605293274,
- "light": 0.8855836391
}, - "attributes": {
- "mouth_attributes": {
- "opened": 0.021500025,
- "occluded": 0.9998804331,
- "smile": 0,
- "score": 1
}, - "head_pose": {
- "pitch": 6.7033782005,
- "roll": -6.140639782,
- "yaw": 3.3139002323
}, - "gaze": {
- "yaw": 0.281270504,
- "pitch": -1.0716878176
}
}
}, - "url": "/6/samples/faces/f9285806-371e-4c61-be00-0424029856e3",
- "sample_id": "50cccef8-3ea8-42a0-8e6d-68b90ee148f6"
}
}
], - "filtered_detections": {
- "face_detections": [ ]
}
}
}
]
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет сохранить биометрический образец лица или тела в хранилище.
samples_type required | string Enum: "faces" "bodies" Тип биометрических образцов. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Enum: "image/jpeg" "image/png" "image/bmp" "image/tiff" "image/x-portable-pixmap" |
Изображение, сгенерированное алгоритмами VisionLabs.
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", } with open("face_warp.jpg", "rb") as image_file: image = image_file.read() url = f"{baseUri}/samples/faces" response = requests.post(url, data=image, headers=headers) print(response.status_code) print(response.json())
{- "sample_id": "b5d6fd45-fcca-453d-ac05-3e594054b813",
- "url": "/6/samples/bodies/b5d6fd45-fcca-453d-ac05-3e594054b813"
}
Позволяет получить параметры для ресурса.
samples_type required | string Enum: "faces" "bodies" Тип биометрических образцов. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить биометрический образец лица или тела по его sample_id.
samples_type required | string Enum: "faces" "bodies" Тип биометрических образцов. |
sample_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create sample headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", } with open("face_warp.jpg", "rb") as image_file: image = image_file.read() url = f"{baseUri}/samples/faces" sampleId = requests.post(url, data=image, headers=headers).json()["sample_id"] # get sample headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/samples/faces/{sampleId}" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет проверить существование биометрического образца лица или тела по указанному sample_id
.
samples_type required | string Enum: "faces" "bodies" Тип биометрических образцов. |
sample_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create sample headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", } with open("face_warp.jpg", "rb") as image_file: image = image_file.read() url = f"{baseUri}/samples/faces" sampleId = requests.post(url, data=image, headers=headers).json()["sample_id"] # get sample headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/samples/faces/{sampleId}" response = requests.head(url, headers=headers) print(response.status_code)
Позволяет удалить биометрический образец лица или тела по его sample_id.
samples_type required | string Enum: "faces" "bodies" Тип биометрических образцов. |
sample_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create sample headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", } with open("face_warp.jpg", "rb") as image_file: image = image_file.read() url = f"{baseUri}/samples/faces" sampleId = requests.post(url, data=image, headers=headers).json()["sample_id"] # get sample headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/samples/faces/{sampleId}" response = requests.delete(url, headers=headers) print(response.status_code)
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет получить параметры для ресурса.
samples_type required | string Enum: "faces" "bodies" Тип биометрических образцов. |
sample_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 13003,
- "desc": "Object not found",
- "detail": "Image with id '7acc35cf-a3b2-4f87-8d8b-5496a2782d37' not found",
}
Позволяет получить биометрический образец по его идентификатору с помощью предыдущей версии API.
sample_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет проверить существование биометрического образца лица или тела по указанному sample_id
с помощью предыдущей версии API.
sample_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Позволяет удалить биометрический образец по идентификатору, используя предыдущую версию API.
sample_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет получить параметры для ресурса с помощью предыдущей версии API.
sample_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 13003,
- "desc": "Object not found",
- "detail": "Image with id '7acc35cf-a3b2-4f87-8d8b-5496a2782d37' not found",
}
Позволяет получить биометрический образец лица по идентификатору.
sample_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет проверить существование биометрического образца лица по указанному sample_id
.
sample_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Позволяет удалить биометрический образец по его sample_id.
sample_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет получить параметры для ресурса.
sample_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 13003,
- "desc": "Object not found",
- "detail": "Image with id '7acc35cf-a3b2-4f87-8d8b-5496a2782d37' not found",
}
Позволяет сохранить изображения с уникальным идентификатором.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Enum: "image/jpeg" "image/png" "image/bmp" "image/tiff" "image/x-portable-pixmap" Тип передаваемого изображения. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
* (X-Luna-Meta-<user_defined_key>) | string Example: <user_defined_value> Пользовательская метаинформация (ключ-значение) изображения. Чтобы сохранить значения метаинформации для нескольких ключей, необходимо определить несколько заголовков. |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", } with open("face_warp.jpg", "rb") as image_file: image = image_file.read() url = f"{baseUri}/images" response = requests.post(url, data=image, headers=headers) print(response.status_code) print(response.json())
{- "image_id": "141d2706-8baf-433b-82eb-8c7fada847da",
- "url": "/6/images/141d2706-8baf-433b-82eb-8c7fada847da",
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет проверить существование изображение по указанному image_id
.
image_id required | string <uuid> (image_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор изображения. |
with_meta | integer Default: 0 Enum: 0 1 Example: with_meta=1 Следует ли извлекать пользовательскую метаинформацию изображения. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create sample headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", } with open("face_warp.jpg", "rb") as image_file: image = image_file.read() url = f"{baseUri}/images" imageId = requests.post(url, data=image, headers=headers).json()["image_id"] # get image headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/images/{imageId}" response = requests.head(url, headers=headers) print(response.status_code)
Позволяет удалить изображение.
image_id required | string <uuid> (image_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор изображения. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create sample headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", } with open("face_warp.jpg", "rb") as image_file: image = image_file.read() url = f"{baseUri}/images" imageId = requests.post(url, data=image, headers=headers).json()["image_id"] # get image headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/images/{imageId}" response = requests.delete(url, headers=headers) print(response.status_code)
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет получить исходное изображение.
image_id required | string <uuid> (image_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор изображения. |
with_meta | integer Default: 0 Enum: 0 1 Example: with_meta=1 Следует ли извлекать пользовательскую метаинформацию изображения. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create sample headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", } with open("face_warp.jpg", "rb") as image_file: image = image_file.read() url = f"{baseUri}/images" imageId = requests.post(url, data=image, headers=headers).json()["image_id"] # get image headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/images/{imageId}" response = requests.get(url, headers=headers) print(response.status_code)
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет получить параметры для ресурса.
image_id required | string <uuid> (image_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор изображения. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет сохранить объект с уникальным идентификатором.
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type required | string Тип передачи информации.
|
Пользовательские байты. Сервис сохраняет байты «как есть».
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "text/plain", } url = f"{baseUri}/objects" response = requests.post(url, data="example", headers=headers) print(response.status_code) print(response.json())
{- "object_id": "141d2706-8baf-433b-82eb-8c7fada847da",
- "url": "/6/objects/141d2706-8baf-433b-82eb-8c7fada847da",
}
Позволяет получить параметры для ресурса.
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Receiving objects.
object_id required | string <uuid> (object_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор объекта. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create objects headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "text/plain", } url = f"{baseUri}/objects" objectId = requests.post(url, data="example", headers=headers).json()["object_id"] # get object headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/objects/{objectId}" response = requests.get(url, headers=headers) print(response.status_code) print(response.text)
{- "error_code": 12017,
- "detail": "Bad/incomplete input data",
- "desc": "Bad content type",
}
Позволяет проверить существование объекта по указанному object_id
.
object_id required | string <uuid> (object_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор объекта. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create object headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "text/plain", } url = f"{baseUri}/objects" objectId = requests.post(url, data="example", headers=headers).json()["object_id"] # check objects headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/objects/{objectId}" response = requests.head(url, headers=headers) print(response.status_code)
Позволяет удалить объект.
object_id required | string <uuid> (object_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор объекта. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create object headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "text/plain", } url = f"{baseUri}/objects" objectId = requests.post(url, data="example", headers=headers).json()["object_id"] # get object headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/objects/{objectId}" response = requests.delete(url, headers=headers) print(response.status_code)
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет получить параметры для ресурса.
object_id required | string <uuid> (object_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор объекта. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет извлечь биометрические шаблоны и базовые атрибуты из биометрических образцов.
Все извлеченные атрибуты являются временными.
Временные атрибуты имеют TTL (время существования) и будут удалены из базы данных по истечении указанного периода.
score_threshold | number (score_threshold) [ 0 .. 1 ] Default: 0 Example: score_threshold=0.7 Порог оценки качества биометрического шаблона. Чем выше показатель качества изображения, тем лучше результаты извлечения биометрического шаблона. Все атрибуты с показателем качества ниже порогового значения будут проигнорированы (и не сохранены в БД). Функция будет работать как обычно со всеми остальными биометрическими шаблонами (если они оставлены). Проконсультируйтесь со специалистами VisionLabs о рекомендуемом значении этого параметра. Примечание. Этот параметр не связан с качеством изображения, оцененным в запросе на детекцию (параметром |
extract_descriptor | integer (extract_descriptor) Default: 1 Enum: 0 1 Example: extract_descriptor=1 Следует ли извлекать биометрические шаблоны лица. |
extract_basic_attributes | integer (extract_basic_attributes) Default: 0 Enum: 0 1 Следует ли извлекать базовые атрибуты (пол, возраст, этническая принадлежность). |
aggregate_attributes | integer (aggregate_attributes) Следует ли агрегировать атрибуты лица (биометрический шаблон или базовые атрибуты). Агрегация будет выполнена только вместе с включенными параметрами Если параметр задан, то все извлеченные из каждого изображения атрибуты будут агрегированы и сохранены как единый объект. В противном случае, все извлеченные из каждого изображения атрибуты будут сохранены для каждого биометрического образца как отдельные объекты. |
ttl | integer [ 1 .. 86400 ] Default: 300 Время существования временных атрибутов (в секундах). |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
Идентификатор биометрического образца.
[- "f9f03668-27e3-4e23-9b55-681e5927905e",
- "4967ccb7-b521-43b5-93ba-a0d266631bb2",
- "dd98cf9c-ddf3-4962-a3c5-e8bd540a4fc7"
]
[- {
- "samples": [
- "f9f03668-27e3-4e23-9b55-681e5927905e"
], - "attribute_id": "3917e7a6-2f62-4151-905a-a5d786fcaf0b",
- "url": "/6/attributes/3917e7a6-2f62-4151-905a-a5d786fcaf0b",
- "basic_attributes": {
- "ethnicities": {
- "predominant_ethnicity": "caucasian",
- "estimations": {
- "asian": 9.823425273225439e-8,
- "indian": 0.000015799123502802104,
- "caucasian": 0.9999819993972778,
- "african_american": 0.000002058620793832233
}
}, - "age": 19,
- "gender": 0
}, - "score": 0.9949966669082642
}, - {
- "samples": [
- "4967ccb7-b521-43b5-93ba-a0d266631bb2"
], - "attribute_id": "87737317-9c75-46b3-a0cc-6cd2b258e027",
- "url": "/6/attributes/87737317-9c75-46b3-a0cc-6cd2b258e027",
- "basic_attributes": {
- "ethnicities": {
- "predominant_ethnicity": "caucasian",
- "estimations": {
- "asian": 0.000002390194367762888,
- "indian": 1.3357706052374851e-8,
- "caucasian": 0.9999673366546631,
- "african_american": 0.000030240154956118204
}
}, - "age": 23,
- "gender": 0
}, - "score": 0.998572826385498
}, - {
- "samples": [ ],
- "attribute_id": null,
- "url": null,
- "external_url": null,
- "filter": {
- "is_filtered": true,
- "filter_reasons": [
- {
- "filter_name": "score_threshold",
- "object_value": 0.8610286712646484,
- "threshold_value": 0.9
}
]
}
}
]
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет создать новые временные атрибуты.
Примечание. Используйте этот запрос, когда вам нужно добавить базовые атрибуты или биометрические шаблоны из внешнего хранилища. В противном случае используйте запрос на извлечение атрибутов.
Все извлеченные атрибуты являются временными.
Временные атрибуты имеют TTL (время существования) и будут удалены из базы данных по истечении указанного периода.
ttl | integer [ 1 .. 86400 ] Default: 300 Время существования временных атрибутов (в секундах). |
Content-Type | string Enum: "application/json" "multipart/form-data" Тип содержимого – |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
required | Array of descriptor_data (object) or raw_descriptor_base64 (string) (face_descriptors) non-empty Список биометрических шаблонов с версиями. Каждый биометрический шаблон получен в результате агрегации всех предоставленных биометрических образцов. |
face_descriptor_samples | Array of strings <uuid> (attributes_samples) >= 0 items unique Default: [] Список уникальных sample_id, которые являются источниками для определяемых атрибутов.
|
required | object (basic_attributes_without_defaults) Базовые атрибуты. |
basic_attributes_samples | Array of strings <uuid> (attributes_samples) >= 0 items unique Default: [] Список уникальных sample_id, которые являются источниками для определяемых атрибутов.
|
{- "face_descriptors": [
- {
- "descriptor": "2xQ2gprbMUePw1s9gw9fvA==",
- "version": 46
}, - {
- "descriptor": "1xWqdsdwew32fsdsdw1s9gw9fvA==",
- "version": 56
}
], - "face_descriptor_samples": [
- "ee4c42b6-23ae-410e-a2aa-a4220e64ba4b",
- "e909cfbe-29d3-44ed-a949-6cb700b89eba"
], - "basic_attributes": {
- "age": 29,
- "gender": 0,
- "ethnicity": 4
}, - "basic_attributes_samples": [
- "ee4c42b6-23ae-410e-a2aa-a4220e64ba4b",
- "e909cfbe-29d3-44ed-a949-6cb700b89eba"
]
}
{- "attribute_id": "b5d6fd45-fcca-453d-ac05-3e594054b813",
- "url": "/6/attributes/b5d6fd45-fcca-453d-ac05-3e594054b813",
}
Позволяет получить временные атрибуты по их идентификаторам.
Для каждого атрибута:
Если TTL атрибутов не истекло, возвращаются данные атрибутов;
Если TTL атрибутов истекло, данные для этого атрибута в ответе не возвращаются.
attribute_ids required | string <list of uuid> Список attribute_id, разделенных запятыми. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
targets | string <comma-separated items> Default: "create_time, attribute_id, account_id, face_descriptor_samples, basic_attributes_samples, face_descriptor, basic_attributes_samples" Example: targets=basic_attributes,basic_attributes_samples,account_id Список целевых полей временных атрибутов, разделенных запятыми. Все целевые поля доступны по умолчанию. |
descriptor_version | integer (descriptor_version) Enum: 46 52 54 56 57 58 59 60 Example: descriptor_version=56 Версия дескриптора, возвращаемая в ответе. По умолчанию используется версия дескриптора LUNA PLATFORM по умолчанию. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create attribute headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } payload = { "basic_attributes": { "age": 29, "gender": 0, "ethnicity": 3, }, } url = f"{baseUri}/attributes" attributeId = requests.post(url, json=payload, headers=headers).json()["attribute_id"] # get attributes headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } params = { "attribute_ids": [ attributeId, ], "targets": "basic_attributes,basic_attributes_samples,account_id", } url = f"{baseUri}/attributes" response = requests.get( url, headers=headers, params=params ) print(response.status_code) print(response.json())
{- "attributes": [
- {
- "create_time": "2021-08-11T14:57:18.416928+03:00",
- "attribute_id": "7fdf9225-3c06-4c21-b774-8bea99bcce20",
- "account_id": "0d1cc36e-d719-4f54-8abe-4e5e0cb1f43c",
- "face_descriptor_samples": [
- "0d1cc36e-d719-4f54-8abe-4e5e0cb1f43c",
- "2f1cbb34-12e5-486c-8f7f-57273053c32d"
], - "basic_attributes_samples": [
- "00000000-0000-4000-8000-000000000000"
], - "face_descriptor": "2xQ2gprbMUePw1s9gw9fvA==",
- "basic_attributes": {
- "age": 33,
- "gender": 1,
- "ethnicity": 3
}
}
]
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить временные атрибуты по идентификатору.
Атрибуты будут возвращены, если их TTL не истекло.
В противном случае вернется ошибка "Attributes not found".
attribute_id required | string <uuid> (attribute_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор временного атрибута. |
descriptor_version | integer (descriptor_version) Enum: 46 52 54 56 57 58 59 60 Example: descriptor_version=56 Версия дескриптора, возвращаемая в ответе. По умолчанию используется версия дескриптора LUNA PLATFORM по умолчанию. |
targets | string <comma-separated items> Default: "create_time, attribute_id, account_id, face_descriptor_samples, basic_attributes_samples, face_descriptor, basic_attributes_samples" Example: targets=basic_attributes,basic_attributes_samples,account_id Список целевых полей временных атрибутов, разделенных запятыми. Все целевые поля доступны по умолчанию. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create attribute headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } payload = { "basic_attributes": { "age": 29, "gender": 1, "ethnicity": 3, }, } url = f"{baseUri}/attributes" attributeId = requests.post(url, json=payload, headers=headers).json()["attribute_id"] # get attributes headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/attributes/{attributeId}" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "create_time": "2021-08-11T14:57:18.416928+03:00",
- "attribute_id": "7fdf9225-3c06-4c21-b774-8bea99bcce20",
- "account_id": "0d1cc36e-d719-4f54-8abe-4e5e0cb1f43c",
- "face_descriptor_samples": [
- "0d1cc36e-d719-4f54-8abe-4e5e0cb1f43c",
- "2f1cbb34-12e5-486c-8f7f-57273053c32d"
], - "basic_attributes_samples": [
- "00000000-0000-4000-8000-000000000000"
], - "face_descriptor": "2xQ2gprbMUePw1s9gw9fvA==",
- "basic_attributes": {
- "age": 33,
- "gender": 1,
- "ethnicity": 3
}
}
Позволяет проверить существование атрибута по указанному attribute_id
.
attribute_id required | string <uuid> (attribute_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор временного атрибута. |
descriptor_version | integer (descriptor_version) Enum: 46 52 54 56 57 58 59 60 Example: descriptor_version=56 Версия дескриптора, возвращаемая в ответе. По умолчанию используется версия дескриптора LUNA PLATFORM по умолчанию. |
targets | string <comma-separated items> Default: "create_time, attribute_id, account_id, face_descriptor_samples, basic_attributes_samples, face_descriptor, basic_attributes_samples" Example: targets=basic_attributes,basic_attributes_samples,account_id Список целевых полей временных атрибутов, разделенных запятыми. Все целевые поля доступны по умолчанию. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create attribute headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } payload = { "basic_attributes": { "age": 29, "gender": 1, "ethnicity": 3, }, } url = f"{baseUri}/attributes" attributeId = requests.post(url, json=payload, headers=headers).json()["attribute_id"] # get attributes headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/attributes/{attributeId}" response = requests.head(url, headers=headers) print(response.status_code)
Позволяет удалить атрибуты по их идентификатору.
attribute_id required | string <uuid> (attribute_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор временного атрибута. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests # create attribute headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } payload = { "basic_attributes": { "age": 29, "gender": 1, "ethnicity": 3, }, } url = "http://127.0.0.1:5000/6/attributes" attributeId = requests.post(url, json=payload, headers=headers).json()["attribute_id"] # get attributes headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"http://127.0.0.1:5000/6/attributes/{attributeId}" response = requests.delete(url, headers=headers) print(response.status_code)
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет получить параметры для ресурса.
attribute_id required | string <uuid> (attribute_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор временного атрибута. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить все биометрические образцы временных атрибутов по идентификатору атрибутов.
Атрибуты будут возвращены, если их TTL не истекло.
В противном случае вернется ошибка "Attributes not found".
attribute_id required | string <uuid> (attribute_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор временного атрибута. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create sample headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", } with open("image.jpg", "rb") as image_file: image = image_file.read() url = f"{baseUri}/detector" sampleId = requests.post(url, data=image, headers=headers).json()["images"][0]["detections"]["samples"][0]["face"]["sample_id"] # exreact attr # create attribute headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } payload = { "basic_attributes": { "age": 29, "gender": 1, "ethnicity": 3, }, "basic_attributes_samples": [ sampleId, ], } url = f"{baseUri}/attributes" attributeId = requests.post(url, json=payload, headers=headers).json()["attribute_id"] # get attributes by id headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/attributes/{attributeId}/samples" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "samples": [
- "0d1cc36e-d719-4f54-8abe-4e5e0cb1f43c",
- "2f1cbb34-12e5-486c-8f7f-57273053c32d"
]
}
Позволяет получить параметры для ресурса.
attribute_id required | string <uuid> (attribute_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор временного атрибута. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Создать лицо.
Лицо может быть прикреплено к одному или нескольким спискам.
Можно создать новое лицо, используя временный идентификатор атрибута или используя внешние данные атрибута (биометрические шаблоны и/или базовые атрибуты).
Также можно создать лицо без указанных атрибутов.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Enum: "application/json" "application/msgpack" Формат данных тела запроса. |
attribute_set_by_attribute_id (object) or (attribute_no_account (attribute_with_descriptors_and_basic_attributes_no_account (object) or attribute_with_basic_attributes_no_account (object) or attribute_with_descriptors_no_account (object))) (face_attribute) Атрибуты лица. Можно указать атрибуты для лица одним из нескольких способов:
Последние три способа используются, когда вам нужно создать лицо с использованием данных, хранящихся во внешнем хранилище. | |
external_id | string (face_external_id) <= 36 characters Default: "" Определяемый пользователем внешний идентификатор лица. Его можно использовать для связывания нескольких лиц, принадлежащих одному человеку. |
user_data | string (face_user_data) <= 128 characters Default: "" Пользовательские данные, связанные с лицом. |
avatar | string <uri-reference> (avatar) <= 256 characters Default: "" Аватар – это визуальное изображение лица. Аватар можно использовать в пользовательском интерфейсе. В качестве аватара можно использовать биометрический образец или внешнее изображение. |
lists | Array of strings <uuid> (list_id) non-empty Списки для привязки лица. |
event_id | string <uuid> (event_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Идентификатор события, связанный с созданием лица. |
{- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "attribute": {
- "attribute_id": "b4a40d88-8998-4e19-8cc8-be894a1ceb5e"
}, - "user_data": "some_string",
- "lists": [
- "234fc28c-a767-42fc-a0c2-e01ad00b5c59",
- "c2a09aff-0116-41cf-a7c7-91631d40d0c2"
], - "event_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515"
}
{- "face_id": "b5d6fd45-fcca-453d-ac05-3e594054b813",
- "url": "/6/faces/b5d6fd45-fcca-453d-ac05-3e594054b813",
}
Позволяет получить лица в соответствии с фильтрами.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
page | integer >= 1 Default: 1 Номер страницы. |
page_size | integer [ 1 .. 1000 ] Default: 10 Количество элементов на странице. |
create_time__lt | string <date-time> (time) Example: create_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра |
create_time__gte | string <date-time> (time) Example: create_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра |
event_id | string <uuid> (event_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: event_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb event_id, связанный с созданием лица. |
face_id__lt | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: face_id__lt=8950722f-3fd4-4223-b48f-03f95f0e8dfb Верхнее исключенное пороговое значение для параметра |
face_id__gte | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: face_id__gte=8950722f-3fd4-4223-b48f-03f95f0e8dfb Нижнее включенное пороговое значение для параметра |
face_ids | string <list of uuid> Example: face_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список face_id, разделенных запятыми. |
external_ids | string Example: external_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список external_id, разделенных запятыми. |
user_data | string Example: user_data=user_data_text Найти все объекты с параметром |
list_id | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: list_id=557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор списка, содержащего лица. |
targets | Array of strings (faces_targets) Items Enum: "face_id" "account_id" "event_id" "user_data" "create_time" "external_id" "avatar" "lists" Example: targets=face_id,user_data Список целевых полей лиц, разделенных запятыми. Если параметр задан, каждое лицо из результата будет содержать только указанные поля, в противном случае будут возвращены лица со всеми полями. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/faces" params = { "create_time__gte": "2018-08-11T09:11:41.674Z", "user_data": "face", "targets": "face_id,account_id,event_id,user_data,create_time", } response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json())
{- "faces": [
- {
- "face_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c6",
- "account_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "event_id": "f9687459-986b-406d-9c1f-0d6289be5256",
- "user_data": "fox1991",
- "create_time": "2018-08-11T09:11:41.674Z",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "lists": [
- "429b0e78-4616-426a-b57f-02baa72d638d",
- "6d037c33-31ec-4d73-b3b3-ec80b09446c2"
]
}
]
}
Позволяет удалить несколько лиц по их идентификаторам.
Когда лица удаляются, атрибуты (биометрические шаблоны и базовые атрибуты), привязанные к лицам,также удаляются. Биометрические образцы, привязанные к лицам, не удаляются.
Если необходимо удалить лица в соответствии с некоторыми фильтрами и со всеми биометрическими образцами,
необходимо использовать задачу "garbage collection" с параметром target = faces
и включенным флагом remove_samples
.
ignore | integer (int01) Default: 0 Enum: 0 1 Следует ли игнорировать ошибку, если удаляемого лица не существует. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
face_ids required | Array of strings <uuid> (face_id) non-empty Список face_id, разделенных запятыми для удаления. |
{- "face_ids": [
- "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
]
}
{- "error_code": 12022,
- "desc": "Bad/incomplete input data",
- "detail": "Failed to validate input json. Path: '', message: 'Additional properties are not allowed ('faces' was unexpected)'",
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить количество лиц в соответствии с фильтрами.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
create_time__lt | string <date-time> (time) Example: create_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра |
create_time__gte | string <date-time> (time) Example: create_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра |
face_ids | string <list of uuid> Example: face_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список face_id, разделенных запятыми. |
face_id__lt | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: face_id__lt=8950722f-3fd4-4223-b48f-03f95f0e8dfb Верхнее исключенное пороговое значение для параметра |
face_id__gte | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: face_id__gte=8950722f-3fd4-4223-b48f-03f95f0e8dfb Нижнее включенное пороговое значение для параметра |
event_id | string <uuid> (event_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: event_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb event_id, связанный с созданием лица. |
external_ids | string Example: external_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список external_id, разделенных запятыми. |
user_data | string Example: user_data=user_data_text Найти все объекты с параметром |
list_id | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: list_id=557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор списка, содержащего лица. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/faces/count" params = { "create_time__gte": "2018-08-11T09:11:41.674Z", "user_data": "face", } response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json())
{- "faces_count": 7
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить количество лиц с атрибутами.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/faces/attributes/count" response = requests.get( url, headers=headers, ) print(response.status_code) print(response.json())
{- "faces_count": 7
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить лицо по его face_id.
face_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 face_id, полученный в запросе на создание лица. |
targets | Array of strings (faces_targets) Items Enum: "face_id" "account_id" "event_id" "user_data" "create_time" "external_id" "avatar" "lists" Example: targets=face_id,user_data Список целевых полей лиц, разделенных запятыми. Если параметр задан, каждое лицо из результата будет содержать только указанные поля, в противном случае будут возвращены лица со всеми полями. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/faces" faceId = requests.post(url, headers=headers).json()["face_id"] headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/faces/{faceId}" response = requests.get( url, headers=headers, ) print(response.status_code) print(response.json())
{- "face_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c6",
- "account_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "event_id": "f9687459-986b-406d-9c1f-0d6289be5256",
- "user_data": "fox1991",
- "create_time": "2018-08-11T09:11:41.674Z",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "lists": [
- "429b0e78-4616-426a-b57f-02baa72d638d",
- "6d037c33-31ec-4d73-b3b3-ec80b09446c2"
]
}
Позволяет обновить следующие поля лица: user_data
, external_id
, event_id
, avatar
.
face_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 face_id, полученный в запросе на создание лица. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
external_id | string <= 36 characters Определяемый пользователем внешний идентификатор лица. |
event_id | string or null <uuid> (event_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Идентификатор события. |
user_data | string <= 128 characters Пользовательские данные, связанные с лицом. |
avatar | string <uri-reference> (avatar) <= 256 characters Default: "" Аватар – это визуальное изображение лица. Аватар можно использовать в пользовательском интерфейсе. В качестве аватара можно использовать биометрический образец или внешнее изображение. |
{- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "event_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "user_data": "some_string",
}
{- "error_code": 12022,
- "desc": "Bad/incomplete input data",
- "detail": "Failed to validate input json. Path: '', message: 'Additional properties are not allowed ('userdata' was unexpected)'",
}
Позволяет удалить лицо по его face_id.
Когда лицо удаляется, атрибуты (биометрические шаблоны и базовые атрибуты), привязанные к лицу, также удаляются.
Биометрические образцы, привязанные к лицу не удаляются. Если у вас имеется небольшое количество биометрических образцов лица, тогда вы можете использовать ресурсы
"get face attribute samples" >
"remove face/body sample" > "delete face" (этот ресурс). Если вам необходимо удалить лица в соответствии с некоторыми фильтрами и со всеми биометрическими образцами,
необходимо использовать задачу "garbage collection" с параметром target = faces
и включенным флагом remove_samples
.
face_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 face_id, полученный в запросе на создание лица. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/faces" faceId = requests.post( url, headers=headers, ).json()["face_id"] headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/faces/{faceId}" response = requests.delete( url, headers=headers, ) print(response.status_code)
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет проверить существование лица по указанному face_id
.
face_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 face_id, полученный в запросе на создание лица. |
targets | Array of strings (faces_targets) Items Enum: "face_id" "account_id" "event_id" "user_data" "create_time" "external_id" "avatar" "lists" Example: targets=face_id,user_data Список целевых полей лиц, разделенных запятыми. Если параметр задан, каждое лицо из результата будет содержать только указанные поля, в противном случае будут возвращены лица со всеми полями. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/faces" faceId = requests.post( url, headers=headers, ).json()["face_id"] headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/faces/{faceId}" response = requests.head( url, headers=headers, ) print(response.status_code)
Позволяет получить параметры для ресурса.
face_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 face_id, полученный в запросе на создание лица. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет отправить атрибуты лица.
Этот запрос изменяет все данные атрибутов, соответствующие указанному лицу.
Атрибуты могут быть заданы с помощью attribute_id или с использованием внешних данных атрибутов (биометрических шаблонов/базовых атрибутов).
face_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 идентификатор лица, полученный в запросе на создание лица. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Value: "application/json" Тип содержимого – |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
attribute_id required | string <uuid> (attribute_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Идентификатор атрибутов. Этот идентификатор связывает биометрические шаблоны, базовые атрибуты и биометрические образцы, полученные из одного изображения. |
{- "attribute_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
{- "error_code": 12022,
- "desc": "Bad/incomplete input data",
- "detail": "Failed to validate input json. Path: '', message: 'Additional properties are not allowed ('userdata' was unexpected)'",
}
Позволяет получить атрибуты лица по идентификатору.
face_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 идентификатор лица, полученный в запросе на создание лица. |
targets | string <comma-separated items> Default: "create_time,basic_attributes,basic_attributes_samples,face_descriptor,face_descriptor_samples" Список целевых полей временных атрибутов, разделенных запятыми. Доступные поля:
|
descriptor_version | integer (descriptor_version) Enum: 46 52 54 56 57 58 59 60 Example: descriptor_version=56 Версия дескриптора, возвращаемая в ответе. По умолчанию используется версия дескриптора LUNA PLATFORM по умолчанию. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests import base64 baseUri = "http://127.0.0.1:5000/6" # create sample headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", } with open("image.jpg", "rb") as image_file: image = image_file.read() url = f"{baseUri}/detector" sampleId = requests.post(url, data=image, headers=headers).json()["images"][0]["detections"]["samples"][0]["face"]["sample_id"] # create attribute with open("descriptor56", "rb") as file: descriptor = base64.b64encode(file.read()).decode() headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } params = { "ttl": 600, } payload = { "basic_attributes": { "age": 29, "gender": 0, "ethnicity": 3, }, "basic_attributes_samples": [ sampleId, ], "face_descriptor_samples": [ sampleId, ], "face_descriptors": [ {"descriptor": descriptor, "version": 56}, ], } url = f"{baseUri}/attributes" attributeId = requests.post( url, json=payload, headers=headers, params=params ).json()["attribute_id"] # create face payload = { "external_id": "2xQ2gprbMUePw1s9gw9fvA==", "attribute": {"attribute_id": attributeId}, } headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/faces" faceId = requests.post( url, headers=headers, json=payload, ).json()["face_id"] # get face attribute by ID headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/faces/{faceId}/attributes" response = requests.get( url, headers=headers, ) print(response.status_code) print(response.json())
{- "attributes": {
- "create_time": "2018-08-11T09:11:41.674Z",
- "basic_attributes": {
- "age": 29,
- "gender": 1,
- "ethnicity": 2
}, - "face_descriptor": {
- "descriptor": "byte string",
- "descriptor_version": 56
}, - "basic_attributes_samples": [
- "ee4c42b6-23ae-410e-a2aa-a4220e64ba4b",
- "e909cfbe-29d3-44ed-a949-6cb700b89eba"
], - "face_descriptor_samples": [
- "951de511-7ef5-4ed9-9c06-dcfbb399712e",
- "3c3a83c2-c21e-4855-91b5-34e6b63fb12d"
]
}
}
Позволяет удалить атрибуты лица по идентификатору.
face_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 идентификатор лица, полученный в запросе на создание лица. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests import base64 baseUri = "http://127.0.0.1:5000/6" # create sample headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", } with open("image.jpg", "rb") as image_file: image = image_file.read() url = f"{baseUri}/detector" sampleId = requests.post(url, data=image, headers=headers).json()["images"][0]["detections"]["samples"][0]["face"]["sample_id"] # create attribute with open("descriptor56", "rb") as file: descriptor = base64.b64encode(file.read()).decode() headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } params = { "ttl": 600, } payload = { "basic_attributes": { "age": 29, "gender": 0, "ethnicity": 3, }, "basic_attributes_samples": [ sampleId, ], "face_descriptor_samples": [ sampleId, ], "face_descriptors": [ {"descriptor": descriptor, "version": 56}, ], } url = f"{baseUri}/attributes" attributeId = requests.post( url, json=payload, headers=headers, params=params ).json()["attribute_id"] payload = { "external_id": "2xQ2gprbMUePw1s9gw9fvA==", "attribute": {"attribute_id": attributeId}, } # create face headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/faces" faceId = requests.post( url, headers=headers, json=payload, ).json()["face_id"] # get face attribute by ID headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/faces/{faceId}/attributes" response = requests.delete( url, headers=headers, ) print(response.status_code)
{- "error_code": 12012,
- "desc": "Bad/incomplete input data",
- "detail": "Bad query parameters 'account_id'",
}
Позволяет получить параметры для ресурса.
face_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 идентификатор лица, полученный в запросе на создание лица. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить биометрические образцы атрибутов по face_id.
face_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 идентификатор лица, полученный в запросе на создание лица. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests import base64 baseUri = "http://127.0.0.1:5000/6" # create sample headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", } with open("image.jpg", "rb") as image_file: image = image_file.read() url = f"{baseUri}/detector" sampleId = requests.post(url, data=image, headers=headers).json()["images"][0]["detections"]["samples"][0]["face"]["sample_id"] # create attribute with open("descriptor56", "rb") as file: descriptor = base64.b64encode(file.read()).decode() headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } params = { "ttl": 600, } payload = { "basic_attributes": { "age": 29, "gender": 0, "ethnicity": 3, }, "basic_attributes_samples": [ sampleId, ], "face_descriptor_samples": [ sampleId, ], "face_descriptors": [ {"descriptor": descriptor, "version": 56}, ], } url = f"{baseUri}/attributes" attributeId = requests.post( url, json=payload, headers=headers, params=params ).json()["attribute_id"] # create face payload = { "external_id": "2xQ2gprbMUePw1s9gw9fvA==", "attribute": {"attribute_id": attributeId}, } headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/faces" faceId = requests.post( url, headers=headers, json=payload, ).json()["face_id"] headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/faces/{faceId}/attributes/samples" response = requests.get( url, headers=headers, ) print(response.status_code) print(response.json())
{- "samples": [
- "0d1cc36e-d719-4f54-8abe-4e5e0cb1f43c",
- "2f1cbb34-12e5-486c-8f7f-57273053c32d"
]
}
Позволяет получить параметры для ресурса.
face_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 идентификатор лица, полученный в запросе на создание лица. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Создать список.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
user_data | string (list_user_data) <= 128 characters Default: "" Пользовательские данные, связанные со списком. |
{- "user_data": "list of good persons"
}
{- "list_id": "b5d6fd45-fcca-453d-ac05-3e594054b813",
- "url": "/6/lists/b5d6fd45-fcca-453d-ac05-3e594054b813",
}
Позволяет получить списки в соответствии с фильтрами.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
create_time__lt | string <date-time> (time) Example: create_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра |
create_time__gte | string <date-time> (time) Example: create_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра |
last_update_time__lt | string <date-time> (time) Example: last_update_time__lt=2018-08-11T09:11:41.674Z Верхнее исключенное пороговое значение для параметра |
last_update_time__gte | string <date-time> (time) Example: last_update_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра |
user_data | string Example: user_data=user_data_text Найти все объекты с параметром |
user_data__eq | string Example: user_data__eq=user_data_text Найти все объекты с одинаковыми |
list_ids | string <list of uuid> Список list_id, разделенных запятыми. |
list_id__lt | string <uuid> Верхнее исключенное пороговое значение для параметра |
list_id__gte | string <uuid> Нижнее включенное пороговое значение для параметра |
page | integer >= 1 Default: 1 Номер страницы. |
page_size | integer [ 1 .. 1000 ] Default: 10 Количество элементов на странице. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" params = { "user_data": "good", "page_size": 20, "create_time__gte": "2020-10-10T09:11:41.674Z", } headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/lists" response = requests.get(url, params=params, headers=headers) print(response.status_code) print(response.json())
{- "lists": [
- {
- "list_id": "c004aae2-f191-4a1a-9d2a-e5894f8cecbf",
- "user_data": "good guys",
- "account_id": "c004aae2-f191-4a1a-9d2a-e5894f8cecbf",
- "create_time": "2018-08-11T09:11:41.674Z",
- "last_update_time": "2018-08-11T09:11:41.674Z"
}, - {
- "list_id": "a30f4c1d-976e-439b-82ce-16b99779f906",
- "account_id": "c004aae2-f191-4a1a-9d2a-e5894f8cecbf",
- "user_data": "",
- "create_time": "2021-06-18T21:50:40.953301+03:00",
- "last_update_time": "2021-06-18T21:50:40.953301+03:00"
}
]
}
Позволяет удалить несколько списков.
with_faces | integer (int01) Default: 0 Enum: 0 1 Следует ли удалять список со всеми его лицами. |
Content-Type | string Value: "application/json" Тип содержимого – |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
list_ids required | Array of strings <uuid> (list_id) non-empty Список list_id, разделенных запятыми, подлежащих удалению. |
{- "list_ids": [
- "string"
]
}
{- "error_code": 12022,
- "desc": "Bad/incomplete input data",
- "detail": "Failed to validate input json. Path: '', message: 'Additional properties are not allowed ('faces' was unexpected)'",
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить количество списков в соответствии с фильтрами.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
user_data | string Example: user_data=user_data_text Найти все объекты с параметром |
user_data__eq | string Example: user_data__eq=user_data_text Найти все объекты с одинаковыми |
create_time__lt | string <date-time> (time) Example: create_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра |
create_time__gte | string <date-time> (time) Example: create_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра |
last_update_time__lt | string <date-time> (time) Example: last_update_time__lt=2018-08-11T09:11:41.674Z Верхнее исключенное пороговое значение для параметра |
last_update_time__gte | string <date-time> (time) Example: last_update_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра |
list_ids | string <list of uuid> Список list_id, разделенных запятыми. |
list_id__lt | string <uuid> Верхнее исключенное пороговое значение для параметра |
list_id__gte | string <uuid> Нижнее включенное пороговое значение для параметра |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # get list according to the filters params = { "user_data": "good", "create_time__gte": "2020-10-10T09:11:41.674Z", "last_update_time__gte": "2020-10-10T09:11:41.674Z", } headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/lists/count" response = requests.get(url, params=params, headers=headers) print(response.status_code) print(response.json())
{- "lists_count": 3
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить список по идентификатору.
list_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 идентификатор списка (list_id полученный в запросе "create list"). |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create list headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/lists" listId = requests.post(url, headers=headers).json()["list_id"] headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/lists/{listId}" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "list_id": "c004aae2-f191-4a1a-9d2a-e5894f8cecbf",
- "user_data": "good guys",
- "account_id": "c004aae2-f191-4a1a-9d2a-e5894f8cecbf",
- "create_time": "2018-08-11T09:11:41.674Z",
- "last_update_time": "2018-08-11T09:11:41.674Z"
}
Позволяет проверить существование списка по указанному list_id
.
list_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 идентификатор списка (list_id полученный в запросе "create list"). |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create list headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/lists" listId = requests.post(url, headers=headers).json()["list_id"] # check list headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/lists/{listId}" response = requests.head(url, headers=headers) print(response.status_code) print(response.json())
Позволяет обновить поле user_data списка.
list_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 идентификатор списка (list_id полученный в запросе "create list"). |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
user_data | string <= 128 characters Пользовательские данные, связанные со списком. |
{- "user_data": "list of good persons"
}
{- "error_code": 12017,
- "desc": "Bad/incomplete input data",
- "detail": "Bad content type",
}
Позволяет удалить список по его list_id.
list_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 идентификатор списка (list_id полученный в запросе "create list"). |
with_faces | integer (int01) Default: 0 Enum: 0 1 Следует ли удалять список со всеми его лицами. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # create list headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/lists" listId = requests.post(url, headers=headers).json()["list_id"] # delete list headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } params = {"with_faces": 1} url = f"{baseUri}/lists/{listId}" response = requests.delete(url, params=params, headers=headers) print(response.status_code)
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет получить параметры для ресурса.
list_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 идентификатор списка (list_id полученный в запросе "create list"). |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет прикреплять лица к списку или откреплять от списка.
list_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор списка, полученный в запросе "create list". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
action required | string Enum: "attach" "detach" Ожидаемое действие со списком и лицами. |
face_ids required | Array of strings <uuid> (face_id) non-empty Лица для прикрепления к списку или открепления от списка. |
{- "action": "attach",
- "face_ids": [
- "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
]
}
{- "error_code": 12017,
- "desc": "Bad/incomplete input data",
- "detail": "Bad content type",
}
Позволяет получить параметры для ресурса.
list_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор списка, полученный в запросе "create list". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет осуществить сравнение заданных эталонов с заданными кандидатами.
Примечание. Для эталонов и кандидатов должны быть извлечены биометрические шаблоны. Нельзя сравнивать объекты без биометрических шаблонов.
Источниками для кандидатов являются лица, атрибуты и события. См. примеры "compare two faces using their IDs", "compare two events using their IDs" и "compare events using filters".
Можно указать фильтр "list_id" для лиц-кандидатов для выполнения сравнения по указанному списку. См. пример "search by list and creation time".
В качестве источников для эталонов являются лица, события, атрибуты, внешние идентификаторы лиц или биометрические шаблоны (необработанные, формата SDK, или двоичного формата XPK).
Результаты сравнения возвращаются для кандидатов в соответствии с указанными фильтрами. Если ни один из кандидатов не соответствует фильтрам (например, указан несуществующий идентификатор в поле "event_ids" или поле "face_ids"), операция сравнения не будет выполнена и ошибка не будет возвращена. Поле результата будет пустым.
Если задан несуществующий эталон (например, указан несуществующий идентификатор в поле "event_id" или поле "face_id"), возвращается соответствующая ошибка. См. пример ответа "no ID for reference face found".
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Content-Type | string Enum: "application/json" "application/msgpack" Формат данных тела запроса. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Accept | string Default: application/json Enum: "application/json" "application/msgpack" Определяет MIME-тип ответа, который следует ожидать от клиента. |
required | Array of candidate_face (object) or candidate_event (object) or candidate_attribute (object) [ 0 .. 30 ] items Кандидаты для сравнения. |
required | Array of any [ 1 .. 30 ] items Эталоны для сравнения. Каждый эталон сравнивается со всеми указанными кандидатами. Можно указать один или несколько эталонов одного или нескольких типов. |
{- "candidates": [
- {
- "filters": {
- "origin": "faces",
- "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "account_id": "0468ca85-f6ca-4841-b30c-5ccc26b6f397",
- "external_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12550"
], - "user_data": "some_string",
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2022-08-11T09:11:41.674Z",
- "face_id__gte": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "557d54ec-29ad-4f3c-93b4-c9092ef12519",
- "list_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}, - "limit": 3,
- "targets": [
- "face_id",
- "account_id",
- "event_id",
- "user_data",
- "create_time",
- "external_id",
- "lists",
- "similarity"
], - "threshold": 0.01
}
], - "references": [
- {
- "type": "face",
- "id": "35229c93-85f8-44f3-ab30-3248d7051af9"
}
]
}
[- {
- "reference": {
- "id": "a68f5995-766d-4a27-889a-35e373d0f0b2",
- "type": "face"
}, - "matches": [
- {
- "result": [
- {
- "face": {
- "face_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "account_id": "0468ca85-f6ca-4841-b30c-5ccc26b6f397",
- "event_id": null,
- "user_data": "some_string",
- "create_time": "2020-08-13T18:12:20.469171+03:00",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "lists": [
- "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
]
}, - "similarity": 0.9
}
], - "filters": {
- "origin": "faces",
- "account_id": "0468ca85-f6ca-4841-b30c-5ccc26b6f397",
- "external_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12550"
], - "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "user_data": "some_string",
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2022-08-11T09:11:41.674Z",
- "face_id__gte": "000d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "557d54ec-29ad-4f3c-93b4-c9092ef12519",
- "list_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
}
]
}
]
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Matcher API позволяет отправлять задачи в сервис, который ищет тела, похожие на заданного кандидата или кандидатов, путем их сравнения. Для эталонов и кандидатов должен быть извлечен биометрический шаблон тела.
Источниками эталонов являются события или двоичный биометрический шаблон. Источником для кандидатов являются события.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Content-Type | string Enum: "application/json" "application/msgpack" Формат данных тела запроса. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Accept | string Default: application/json Enum: "application/json" "application/msgpack" Определяет MIME-тип ответа, который следует ожидать от клиента. |
required | Array of any [ 1 .. 30 ] items Эталоны для сравнения. Каждый эталон сравнивается со всеми указанными кандидатами. Можно указать один или несколько эталонов одного или нескольких типов. |
required | Array of objects (candidate_event) [ 1 .. 30 ] items Кандидаты для сравнения. |
{- "references": [
- {
- "type": "event",
- "id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
], - "candidates": [
- {
- "filters": {
- "origin": "events",
- "event_ids": [
- "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
], - "account_id": "string",
- "event_id__gte": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "event_id__lt": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "handler_ids": [
- "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
], - "external_ids": [
- "14159261415926"
], - "top_matching_candidates_label": "good guys",
- "top_similar_object_ids": [
- "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
], - "top_similar_external_ids": [
- "14159261415926"
], - "top_similar_object_similarity__gte": 0.5,
- "top_similar_object_similarity__lt": 0.5,
- "age__gte": 22,
- "age__lt": 30,
- "gender": 1,
- "emotions": [
- 4,
- 7
], - "liveness": 1,
- "masks": [
- 1
], - "ethnic_groups": [
- 4,
- 3
], - "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "user_data": "info",
- "sources": [
- "cam1",
- "cam2",
- null
], - "stream_ids": [
- "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
], - "tags": [
- "tag1",
- "tag2"
], - "cities": [
- "moscow",
- "New-York",
- null
], - "areas": [
- "area1",
- "area2",
- null
], - "districts": [
- "mitino",
- "central park",
- null
], - "streets": [
- "arbat, schepkina",
- null
], - "house_numbers": [
- "1",
- "1/2str3",
- null
], - "geo_position": {
- "origin_longitude": 36.616,
- "origin_latitude": 55.752,
- "longitude_delta": 0.01,
- "latitude_delta": 0.01
}, - "track_ids": [
- "track_id_number_1",
- "track_id_number_2",
- null
], - "apparent_gender": [
- 1
], - "apparent_age__gte": 50,
- "apparent_age__lt": 50,
- "headwear_states": [
- 1
], - "headwear_apparent_colors": [
- "black"
], - "sleeve_lengths": [
- "short"
], - "upper_clothing_colors": [
- "black",
- "white"
], - "lower_garment_colors": [
- "black",
- "white"
], - "lower_garment_types": [
- "trousers"
], - "shoes_apparent_colors": [
- "black"
], - "backpack_states": [
- 1
], - "meta": {
- "user.age__gt": 18
}, - "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2018-08-11T09:11:41.674Z",
- "end_time__gte": "2018-08-11T09:11:41.674Z",
- "end_time__lt": "2018-08-11T09:11:41.674Z"
}, - "order": "similarity",
- "limit": 3,
- "targets": [
- "event_id"
], - "threshold": 0.5
}
]
}
[- {
- "reference": {
- "id": "a68f5995-766d-4a27-889a-35e373d0f0b2",
- "type": "event"
}, - "matches": [
- {
- "result": [
- {
- "similarity": 0.5,
- "event": {
- "create_time": "2018-08-11T09:11:41.674Z",
- "event_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "handler_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "account_id": "0468ca85-f6ca-4841-b30c-5ccc26b6f397",
- "external_id": "14159261415926",
- "source": "Main_hall_camera",
- "stream_id": "0468ca85-f6ca-4841-b30c-5ccc26b6f397",
- "top_match": {
- "face_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "similarity": 0.6,
- "label": "good guys",
- "external_id": "external_id_1"
}, - "match_result": [
- {
- "candidates": [
- {
- "event": {
- "event_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "create_time": "2018-08-11T09:11:41.674Z",
- "external_id": null,
- "user_data": "user data",
- "handler_id": null,
- "stream_id": "a778c4a5-2191-476e-a261-3b4f9ce2e25e",
- "source": "cam_1"
}, - "similarity": 0.5
}
], - "label": "good guy"
}
], - "face_detections": [
- {
- "sample_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "detection": {
- "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}
}, - "detect_time": "2018-08-11T09:11:41.674Z",
- "detect_ts": 123.456,
- "image_origin": "/6/images/b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
], - "body_detections": [
- {
- "sample_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "detection": {
- "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}
}, - "detect_time": "2018-08-11T09:11:41.674Z",
- "detect_ts": 123.456,
- "image_origin": "/6/images/b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
], - "face_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "attach_result": [
- "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
], - "gender": 1,
- "age": 29,
- "emotion": 1,
- "mask": 1,
- "ethnic_group": 4,
- "tags": [
- "tag1",
- "tag2"
], - "user_data": "info",
- "location": {
- "city": "Moscow",
- "area": "string",
- "district": "string",
- "street": "Lenina",
- "house_number": "3",
- "geo_position": {
- "longitude": -63.9,
- "latitude": 40.7
}
}, - "track_id": "useful_track_id_number_1"
}
}
], - "filters": {
- "origin": "events",
- "event_ids": [
- "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
], - "account_id": "0468ca85-f6ca-4841-b30c-5ccc26b6f397",
- "event_id__gte": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "event_id__lt": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2018-08-11T09:11:41.674Z",
- "handler_ids": [
- "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
], - "external_ids": [
- "14159261415926"
], - "top_matching_candidates_label": "good guys",
- "top_similar_object_ids": [
- "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
], - "top_similar_external_ids": [
- "external_id_1"
], - "top_similar_object_similarity__gte": 0.5,
- "top_similar_object_similarity__lt": 0.5,
- "age__gte": 22,
- "age__lt": 30,
- "gender": 1,
- "emotions": [
- 4,
- 7
], - "masks": [
- 2,
- 3
], - "ethnic_groups": [
- 4,
- 3
], - "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "user_data": "user info",
- "sources": [
- "cam1",
- "cam2"
], - "tags": [
- "tag1",
- "tag2"
], - "cities": [
- "Moscow",
- "New-York"
], - "areas": [
- "area1",
- "area2"
], - "districts": [
- "mitino",
- "central park"
], - "streets": [
- "arbat",
- "schepkina"
], - "house_numbers": [
- "1",
- "1/2str3"
], - "geo_position": {
- "origin_longitude": 36.616,
- "origin_latitude": 55.752,
- "longitude_delta": 0.01,
- "latitude_delta": 0.01
}, - "track_ids": [
- "track_id_number_1",
- "track_id_number_2"
]
}
}
]
}, - {
- "reference": {
- "id": "a68f5995-766d-4a27-889a-35e373d0f0b2",
- "type": "event_external_id",
- "event_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}, - "matches": [
- {
- "result": [
- {
- "similarity": 1,
- "event": {
- "create_time": "2018-08-11T09:11:41.674Z",
- "event_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "handler_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "account_id": "0468ca85-f6ca-4841-b30c-5ccc26b6f397",
- "external_id": "14159261415926",
- "source": "Main_hall_camera",
- "stream_id": "0468ca85-f6ca-4841-b30c-5ccc26b6f397",
- "top_match": {
- "face_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "similarity": 0.6,
- "label": "good guys",
- "external_id": "external_id_1"
}, - "match_result": [
- {
- "candidates": [
- {
- "event": {
- "event_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "create_time": "2018-08-11T09:11:41.674Z",
- "external_id": null,
- "user_data": "user data",
- "handler_id": null,
- "stream_id": "a778c4a5-2191-476e-a261-3b4f9ce2e25e",
- "source": "cam_1"
}, - "similarity": 0.5
}
], - "label": "good guy"
}
], - "face_detections": [
- {
- "sample_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "detection": {
- "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}
}, - "detect_time": "2018-08-11T09:11:41.674Z",
- "detect_ts": 123.456,
- "image_origin": "/6/images/b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
], - "body_detections": [
- {
- "sample_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "detection": {
- "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}
}, - "detect_time": "2018-08-11T09:11:41.674Z",
- "detect_ts": 123.456,
- "image_origin": "/6/images/b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
], - "face_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "attach_result": [
- "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
], - "gender": 1,
- "age": 29,
- "emotion": 1,
- "mask": 1,
- "ethnic_group": 4,
- "tags": [
- "tag1",
- "tag2"
], - "user_data": "info",
- "location": {
- "city": "Moscow",
- "area": "string",
- "district": "string",
- "street": "Lenina",
- "house_number": "3",
- "geo_position": {
- "longitude": -63.9,
- "latitude": 40.7
}
}, - "track_id": "useful_track_id_number_1"
}
}
], - "filters": {
- "origin": "events",
- "account_id": "0468ca85-f6ca-4841-b30c-5ccc26b6f397"
}
}
]
}
]
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет производить расчеты для определения схожести биометрических шаблонов.
Content-Type | string Enum: "application/json" "application/msgpack" Формат данных тела запроса. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Accept | string Default: application/json Enum: "application/json" "application/msgpack" Определяет MIME-тип ответа, который следует ожидать от клиента. |
required | Array of xpk_file_entity (object) or sdk_descriptor_entity (object) or raw_descriptor_entity (object) non-empty Список эталонов для сравнения. |
required | Array of xpk_file_entity (object) or sdk_descriptor_entity (object) or raw_descriptor_entity (object) non-empty Кандидаты для сравнения. |
{- "references": [
- {
- "id": "string",
- "type": "xpk_file",
- "data": "string"
}
], - "candidates": [
- {
- "id": "string",
- "type": "xpk_file",
- "data": "string"
}
]
}
{- "matches": [
- {
- "reference_id": "46aeab25-df7d-46bd-afe2-cf60706a0d96",
- "matches": [
- {
- "candidate_id": "f096439d-f306-49dc-bee9-266cb37e95eb",
- "similarity": 0.635
}
]
}, - {
- "reference_id": "raw-0",
- "matches": [
- {
- "candidate_id": "candidate",
- "similarity": 1
}, - {
- "candidate_id": "sdk",
- "similarity": 0.867
}, - {
- "candidate_id": "xpk",
- "similarity": 0.678
}
]
}
]
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Создать обработчик.
Обработчик определяет список правил (политик) обработки входных изображений.
Обработчики могут быть статическими или динамическими.
Если обработчик статический, то сначала указываются его политики, а затем при создании события указывается созданный идентификатор обработчика.
Если обработчик динамический, то сначала он создается без предустановленных политик, а затем они указываются при создании события. Вы можете создать динамический обработчик, установив в поле "handler_type" значение 1.
Некоторые параметры из политики
storage_policy
включены по умолчанию (например,face_sample_policy > store_sample
). Не забудьте отключить необходимые объекты для избежания переполнения хранилища.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
description | string <= 128 characters Описание обработчика. Позволяет отличать создаваемые обработчики друг от друга, а также для фильтрации обработчиков с помощью запросов "get handlers" и "get handler count". |
object (Policies) Набор правил, определяющих обработку входных изображений. Отсутствие политик указывает на то, что обработчик является динамическим. | |
handler_type | integer (handler_type) Default: 0 Enum: 0 1 2 Следует ли получать только статические (0), динамические (1) или lambda обработчики (2). Если тип является статическим:
Если тип является динамическим:
Если тип является lambda:
|
is_dynamic | boolean (is_dynamic) Deprecated Default: false Флаг динамического обработчика. Если установлено значение "true", обработчик создается без предопределенных политик. Используйте этот флаг, чтобы указать политики для каждого события, созданного с помощью ресурса "/handlers/{handler_id}/event". Для задания политик используйте схему тела запроса "multipart/form-data". |
lambda_id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Lambda ID. |
{- "description": "Full handler example",
- "policies": {
- "detect_policy": {
- "estimate_people_count": {
- "estimate": 1
}, - "detect_face": 1,
- "detect_body": 1,
- "multiface_policy": 1,
- "estimate_head_pose": 1,
- "estimate_emotions": 1,
- "estimate_mask": 1,
- "estimate_quality": 1,
- "estimate_gaze": 1,
- "estimate_glasses": 1,
- "estimate_eyes_attributes": 1,
- "estimate_mouth_attributes": 1,
- "detect_landmarks68": 1,
- "extract_exif": 1,
- "yaw_threshold": 180,
- "roll_threshold": 180,
- "pitch_threshold": 180,
- "mask_states": [
- 1
], - "estimate_liveness": {
- "estimate": 1,
- "quality_threshold": 0.7,
- "liveness_threshold": 0.7
}, - "liveness_states": [
- 1
], - "face_quality": {
- "estimate": 1,
- "filter": 0,
- "checks": {
- "image_format": {
- "estimate": 1,
- "threshold": [
- "JPEG",
- "JPEG2000",
- "PNG"
]
}, - "illumination_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "specularity_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "blurriness_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.61,
- "max": 1
}
}, - "dark_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "light_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.57,
- "max": 1
}
}, - "head_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_roll": {
- "estimate": 1,
- "threshold": {
- "min": -8,
- "max": 8
}
}, - "gaze_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "gaze_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "mouth_smiling": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_occluded": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_open": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "glasses": {
- "estimate": 1,
- "threshold": [
- "no_glasses",
- "eyeglasses"
]
}, - "left_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "right_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "head_horizontal_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.45,
- "max": 0.55
}
}, - "head_vertical_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 0.5
}
}, - "head_width": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 0.75
}
}, - "head_height": {
- "estimate": 1,
- "threshold": {
- "min": 0.6,
- "max": 0.9
}
}, - "eye_distance": {
- "estimate": 1,
- "threshold": {
- "min": 90,
- "max": 1920
}
}, - "image_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "image_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1080
}
}, - "aspect_ratio": {
- "estimate": 1,
- "threshold": {
- "min": 0.74,
- "max": 0.8
}
}, - "face_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "face_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "indent_left": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_right": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_upper": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_lower": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "image_size": {
- "estimate": 1,
- "threshold": {
- "min": 5120,
- "max": 2097152
}
}, - "eyebrows_state": {
- "estimate": 1,
- "threshold": [
- "neutral"
]
}, - "headwear_type": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "smile_properties": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "face_color_type": {
- "estimate": 1,
- "threshold": [
- "color"
]
}, - "natural_light": {
- "estimate": 1,
- "threshold": 1
}, - "radial_distortion": {
- "estimate": 1,
- "threshold": 0
}, - "red_eyes": {
- "estimate": 1,
- "threshold": 0
}, - "illumination_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "dynamic_range": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_lightness": {
- "estimate": 1,
- "threshold": {
- "min": 0.2,
- "max": 1
}
}
}
}, - "body_attributes": {
- "estimate_basic_attributes": 1,
- "estimate_upper_body": 1,
- "estimate_lower_body": 1,
- "estimate_accessories": 1
}
}, - "extract_policy": {
- "extract_basic_attributes": 1,
- "extract_face_descriptor": 1,
- "fd_score_threshold": 0.6,
- "extract_body_descriptor": 1
}, - "match_policy": [
- {
- "label": "good guys",
- "candidates": {
- "origin": "faces",
- "face_ids": [
- "4db81a9a-515c-4cde-ac73-1810f5f737f2",
- "957a48ba-f457-4814-829a-0fa55bc246fc"
], - "account_id": "6d071cca-fda5-4a03-84d5-5bea65904480",
- "external_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12550"
], - "user_data": "operator",
- "create_time__gte": "now-2y",
- "create_time__lt": "2022-08-11T09:11:41.674Z",
- "face_id__gte": "2046d39b-410d-481e-b9de-ede6a0c7367f",
- "face_id__lt": "957a48ba-f457-4814-829a-0fa55bc246fc",
- "list_id": "275d96c0-e655-4a69-a374-ad5e94b89bf9"
}, - "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 50,
- "age__gte": 22,
- "liveness": [
- 1
]
}, - "limit": 3,
- "targets": [
- "face_id"
], - "threshold": 0.5
}
], - "storage_policy": {
- "face_sample_policy": {
- "store_sample": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "body_sample_policy": {
- "store_sample": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "image_origin_policy": {
- "store_image": 1,
- "use_external_references": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "attribute_policy": {
- "store_attribute": 1,
- "ttl": 300,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "face_policy": {
- "store_face": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}, - "set_sample_as_avatar": 0,
- "link_to_lists_policy": [
- {
- "list_id": "79bee337-484f-4124-b7e2-e4b76fb26308",
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}
]
}, - "event_policy": {
- "store_event": 1,
- "wait_saving": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "notification_policy": {
- "send_notification": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}
}, - "conditional_tags_policy": [
- {
- "tag": "new_tag",
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 50,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.3
}
]
}
}
]
}, - "handler_type": 0
}
{- "handler_id": "b5d6fd45-fcca-453d-ac05-3e594054b813",
- "url": "/6/handlers/b5d6fd45-fcca-453d-ac05-3e594054b813",
}
Позволяет получить обработчики по фильтрам.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
page | integer >= 1 Default: 1 Номер страницы. |
page_size | integer [ 1 .. 1000 ] Default: 10 Количество элементов на странице. |
handler_type | integer Enum: 0 1 2 Следует ли получать только обработчик с определенным типом (0 - статический, 1 - динамический, 2 - lambda). Если не задано, будут получены обработчики любого типа. Если указан |
is_dynamic | integer Deprecated Enum: 0 1 Получать только динамические (1) или нединамические (0) обработчики. Если параметр не указан, будут получены обработчики обоих типов. |
description | string будут обработаны записи с описаниями схожими с данным. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" params = { "description": "handler", "handler_type": 1, "page": 1, } headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/handlers" response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json())
[- {
- "handler_id": "de0846a8-09b2-4c6f-8175-99cfae98cf6b",
- "account_id": "3c3a83c2-c21e-4855-91b5-34e6b63fb12d",
- "description": "first handler",
- "policies": {
- "detect_policy": {
- "estimate_people_count": {
- "estimate": 1
}, - "detect_face": 1,
- "detect_body": 1,
- "multiface_policy": 1,
- "estimate_head_pose": 1,
- "estimate_emotions": 1,
- "estimate_mask": 1,
- "estimate_quality": 1,
- "estimate_gaze": 1,
- "estimate_glasses": 1,
- "estimate_eyes_attributes": 1,
- "estimate_mouth_attributes": 1,
- "detect_landmarks68": 1,
- "extract_exif": 1,
- "yaw_threshold": 180,
- "roll_threshold": 180,
- "pitch_threshold": 180,
- "mask_states": [
- 1
], - "estimate_liveness": {
- "estimate": 1,
- "quality_threshold": 0.7,
- "liveness_threshold": 0.7
}, - "liveness_states": [
- 1
], - "face_quality": {
- "estimate": 1,
- "filter": 0,
- "checks": {
- "image_format": {
- "estimate": 1,
- "threshold": [
- "JPEG",
- "JPEG2000",
- "PNG"
]
}, - "illumination_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "specularity_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "blurriness_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.61,
- "max": 1
}
}, - "dark_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "light_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.57,
- "max": 0.9
}
}, - "head_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_roll": {
- "estimate": 1,
- "threshold": {
- "min": -8,
- "max": 8
}
}, - "gaze_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "gaze_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "mouth_smiling": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_occluded": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_open": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "glasses": {
- "estimate": 1,
- "threshold": [
- "no_glasses",
- "eyeglasses"
]
}, - "left_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "right_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "head_horizontal_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.45,
- "max": 0.55
}
}, - "head_vertical_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 0.5
}
}, - "head_width": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 0.75
}
}, - "head_height": {
- "estimate": 1,
- "threshold": {
- "min": 0.6,
- "max": 0.9
}
}, - "eye_distance": {
- "estimate": 1,
- "threshold": {
- "min": 90,
- "max": 1920
}
}, - "image_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "image_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1080
}
}, - "aspect_ratio": {
- "estimate": 1,
- "threshold": {
- "min": 0.74,
- "max": 0.8
}
}, - "face_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "face_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "indent_left": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_right": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_upper": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_lower": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "image_size": {
- "estimate": 1,
- "threshold": {
- "min": 5120,
- "max": 2097152
}
}, - "eyebrows_state": {
- "estimate": 1,
- "threshold": [
- "neutral"
]
}, - "smile_properties": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "headwear_type": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "natural_light": {
- "estimate": 1,
- "threshold": 1
}, - "radial_distortion": {
- "estimate": 1,
- "threshold": 0
}, - "red_eyes": {
- "estimate": 1,
- "threshold": 0
}, - "face_color_type": {
- "estimate": 1,
- "threshold": [
- "color"
]
}, - "illumination_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "dynamic_range": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_lightness": {
- "estimate": 1,
- "threshold": {
- "min": 0.2,
- "max": 1
}
}, - "background_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "shoulders_position": {
- "estimate": 1,
- "threshold": [
- "parallel"
]
}
}
}, - "body_attributes": {
- "estimate_basic_attributes": 0,
- "estimate_upper_body": 0,
- "estimate_lower_body": 0,
- "estimate_accessories": 0
}
}, - "extract_policy": {
- "extract_basic_attributes": 1,
- "extract_face_descriptor": 1,
- "fd_score_threshold": 0.6,
- "extract_body_descriptor": 1
}, - "match_policy": [
- {
- "label": "good guys",
- "candidates": {
- "origin": "faces",
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2022-08-11T09:11:41.674Z"
}, - "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 50,
- "age__gte": 22
}, - "limit": 3,
- "targets": [
- "face_id"
], - "threshold": 0.5
}
], - "storage_policy": {
- "face_sample_policy": {
- "store_sample": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "body_sample_policy": {
- "store_sample": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "image_origin_policy": {
- "store_image": 1,
- "use_external_references": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "attribute_policy": {
- "store_attribute": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}, - "ttl": 300
}, - "face_policy": {
- "store_face": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}, - "set_sample_as_avatar": 0,
- "link_to_lists_policy": [
- {
- "list_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}
]
}, - "event_policy": {
- "store_event": 1,
- "wait_saving": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "notification_policy": {
- "send_notification": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}
}, - "conditional_tags_policy": [
- {
- "tag": "new_tag",
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 50,
- "age__gte": 22,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.3
}
]
}
}
]
}, - "create_time": "2018-08-11T09:11:41.674Z",
- "last_update_time": "2018-08-11T09:11:41.674Z",
- "handler_type": 0
}, - {
- "handler_id": "ff0be071-1fd6-4641-a780-b8a87a871ef8",
- "account_id": "3c3a83c2-c21e-4855-91b5-34e6b63fb12d",
- "create_time": "2020-05-19T13:09:47.414773+03:00",
- "last_update_time": "2020-05-19T13:09:47.414773+03:00",
- "description": "76919ac6-95d2-4349-a7e9-5637117cdd29",
- "policies": {
- "detect_policy": {
- "estimate_people_count": {
- "estimate": 1
}, - "multiface_policy": 1,
- "estimate_head_pose": 0,
- "estimate_emotions": 0,
- "estimate_mask": 0,
- "estimate_quality": 0,
- "estimate_gaze": 0,
- "estimate_glasses": 1,
- "estimate_eyes_attributes": 0,
- "estimate_mouth_attributes": 0,
- "detect_landmarks68": 0,
- "extract_exif": 0,
- "detect_face": 1,
- "detect_body": 0,
- "pitch_threshold": null,
- "roll_threshold": null,
- "yaw_threshold": null,
- "mask_states": null,
- "estimate_liveness": {
- "estimate": 1,
- "quality_threshold": 0.7,
- "liveness_threshold": 0.7
}, - "liveness_states": [
- 1
], - "face_quality": {
- "estimate": 1,
- "filter": 0,
- "checks": {
- "image_format": {
- "estimate": 1,
- "threshold": [
- "JPEG",
- "JPEG2000",
- "PNG"
]
}, - "illumination_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "specularity_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "blurriness_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.61,
- "max": 1
}
}, - "dark_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "light_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.57,
- "max": 0.9
}
}, - "head_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_roll": {
- "estimate": 1,
- "threshold": {
- "min": -8,
- "max": 8
}
}, - "gaze_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "gaze_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "mouth_smiling": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_occluded": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_open": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "glasses": {
- "estimate": 1,
- "threshold": [
- "no_glasses",
- "eyeglasses"
]
}, - "left_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "right_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "head_horizontal_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.45,
- "max": 0.55
}
}, - "head_vertical_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 0.5
}
}, - "head_width": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 0.75
}
}, - "head_height": {
- "estimate": 1,
- "threshold": {
- "min": 0.6,
- "max": 0.9
}
}, - "eye_distance": {
- "estimate": 1,
- "threshold": {
- "min": 90,
- "max": 1920
}
}, - "image_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "image_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1080
}
}, - "aspect_ratio": {
- "estimate": 1,
- "threshold": {
- "min": 0.74,
- "max": 0.8
}
}, - "face_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "face_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "indent_left": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_right": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_upper": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_lower": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "image_size": {
- "estimate": 1,
- "threshold": {
- "min": 5120,
- "max": 2097152
}
}, - "eyebrows_state": {
- "estimate": 1,
- "threshold": [
- "neutral"
]
}, - "smile_properties": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "headwear_type": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "natural_light": {
- "estimate": 1,
- "threshold": 1
}, - "radial_distortion": {
- "estimate": 1,
- "threshold": 0
}, - "red_eyes": {
- "estimate": 1,
- "threshold": 0
}, - "face_color_type": {
- "estimate": 1,
- "threshold": [
- "color"
]
}, - "illumination_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "dynamic_range": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_lightness": {
- "estimate": 1,
- "threshold": {
- "min": 0.2,
- "max": 1
}
}, - "background_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "shoulders_position": {
- "estimate": 1,
- "threshold": [
- "parallel"
]
}
}
}, - "body_attributes": {
- "estimate_basic_attributes": 1,
- "estimate_upper_body": 1,
- "estimate_lower_body": 1,
- "estimate_accessories": 1
}
}, - "extract_policy": {
- "extract_basic_attributes": 0,
- "fd_score_threshold": 0,
- "extract_face_descriptor": 1,
- "extract_body_descriptor": 0
}, - "match_policy": [ ],
- "conditional_tags_policy": [ ],
- "storage_policy": {
- "face_sample_policy": {
- "filters": { },
- "store_sample": 1
}, - "body_sample_policy": {
- "filters": { },
- "store_sample": 1
}, - "image_origin_policy": {
- "filters": { },
- "store_image": 0,
- "use_external_references": 0
}, - "attribute_policy": {
- "filters": { },
- "store_attribute": 0,
- "ttl": 300
}, - "face_policy": {
- "filters": { },
- "store_face": 0,
- "set_sample_as_avatar": 1,
- "link_to_lists_policy": [ ]
}, - "event_policy": {
- "filters": { },
- "store_event": 1,
- "wait_saving": 1
}, - "notification_policy": {
- "filters": { },
- "send_notification": 1
}
}
}, - "handler_type": 0
}
]
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить количество обработчиков.
description | string Найти все обработчики с описанием, схожим с этим параметром. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
handler_type | integer Enum: 0 1 2 Следует ли получать только обработчик с определенным типом (0 - статический, 1 - динамический, 2 - lambda). Если не задано, будут получены обработчики любого типа. Если указан |
is_dynamic | integer Deprecated Enum: 0 1 Получать только динамические (1) или нединамические (0) обработчики. Если параметр не указан, будут получены обработчики обоих типов. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } params = { "description": "handler", "handler_type": 0, } url = f"{baseUri}/handlers/count" response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json())
{- "handlers_count": 5
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет проверить политики обработчика, прежде чем использовать их для создания или обновления обработчика.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
required | object (Policies) Набор правил, определяющих обработку входных изображений. Отсутствие политик указывает на то, что обработчик является динамическим. |
{- "policies": {
- "detect_policy": {
- "estimate_people_count": {
- "estimate": 0
}, - "detect_face": 1,
- "detect_body": 0,
- "multiface_policy": 0,
- "estimate_head_pose": 0,
- "estimate_emotions": 0,
- "estimate_mask": 0,
- "estimate_quality": 0,
- "estimate_gaze": 0,
- "estimate_glasses": 0,
- "estimate_eyes_attributes": 0,
- "estimate_mouth_attributes": 0,
- "detect_landmarks68": 0,
- "extract_exif": 0,
- "yaw_threshold": 180,
- "roll_threshold": 180,
- "pitch_threshold": 180,
- "mask_states": [ ],
- "estimate_liveness": {
- "estimate": 0,
- "liveness_threshold": 0.5,
- "quality_threshold": 0.5
}, - "liveness_states": [ ],
- "face_quality": {
- "estimate": 0,
- "filter": 0,
- "checks": {
- "image_format": {
- "estimate": 0,
- "threshold": [
- "JPEG",
- "JPEG2000",
- "PNG"
]
}, - "illumination_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "specularity_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "blurriness_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "dark_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "light_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "head_yaw": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "head_pitch": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "head_roll": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "gaze_yaw": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "gaze_pitch": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "mouth_smiling": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "mouth_occluded": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "mouth_open": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "glasses": {
- "estimate": 0,
- "threshold": [
- "no_glasses",
- "eyeglasses"
]
}, - "left_eye": {
- "estimate": 0,
- "threshold": [
- "open"
]
}, - "right_eye": {
- "estimate": 0,
- "threshold": [
- "open"
]
}, - "head_horizontal_center": {
- "estimate": 0,
- "threshold": {
- "min": 0.45,
- "max": 0.55
}
}, - "head_vertical_center": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.5
}
}, - "head_width": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 0.75
}
}, - "head_height": {
- "estimate": 0,
- "threshold": {
- "min": 0.6,
- "max": 0.9
}
}, - "eye_distance": {
- "estimate": 0,
- "threshold": {
- "min": 91.1,
- "max": 92.2
}
}, - "image_width": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "image_height": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 1080
}
}, - "aspect_ratio": {
- "estimate": 0,
- "threshold": {
- "min": 0.74,
- "max": 0.8
}
}, - "face_width": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "face_height": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 0
}
}, - "indent_left": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "indent_right": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "indent_upper": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "indent_lower": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "image_size": {
- "estimate": 0,
- "threshold": {
- "min": 5120,
- "max": 2097152
}
}, - "eyebrows_state": {
- "estimate": 0,
- "threshold": [
- "neutral"
]
}, - "headwear_type": {
- "estimate": 0,
- "threshold": [
- "none"
]
}, - "smile_properties": {
- "estimate": 0,
- "threshold": [
- "none"
]
}, - "face_color_type": {
- "estimate": 0,
- "threshold": [
- "color"
]
}, - "natural_light": {
- "estimate": 0,
- "threshold": 0
}, - "red_eyes": {
- "estimate": 0,
- "threshold": 0
}, - "radial_distortion": {
- "estimate": 0,
- "threshold": 0
}, - "illumination_uniformity": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "dynamic_range": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_uniformity": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_lightness": {
- "estimate": 0,
- "threshold": {
- "min": 0.2,
- "max": 1
}
}, - "shoulders_position": {
- "estimate": 0,
- "threshold": [
- "parallel"
]
}
}
}, - "body_attributes": {
- "estimate_basic_attributes": 0,
- "estimate_upper_body": 0,
- "estimate_lower_body": 0,
- "estimate_accessories": 0
}
}, - "extract_policy": {
- "extract_basic_attributes": 0,
- "extract_face_descriptor": 1,
- "fd_score_threshold": 0.7,
- "extract_body_descriptor": 0
}, - "match_policy": [
- {
- "label": "",
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
]
}, - "descriptor": {
- "descriptor_type": "face"
}, - "limit": 3,
- "targets": [
- "face_id"
], - "threshold": 0.5,
- "candidates": {
- "origin": "faces",
- "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "account_id": "string",
- "external_ids": [
- "14159261415926"
], - "user_data": "info",
- "face_id__gte": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "string",
- "list_id": "string",
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2018-08-11T09:11:41.674Z"
}
}
], - "storage_policy": {
- "face_sample_policy": {
- "store_sample": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}
}, - "body_sample_policy": {
- "store_sample": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}
}, - "image_origin_policy": {
- "store_image": 0,
- "use_external_references": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}
}, - "attribute_policy": {
- "store_attribute": 0,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}, - "ttl": 300
}, - "face_policy": {
- "store_face": 0,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}, - "set_sample_as_avatar": 1,
- "link_to_lists_policy": [
- {
- "list_id": "string",
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}
}
]
}, - "event_policy": {
- "store_event": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}, - "wait_saving": 1
}, - "notification_policy": {
- "send_notification": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}
}
}, - "conditional_tags_policy": [
- {
- "tag": "good",
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}
}
]
}
}
{- "error_code": 12017,
- "desc": "Bad/incomplete input data",
- "detail": "Bad content type",
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить обработчик по его handler_id.
handler_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор обработчика. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
import requests baseUri = "http://127.0.0.1:5000/6" # create handler headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/handlers" payload = {"handler_type": 1} dynamicHandlerId = requests.post(url, json=payload, headers=headers).json()["handler_id"] # get handler headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=" } url = f"{baseUri}/handlers/{dynamicHandlerId}" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "handler_id": "de0846a8-09b2-4c6f-8175-99cfae98cf6b",
- "account_id": "3c3a83c2-c21e-4855-91b5-34e6b63fb12d",
- "description": "first handler",
- "policies": {
- "detect_policy": {
- "estimate_people_count": {
- "estimate": 0
}, - "detect_face": 1,
- "detect_body": 1,
- "multiface_policy": 1,
- "estimate_head_pose": 1,
- "estimate_emotions": 1,
- "estimate_mask": 1,
- "estimate_quality": 1,
- "estimate_gaze": 1,
- "estimate_glasses": 1,
- "estimate_eyes_attributes": 1,
- "estimate_mouth_attributes": 1,
- "detect_landmarks68": 1,
- "extract_exif": 1,
- "yaw_threshold": 180,
- "roll_threshold": 180,
- "pitch_threshold": 180,
- "mask_states": [
- 1
], - "estimate_liveness": {
- "estimate": 1,
- "quality_threshold": 0.7,
- "liveness_threshold": 0.7
}, - "liveness_states": [
- 1
], - "face_quality": {
- "estimate": 1,
- "filter": 0,
- "checks": {
- "image_format": {
- "estimate": 1,
- "threshold": [
- "JPEG",
- "JPEG2000",
- "PNG"
]
}, - "illumination_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "specularity_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "blurriness_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.61,
- "max": 1
}
}, - "dark_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "light_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.57,
- "max": 0.9
}
}, - "head_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_roll": {
- "estimate": 1,
- "threshold": {
- "min": -8,
- "max": 8
}
}, - "gaze_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "gaze_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "mouth_smiling": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_occluded": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_open": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "glasses": {
- "estimate": 1,
- "threshold": [
- "no_glasses",
- "eyeglasses"
]
}, - "left_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "right_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "head_horizontal_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.45,
- "max": 0.55
}
}, - "head_vertical_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 0.5
}
}, - "head_width": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 0.75
}
}, - "head_height": {
- "estimate": 1,
- "threshold": {
- "min": 0.6,
- "max": 0.9
}
}, - "eye_distance": {
- "estimate": 1,
- "threshold": {
- "min": 90,
- "max": 1920
}
}, - "image_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "image_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1080
}
}, - "aspect_ratio": {
- "estimate": 1,
- "threshold": {
- "min": 0.74,
- "max": 0.8
}
}, - "face_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "face_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "indent_left": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_right": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_upper": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_lower": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "image_size": {
- "estimate": 1,
- "threshold": {
- "min": 5120,
- "max": 2097152
}
}, - "eyebrows_state": {
- "estimate": 1,
- "threshold": [
- "neutral"
]
}, - "smile_properties": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "headwear_type": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "natural_light": {
- "estimate": 1,
- "threshold": 1
}, - "radial_distortion": {
- "estimate": 1,
- "threshold": 0
}, - "red_eyes": {
- "estimate": 1,
- "threshold": 0
}, - "face_color_type": {
- "estimate": 1,
- "threshold": [
- "color"
]
}, - "illumination_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "dynamic_range": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_lightness": {
- "estimate": 1,
- "threshold": {
- "min": 0.2,
- "max": 1
}
}, - "background_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "shoulders_position": {
- "estimate": 1,
- "threshold": [
- "parallel"
]
}
}
}, - "body_attributes": {
- "estimate_basic_attributes": 0,
- "estimate_upper_body": 0,
- "estimate_lower_body": 0,
- "estimate_accessories": 0
}
}, - "extract_policy": {
- "extract_basic_attributes": 1,
- "extract_face_descriptor": 1,
- "fd_score_threshold": 0.6,
- "extract_body_descriptor": 1
}, - "match_policy": [
- {
- "label": "good guys",
- "candidates": {
- "origin": "faces",
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2022-08-11T09:11:41.674Z"
}, - "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 50,
- "age__gte": 22
}, - "limit": 3,
- "targets": [
- "face_id"
], - "threshold": 0.5
}
], - "storage_policy": {
- "face_sample_policy": {
- "store_sample": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "body_sample_policy": {
- "store_sample": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "image_origin_policy": {
- "store_image": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "attribute_policy": {
- "store_attribute": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}, - "ttl": 300
}, - "face_policy": {
- "store_face": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}, - "set_sample_as_avatar": 0,
- "link_to_lists_policy": [
- {
- "list_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}
]
}, - "event_policy": {
- "store_event": 1,
- "wait_saving": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}, - "notification_policy": {
- "send_notification": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 1
], - "age__lt": 0,
- "age__gte": 0,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.9
}
]
}
}
}, - "conditional_tags_policy": [
- {
- "tag": "new_tag",
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 50,
- "age__gte": 22,
- "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.3
}
]
}
}
]
}, - "create_time": "2018-08-11T09:11:41.674Z",
- "last_update_time": "2018-08-11T09:11:41.674Z",
- "handler_type": 0
}
Позволяет обновить обработчик. Невозможно обновить только часть обработчика, нужно указать все поля для текущего обработчика.
handler_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор обработчика. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
description | string <= 128 characters Описание обработчика. Позволяет отличать создаваемые обработчики друг от друга, а также для фильтрации обработчиков с помощью запросов "get handlers" и "get handler count". |
object (Policies) Набор правил, определяющих обработку входных изображений. Отсутствие политик указывает на то, что обработчик является динамическим. | |
handler_type | integer (handler_type) Default: 0 Enum: 0 1 2 Следует ли получать только статические (0), динамические (1) или lambda обработчики (2). Если тип является статическим:
Если тип является динамическим:
Если тип является lambda:
|
is_dynamic | boolean (is_dynamic) Deprecated Default: false Флаг динамического обработчика. Если установлено значение "true", обработчик создается без предопределенных политик. Используйте этот флаг, чтобы указать политики для каждого события, созданного с помощью ресурса "/handlers/{handler_id}/event". Для задания политик используйте схему тела запроса "multipart/form-data". |
lambda_id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Lambda ID. |
{- "description": "Handler example",
- "policies": {
- "detect_policy": {
- "estimate_people_count": {
- "estimate": 0
}, - "detect_face": 1,
- "detect_body": 0,
- "multiface_policy": 0,
- "estimate_head_pose": 0,
- "estimate_emotions": 0,
- "estimate_mask": 0,
- "estimate_quality": 0,
- "estimate_gaze": 0,
- "estimate_glasses": 0,
- "estimate_eyes_attributes": 0,
- "estimate_mouth_attributes": 0,
- "detect_landmarks68": 0,
- "extract_exif": 0,
- "yaw_threshold": 180,
- "roll_threshold": 180,
- "pitch_threshold": 180,
- "mask_states": [ ],
- "estimate_liveness": {
- "estimate": 0,
- "liveness_threshold": 0.5,
- "quality_threshold": 0.5
}, - "liveness_states": [ ],
- "face_quality": {
- "estimate": 0,
- "filter": 0,
- "checks": {
- "image_format": {
- "estimate": 0,
- "threshold": [
- "JPEG",
- "JPEG2000",
- "PNG"
]
}, - "illumination_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "specularity_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "blurriness_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "dark_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "light_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "head_yaw": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "head_pitch": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "head_roll": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "gaze_yaw": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "gaze_pitch": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "mouth_smiling": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "mouth_occluded": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "mouth_open": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "glasses": {
- "estimate": 0,
- "threshold": [
- "no_glasses",
- "eyeglasses"
]
}, - "left_eye": {
- "estimate": 0,
- "threshold": [
- "open"
]
}, - "right_eye": {
- "estimate": 0,
- "threshold": [
- "open"
]
}, - "head_horizontal_center": {
- "estimate": 0,
- "threshold": {
- "min": 0.45,
- "max": 0.55
}
}, - "head_vertical_center": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.5
}
}, - "head_width": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 0.75
}
}, - "head_height": {
- "estimate": 0,
- "threshold": {
- "min": 0.6,
- "max": 0.9
}
}, - "eye_distance": {
- "estimate": 0,
- "threshold": {
- "min": 91.1,
- "max": 92.2
}
}, - "image_width": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "image_height": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 1080
}
}, - "aspect_ratio": {
- "estimate": 0,
- "threshold": {
- "min": 0.74,
- "max": 0.8
}
}, - "face_width": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "face_height": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 0
}
}, - "indent_left": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "indent_right": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "indent_upper": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "indent_lower": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "image_size": {
- "estimate": 0,
- "threshold": {
- "min": 5120,
- "max": 2097152
}
}, - "eyebrows_state": {
- "estimate": 0,
- "threshold": [
- "neutral"
]
}, - "headwear_type": {
- "estimate": 0,
- "threshold": [
- "none"
]
}, - "smile_properties": {
- "estimate": 0,
- "threshold": [
- "none"
]
}, - "face_color_type": {
- "estimate": 0,
- "threshold": [
- "color"
]
}, - "natural_light": {
- "estimate": 0,
- "threshold": 0
}, - "red_eyes": {
- "estimate": 0,
- "threshold": 0
}, - "radial_distortion": {
- "estimate": 0,
- "threshold": 0
}, - "illumination_uniformity": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "dynamic_range": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_uniformity": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_lightness": {
- "estimate": 0,
- "threshold": {
- "min": 0.2,
- "max": 1
}
}, - "shoulders_position": {
- "estimate": 0,
- "threshold": [
- "parallel"
]
}
}
}, - "body_attributes": {
- "estimate_basic_attributes": 0,
- "estimate_upper_body": 0,
- "estimate_lower_body": 0,
- "estimate_accessories": 0
}
}, - "extract_policy": {
- "extract_basic_attributes": 0,
- "extract_face_descriptor": 1,
- "fd_score_threshold": 0.7,
- "extract_body_descriptor": 0
}, - "match_policy": [
- {
- "label": "",
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
]
}, - "descriptor": {
- "descriptor_type": "face"
}, - "limit": 3,
- "targets": [
- "face_id"
], - "threshold": 0.5,
- "candidates": {
- "origin": "faces",
- "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "account_id": "string",
- "external_ids": [
- "14159261415926"
], - "user_data": "info",
- "face_id__gte": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "string",
- "list_id": "string",
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2018-08-11T09:11:41.674Z"
}
}
], - "storage_policy": {
- "face_sample_policy": {
- "store_sample": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}
}, - "body_sample_policy": {
- "store_sample": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}
}, - "image_origin_policy": {
- "store_image": 0,
- "use_external_references": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}
}, - "attribute_policy": {
- "store_attribute": 0,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}, - "ttl": 300
}, - "face_policy": {
- "store_face": 0,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}, - "set_sample_as_avatar": 1,
- "link_to_lists_policy": [
- {
- "list_id": "string",
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}
}
]
}, - "event_policy": {
- "store_event": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}, - "wait_saving": 1
}, - "notification_policy": {
- "send_notification": 1,
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}
}
}, - "conditional_tags_policy": [
- {
- "tag": "good",
- "filters": {
- "gender": 1,
- "ethnicities": [
- 4,
- 3
], - "age__lt": 30,
- "age__gte": 22,
- "liveness": [
- 1
], - "match": [
- {
- "label": "good guys",
- "similarity__lte": 0.9,
- "similarity__gte": 0.78
}
]
}
}
]
}, - "handler_type": 0,
- "is_dynamic": false,
- "lambda_id": "string"
}
{- "error_code": 12017,
- "desc": "Bad/incomplete input data",
- "detail": "Bad content type",
}
Позволяет проверить существование обработчика по указанному handler_id
.
handler_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор обработчика. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
import requests baseUri = "http://127.0.0.1:5000/6" headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/handlers" payload = {"handler_type": 1} dynamicHandlerId = requests.post(url, json=payload, headers=headers).json()["handler_id"] headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/handlers/{dynamicHandlerId}" response = requests.head(url, headers=headers) print(response.status_code)
Позволяет удалить обработчик по его handler_id.
handler_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор обработчика. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
import requests baseUri = "http://127.0.0.1:5000/6" headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/handlers" payload = {"handler_type": 1} dynamicHandlerId = requests.post(url, json=payload, headers=headers).json()["handler_id"] headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/handlers/{dynamicHandlerId}" response = requests.delete(url, headers=headers) print(response.status_code)
{- "error_code": 11065,
- "desc": "Authorization failed",
- "detail": "Bad format basic authorization header",
}
Позволяет получить параметры для ресурса.
handler_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор обработчика. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет обрабатывать изображения и/или необработанные биометрические шаблоны с помощью указанного обработчика и генерировать события.
Для указания политик с помощью динамического обработчика нужно использовать схему multipart/form-data
.
Если на сервере отключена поддержка сервиса Events, события не будут сохраняться в базе данных.
Примечания к входящим данным:
detections > samples > face/body > rect
сгенерированного события.Объекты для обработки должны принадлежать аккаунту пользователя, выполняющего запрос.
handler_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор обработчика. |
city | string (location_str) <= 36 characters Example: city=New York Город, в котором получено событие. |
area | string (location_str) <= 36 characters Example: area=Manhattan Область, в которой получено событие. |
district | string (location_str) <= 36 characters Example: district=Midtown Район, в котором получено событие. |
street | string (location_str) <= 36 characters Example: street=West 48th street Улица, на которой получено событие. |
house_number | string (location_str) <= 36 characters Example: house_number=220 Номер дома, в котором получено событие. |
longitude | number (longitude) [ -180 .. 180 ] Example: longitude=36.616 Долгота в градусах, часть составного географического положения. Географическое положение считается заданным правильно, если заданы и долгота и широта. |
latitude | number (latitude) [ -90 .. 90 ] Example: latitude=55.752 Широта в градусах, часть составного географического положения. Географическое положение считается заданным правильно, если заданы и долгота и широта. |
external_id | string (event_external_id) <= 36 characters Default: "" Example: external_id=14159261415926 Внешний идентификатор для созданных событий и лиц (если в обработчике включен Когда в поле "external_id" используются символы Unicode (например, символ "+"), строка должна быть закодирована. В противном случае символы Unicode будут потеряны. Клиентская библиотека "luna3" предоставляет пример кодировки. |
user_data | string (face_user_data) <= 128 characters Default: "" Example: user_data=face of person Пользовательские данные для созданных событий и лиц (если в обработчике включен |
image_type | integer Default: 0 Enum: 0 1 2 Тип входного изображения. 0 – необработанное изображение, 1 – биометрический образец лица, 2 – биометрический образец тела. |
aggregate_attributes | integer (aggregate_attributes) Следует ли агрегировать следующие параметры:
Агрегация будет выполняться только в том случае, если в обработчике включены соответствующие параметры для оценки перечисленных выше параметров. Если параметр задан, все оцененные параметры каждого изображения будут агрегированы и сохранены в событии как отдельные объекты для всех изображений. В теле ответа агрегированные базовые атрибуты лица всех изображений будут отображаться в поле В противном случае все оцененные параметры каждого изображения будут храниться в событии как отдельные объекты. В теле ответа базовые атрибуты лица будут отображаться в поле |
source | string (source) <= 128 characters Example: source=3rd Avenue Дополнительная информация, которую предоставляет пользователь вместе с событием. |
stream_id | string <uuid> (stream_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: stream_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Stream ID. |
tags | Array of strings (tag) >= 0 items [ items <= 36 characters ] Example: tags=tag_1,tag_2 Список тегов, разделенных запятыми. Каждое событие в результатах запроса будет содержать все указанные теги. Каждый тег может содержать не более 36 символов. |
track_id | string (track_id) ^[a-zA-Z0-9_\-]{1,36}$ Example: track_id=useful_track_id_number_1 Track ID события. |
use_exif_info | integer Default: 1 Enum: 0 1 Example: use_exif_info=1 Следует ли автоматически поворачивать изображение на основе данных EXIF. Обрабатываемое изображение должно иметь EXIF данные, иначе автоматическая ориентация выполняться не будет. Не влияет на изображения в формате tiff (они всегда автоматически ориентированы). Не поддерживается с биометрическими образцами (см. параметры |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Luna-Event-Time | string <date-time> (time) Examples:
Определяемое пользователем время события. Все события будут сохранены с этим временем в качестве параметра "create_time". Формат времени – rfc3339. Любой другой формат игнорируется. |
Luna-Event-End-Time | string <date-time> (time) Examples:
Заданное пользователем время окончания события. Все события будут сохранены с этим временем, указанном в параметре "end_time". Формат времени - rfc3339. Все остальные форматы игнорируются. |
Content-Type | string Enum: "image/jpeg" "image/png" "image/bmp" "image/x-portable-pixmap" "image/tiff" "multipart/form-data" "application/json" "image/x-jpeg-base64" "image/x-png-base64" "image/x-bmp-base64" "image/x-tiff-base64" "image/x-portable-pixmap-base64" "application/x-sdk-descriptor" "application/x-vl-xpk" "application/x-sdk-descriptor-base64" "applicaition/x-vl-xpk-base64" |
{- "images": [
- {
- "error": {
- "error_code": 0,
- "desc": "Success",
- "detail": "Success",
}, - "status": 1,
- "filename": "person.jpg",
- "exif": {
- "flash": "16",
- "software": "Adobe Photoshop CC 2017 (Windows)",
- "artist": "VisionLabs",
- "make": "NIKON CORPORATION",
- "model": "NIKON D810"
}, - "image_estimations": {
- "people": {
- "count": 1
}
}
}
], - "events": [
- {
- "face_attributes": {
- "attribute_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "basic_attributes": {
- "age": 29,
- "gender": 1,
- "ethnicities": {
- "estimations": {
- "african_american": 1.92238889737406e-12,
- "asian": 0.954671621322632,
- "caucasian": 0.045328326523304,
- "indian": 7.65100649502415e-10
}, - "predominant_ethnicity": "asian"
}
}, - "score": 0.7525901794,
- "url": "/6/attributes/24d405ce-bc56-4bf7-98e1-bdc962b4cf34",
- "samples": [
- "a3e8716f-70dc-42ad-8428-7a552e800a37"
], - "filter": {
- "is_filtered": true,
- "filter_reasons": [
- {
- "filter_name": "score_threshold",
- "object_value": 0,
- "threshold_value": 0
}
]
}
}, - "body_attributes": {
- "score": 0.3546702648,
- "samples": [
- "a3e8716f-70dc-42ad-8428-7a552e800a37"
]
}, - "source": "3rd Avenue",
- "stream_id": "a778c4a5-2191-476e-a261-3b4f9ce2e25e",
- "tags": [
- "tag1",
- "tag2"
], - "external_id": "b668c4a5-2191-some-important-words",
- "user_data": "string",
- "face": {
- "face_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c6",
- "event_id": "f9687459-986b-406d-9c1f-0d6289be5256",
- "user_data": "fox1991",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "avatar": "/6/samples/a16c8b6c-2818-4bae-9fd5-65acc8d4bb5c",
- "lists": [
- "429b0e78-4616-426a-b57f-02baa72d638d",
- "6d037c33-31ec-4d73-b3b3-ec80b09446c2"
], - "url": "/6/faces/24d405ce-bc56-4bf7-98e1-bdc962b4cf34"
}, - "event_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "url": "/6/events/24d405ce-bc56-4bf7-98e1-bdc962b4cf34",
- "matches": [
- {
- "label": "good guys",
- "candidates": [
- {
- "face": {
- "face_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c6",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "user_data": "fox1991",
- "create_time": "2018-08-11T09:11:41.674Z",
- "lists": [
- "429b0e78-4616-426a-b57f-02baa72d638d",
- "6d037c33-31ec-4d73-b3b3-ec80b09446c2"
], - "avatar": "/6/samples/a16c8b6c-2818-4bae-9fd5-65acc8d4bb5c",
- "event_id": "f9687459-986b-406d-9c1f-0d6289be5256"
}, - "similarity": 0.5
}
]
}, - {
- "label": "bad guys",
- "candidates": [
- {
- "event": {
- "event_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "user_data": "fox1991",
- "create_time": "2018-08-11T09:11:41.674Z",
- "handler_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
- "source": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
- "stream_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7"
}, - "similarity": 0.3
}
]
}
], - "location": {
- "city": "string",
- "area": "string",
- "district": "string",
- "street": "string",
- "house_number": "string",
- "geo_position": {
- "longitude": 36.616,
- "latitude": 55.752
}
}, - "detections": [
- {
- "filename": "penelope.jpeg",
- "samples": {
- "body": {
- "sample_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "detection": {
- "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}, - "attributes": {
- "basic_attributes": {
- "apparent_age": 0,
- "apparent_gender": 0
}, - "upper_body": {
- "headwear": {
- "state": 0,
- "apparent_color": "undefined"
}, - "sleeve": {
- "length": "short"
}, - "upper_clothing": {
- "colors": [
- "white",
- "black"
]
}
}, - "lower_body": {
- "lower_garment": {
- "type": "trousers",
- "colors": [
- "white",
- "black"
]
}, - "shoes": {
- "apparent_color": "black"
}
}, - "accessories": {
- "backpack": {
- "state": 0
}
}
}
}, - "url": "/6/samples/bodies/a16c8b6c-2818-4bae-9fd5-65acc8d4bb5c"
}, - "face": {
- "sample_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "detection": {
- "attributes": {
- "mouth_attributes": {
- "occluded": 0,
- "opened": 0,
- "score": 1,
- "smile": 0
}, - "emotions": {
- "estimations": {
- "anger": 0.00894705578684807,
- "disgust": 0.00000965219624049496,
- "fear": 0.00121302821207792,
- "happiness": 0.00129503419157118,
- "neutral": 0.986027479171753,
- "sadness": 0.00187553185969591,
- "surprise": 0.000632198702078313
}, - "predominant_emotion": "neutral"
}, - "mask": {
- "estimations": {
- "medical_mask": 0.7108324766,
- "missing": 0.0700698048,
- "occluded": 0.2190976739
}, - "predominant_mask": "medical_mask",
- "face_occlusion": {
- "predominant_occlusion": "correct",
- "estimations": {
- "full": 0.019,
- "clear": 0.02,
- "correct": 0.6108324766,
- "partially": 0.31,
- "mouth": 0.0209,
- "chin": 0.019097
}
}
}, - "head_pose": {
- "pitch": 18.6827487945557,
- "roll": -10.3542232513428,
- "yaw": 15.4102487564087
}, - "gaze": {
- "pitch": 9.26744079589844,
- "yaw": -19.4657287597656
}, - "eyes_attributes": {
- "right_eye": {
- "state": "open",
- "iris_landmarks": [
- [
- 152,
- 152
], - [
- 153,
- 153
], - [
- 153,
- 153
], - [
- 154,
- 154
], - [
- 154,
- 154
], - [
- 155,
- 155
], - [
- 157,
- 157
], - [
- 158,
- 158
], - [
- 159,
- 159
], - [
- 161,
- 161
], - [
- 162,
- 162
], - [
- 163,
- 163
], - [
- 164,
- 164
], - [
- 165,
- 165
], - [
- 166,
- 166
], - [
- 166,
- 166
], - [
- 167,
- 167
], - [
- 167,
- 167
], - [
- 166,
- 166
], - [
- 166,
- 166
], - [
- 165,
- 165
], - [
- 164,
- 164
], - [
- 162,
- 162
], - [
- 161,
- 161
], - [
- 160,
- 160
], - [
- 158,
- 158
], - [
- 157,
- 157
], - [
- 156,
- 156
], - [
- 155,
- 155
], - [
- 154,
- 154
], - [
- 154,
- 154
], - [
- 153,
- 153
]
]
}, - "left_eye": {
- "state": "open",
- "iris_landmarks": [
- [
- 92,
- 92
], - [
- 92,
- 92
], - [
- 92,
- 92
], - [
- 93,
- 93
], - [
- 94,
- 94
], - [
- 95,
- 95
], - [
- 96,
- 96
], - [
- 97,
- 97
], - [
- 98,
- 98
], - [
- 100,
- 100
], - [
- 101,
- 101
], - [
- 102,
- 102
], - [
- 103,
- 103
], - [
- 104,
- 104
], - [
- 104,
- 104
], - [
- 105,
- 105
], - [
- 105,
- 105
], - [
- 105,
- 105
], - [
- 104,
- 104
], - [
- 104,
- 104
], - [
- 103,
- 103
], - [
- 103,
- 103
], - [
- 102,
- 102
], - [
- 100,
- 100
], - [
- 99,
- 99
], - [
- 98,
- 98
], - [
- 97,
- 97
], - [
- 95,
- 95
], - [
- 94,
- 94
], - [
- 93,
- 93
], - [
- 93,
- 93
], - [
- 92,
- 92
]
]
}
}
}, - "quality": {
- "light": 0.87,
- "dark": 0.13,
- "illumination": 0.1,
- "specularity": 0.1,
- "blurriness": 0.2
}, - "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}, - "landmarks68": [
- [
- 8,
- 8
], - [
- 14,
- 14
], - [
- 28,
- 28
], - [
- 48,
- 48
], - [
- 72,
- 72
], - [
- 102,
- 102
], - [
- 134,
- 134
], - [
- 168,
- 168
], - [
- 213,
- 213
], - [
- 262,
- 262
], - [
- 306,
- 306
], - [
- 345,
- 345
], - [
- 376,
- 376
], - [
- 392,
- 392
], - [
- 397,
- 397
], - [
- 399,
- 399
], - [
- 394,
- 394
], - [
- 2,
- 2
], - [
- 22,
- 22
], - [
- 50,
- 50
], - [
- 79,
- 79
], - [
- 106,
- 106
], - [
- 165,
- 165
], - [
- 199,
- 199
], - [
- 236,
- 236
], - [
- 278,
- 278
], - [
- 317,
- 317
], - [
- 137,
- 137
], - [
- 136,
- 136
], - [
- 136,
- 136
], - [
- 136,
- 136
], - [
- 119,
- 119
], - [
- 135,
- 135
], - [
- 154,
- 154
], - [
- 174,
- 174
], - [
- 193,
- 193
], - [
- 40,
- 40
], - [
- 57,
- 57
], - [
- 83,
- 83
], - [
- 108,
- 108
], - [
- 84,
- 84
], - [
- 58,
- 58
], - [
- 203,
- 203
], - [
- 222,
- 222
], - [
- 249,
- 249
], - [
- 277,
- 277
], - [
- 258,
- 258
], - [
- 229,
- 229
], - [
- 119,
- 119
], - [
- 130,
- 130
], - [
- 149,
- 149
], - [
- 167,
- 167
], - [
- 185,
- 185
], - [
- 222,
- 222
], - [
- 259,
- 259
], - [
- 232,
- 232
], - [
- 200,
- 200
], - [
- 177,
- 177
], - [
- 155,
- 155
], - [
- 134,
- 134
], - [
- 127,
- 127
], - [
- 152,
- 152
], - [
- 170,
- 170
], - [
- 190,
- 190
], - [
- 250,
- 250
], - [
- 193,
- 193
], - [
- 172,
- 172
], - [
- 152,
- 152
]
], - "landmarks5": [
- [
- 72,
- 72
], - [
- 240,
- 240
], - [
- 154,
- 154
], - [
- 119,
- 119
], - [
- 259,
- 259
]
], - "face_quality": {
- "status": 0,
- "checks": [
- {
- "name": "image_format",
- "object_value": "JPEG",
- "threshold_value": [
- "JPEG",
- "JPEG2000",
- "PNG"
], - "result": 1
}, - {
- "name": "illumination_quality",
- "object_value": 0.6005162000656128,
- "threshold_value": {
- "min": 0.3,
- "max": 1
}, - "result": 1
}, - {
- "name": "specularity_quality",
- "object_value": 0.7662366628646851,
- "threshold_value": {
- "min": 0.3,
- "max": 1
}, - "result": 1
}, - {
- "name": "blurriness_quality",
- "object_value": 0.9429352283477783,
- "threshold_value": {
- "min": 0.61,
- "max": 1
}, - "result": 1
}, - {
- "name": "dark_quality",
- "object_value": 0.9020983576774597,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "light_quality",
- "object_value": 0.7881984114646912,
- "threshold_value": {
- "min": 0.57,
- "max": 1
}, - "result": 1
}, - {
- "name": "head_yaw",
- "object_value": 2.818983316421509,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "head_pitch",
- "object_value": 3.816443920135498,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "head_roll",
- "object_value": 5.434040069580078,
- "threshold_value": {
- "min": -8,
- "max": 8
}, - "result": 1
}, - {
- "name": "gaze_yaw",
- "object_value": -3.773012399673462,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "gaze_pitch",
- "object_value": 0.7140519022941589,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "mouth_smiling",
- "object_value": 0.000290759839117527,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "mouth_occluded",
- "object_value": 0.00009619363845558837,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "mouth_open",
- "object_value": 0.6226108074188232,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "glasses",
- "object_value": "no_glasses",
- "threshold_value": [
- "no_glasses",
- "eyeglasses"
], - "result": 1
}, - {
- "name": "left_eye",
- "object_value": "open",
- "threshold_value": [
- "open"
], - "result": 1
}, - {
- "name": "right_eye",
- "object_value": "open",
- "threshold_value": [
- "open"
], - "result": 1
}, - {
- "name": "head_horizontal_center",
- "object_value": 0.51,
- "threshold_value": {
- "min": 0.45,
- "max": 0.55
}, - "result": 1
}, - {
- "name": "head_vertical_center",
- "object_value": 0.51,
- "threshold_value": {
- "min": 0.3,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "head_width",
- "object_value": 0.61,
- "threshold_value": {
- "min": 0.5,
- "max": 0.75
}, - "result": 1
}, - {
- "name": "head_height",
- "object_value": 0.71,
- "threshold_value": {
- "min": 0.6,
- "max": 0.9
}, - "result": 1
}, - {
- "name": "eye_distance",
- "object_value": 110,
- "threshold_value": {
- "min": 90,
- "max": null
}, - "result": 1
}, - {
- "name": "image_width",
- "object_value": 1000,
- "threshold_value": {
- "min": 200,
- "max": 1100
}, - "result": 1
}, - {
- "name": "image_height",
- "object_value": 2000,
- "threshold_value": {
- "min": 200,
- "max": 1100
}, - "result": 1
}, - {
- "name": "aspect_ratio",
- "object_value": 0.5,
- "threshold_value": {
- "min": 0.1,
- "max": 1
}, - "result": 1
}, - {
- "name": "face_width",
- "object_value": 500,
- "threshold_value": {
- "min": 400,
- "max": 600
}, - "result": 1
}, - {
- "name": "face_height",
- "object_value": 500,
- "threshold_value": {
- "min": 400,
- "max": 600
}, - "result": 1
}, - {
- "name": "indent_left",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_right",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_upper",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_lower",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "image_size",
- "object_value": 100500,
- "threshold_value": {
- "min": 10,
- "max": 100600
}, - "result": 1
}, - {
- "name": "eyebrows_state",
- "object_value": "neutral",
- "threshold_value": [
- "neutral"
], - "result": 1
}, - {
- "name": "smile_properties",
- "object_value": "smile_lips",
- "threshold_value": [
- "none"
], - "result": 0
}, - {
- "name": "headwear_type",
- "object_value": "hat",
- "threshold_value": [
- "none"
], - "result": 0
}, - {
- "name": "natural_light",
- "object_value": 1,
- "threshold_value": 1,
- "result": 1
}, - {
- "name": "radial_distortion",
- "object_value": 0,
- "threshold_value": 0,
- "result": 1
}, - {
- "name": "red_eyes",
- "object_value": 0,
- "threshold_value": 0,
- "result": 1
}, - {
- "name": "face_color_type",
- "object_value": "color",
- "threshold_value": [
- "color"
], - "result": 1
}, - {
- "name": "illumination_uniformity",
- "object_value": 0.7305162000656128,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "dynamic_range",
- "object_value": 0.6605162000656128,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "background_lightness",
- "object_value": 0.5780888795852661,
- "threshold_value": {
- "min": 0.2,
- "max": 1
}, - "result": 1
}, - {
- "name": "background_uniformity",
- "object_value": 0.8874394297599792,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "shoulders_position",
- "object_value": "parallel",
- "threshold_value": [
- "parallel"
], - "result": 1
}
]
}
}, - "url": "/6/samples/faces/a16c8b6c-2818-4bae-9fd5-65acc8d4bb5c"
}
}, - "detect_time": "2018-08-11T09:11:41.674Z",
- "detect_ts": 123.456,
- "image_origin": "/6/images/b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
], - "track_id": "useful_track_id_number_1",
- "meta": {
- "foo": "bar"
}, - "aggregate_estimations": {
- "face": {
- "attributes": {
- "liveness": {
- "prediction": "real",
- "estimations": {
- "quality": 0.9,
- "score": 0.8
}
}
}
}, - "body": {
- "attributes": {
- "upper_body": {
- "headwear": {
- "state": 0,
- "apparent_color": "undefined"
}, - "sleeve": {
- "length": "short"
}, - "upper_clothing": {
- "colors": [
- "white",
- "black"
]
}
}, - "lower_body": {
- "lower_garment": {
- "type": "trousers",
- "colors": [
- "white",
- "black"
]
}, - "shoes": {
- "apparent_color": "black"
}
}, - "accessories": {
- "backpack": {
- "state": 0
}
}
}
}
}
}
], - "filtered_detections": {
- "face_detections": [ ]
}
}
Позволяет получить параметры для ресурса.
handler_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор обработчика. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
ПРЕДУПРЕЖДЕНИЕ Экспериментальный ресурс. Обратная совместимость не гарантируется.
Обрабатывать изображения с помощью указанного обработчика и генерировать события потока.
Если на сервере отключена поддержка сервиса Events, события не будут сохраняться в базе данных.
Примечания к входящим данным:
detections > samples > face/body > rect
сгенерированного события.Объекты для обработки должны принадлежать аккаунту пользователя, выполняющего запрос.
handler_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор обработчика. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/msgpack" Формат данных тела запроса. |
aggregate_attributes required | integer (aggregate_attributes) Следует ли агрегировать атрибуты. Если установлено значение "0", биометрический шаблон и базовые атрибуты извлекаются для каждого биометрического образца. Если установлено значение "1", можно создать агрегированный биометрический шаблон, получить агрегированные базовые атрибуты, или и то, и другое. Поведение зависит от параметров
|
required | Array of objects (event_source_schema) non-empty Источники события. |
use_exif_info | integer (use_exif_info) Default: 1 Enum: 0 1 Следует ли пытаться автоматически ориентировать изображение на основе EXIF-данных. Не влияет на изображения в формате tiff (они всегда автоматически ориентированы). Не поддерживается с биометрическими образцами (см. параметры |
{- "images": [
- {
- "error": {
- "error_code": 0,
- "desc": "Success",
- "detail": "Success",
}, - "status": 1,
- "filename": "person.jpg",
- "exif": {
- "flash": "16",
- "software": "Adobe Photoshop CC 2017 (Windows)",
- "artist": "VisionLabs",
- "make": "NIKON CORPORATION",
- "model": "NIKON D810"
}, - "image_estimations": {
- "people": {
- "count": 1
}
}
}
], - "events": [
- {
- "face_attributes": {
- "attribute_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "basic_attributes": {
- "age": 29,
- "gender": 1,
- "ethnicities": {
- "estimations": {
- "african_american": 1.92238889737406e-12,
- "asian": 0.954671621322632,
- "caucasian": 0.045328326523304,
- "indian": 7.65100649502415e-10
}, - "predominant_ethnicity": "asian"
}
}, - "score": 0.7525901794,
- "url": "/6/attributes/24d405ce-bc56-4bf7-98e1-bdc962b4cf34",
- "samples": [
- "a3e8716f-70dc-42ad-8428-7a552e800a37"
], - "filter": {
- "is_filtered": true,
- "filter_reasons": [
- {
- "filter_name": "score_threshold",
- "object_value": 0,
- "threshold_value": 0
}
]
}
}, - "body_attributes": {
- "score": 0.3546702648,
- "samples": [
- "a3e8716f-70dc-42ad-8428-7a552e800a37"
]
}, - "source": "3rd Avenue",
- "stream_id": "a778c4a5-2191-476e-a261-3b4f9ce2e25e",
- "tags": [
- "tag1",
- "tag2"
], - "external_id": "b668c4a5-2191-some-important-words",
- "user_data": "string",
- "face": {
- "face_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c6",
- "event_id": "f9687459-986b-406d-9c1f-0d6289be5256",
- "user_data": "fox1991",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "avatar": "/6/samples/a16c8b6c-2818-4bae-9fd5-65acc8d4bb5c",
- "lists": [
- "429b0e78-4616-426a-b57f-02baa72d638d",
- "6d037c33-31ec-4d73-b3b3-ec80b09446c2"
], - "url": "/6/faces/24d405ce-bc56-4bf7-98e1-bdc962b4cf34"
}, - "event_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "url": "/6/events/24d405ce-bc56-4bf7-98e1-bdc962b4cf34",
- "matches": [
- {
- "label": "good guys",
- "candidates": [
- {
- "face": {
- "face_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c6",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "user_data": "fox1991",
- "create_time": "2018-08-11T09:11:41.674Z",
- "lists": [
- "429b0e78-4616-426a-b57f-02baa72d638d",
- "6d037c33-31ec-4d73-b3b3-ec80b09446c2"
], - "avatar": "/6/samples/a16c8b6c-2818-4bae-9fd5-65acc8d4bb5c",
- "event_id": "f9687459-986b-406d-9c1f-0d6289be5256"
}, - "similarity": 0.5
}
]
}, - {
- "label": "bad guys",
- "candidates": [
- {
- "event": {
- "event_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "user_data": "fox1991",
- "create_time": "2018-08-11T09:11:41.674Z",
- "handler_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
- "source": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
- "stream_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7"
}, - "similarity": 0.3
}
]
}
], - "location": {
- "city": "string",
- "area": "string",
- "district": "string",
- "street": "string",
- "house_number": "string",
- "geo_position": {
- "longitude": 36.616,
- "latitude": 55.752
}
}, - "detections": [
- {
- "filename": "penelope.jpeg",
- "samples": {
- "body": {
- "sample_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "detection": {
- "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}, - "attributes": {
- "basic_attributes": {
- "apparent_age": 0,
- "apparent_gender": 0
}, - "upper_body": {
- "headwear": {
- "state": 0,
- "apparent_color": "undefined"
}, - "sleeve": {
- "length": "short"
}, - "upper_clothing": {
- "colors": [
- "white",
- "black"
]
}
}, - "lower_body": {
- "lower_garment": {
- "type": "trousers",
- "colors": [
- "white",
- "black"
]
}, - "shoes": {
- "apparent_color": "black"
}
}, - "accessories": {
- "backpack": {
- "state": 0
}
}
}
}, - "url": "/6/samples/bodies/a16c8b6c-2818-4bae-9fd5-65acc8d4bb5c"
}, - "face": {
- "sample_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "detection": {
- "attributes": {
- "mouth_attributes": {
- "occluded": 0,
- "opened": 0,
- "score": 1,
- "smile": 0
}, - "emotions": {
- "estimations": {
- "anger": 0.00894705578684807,
- "disgust": 0.00000965219624049496,
- "fear": 0.00121302821207792,
- "happiness": 0.00129503419157118,
- "neutral": 0.986027479171753,
- "sadness": 0.00187553185969591,
- "surprise": 0.000632198702078313
}, - "predominant_emotion": "neutral"
}, - "mask": {
- "estimations": {
- "medical_mask": 0.7108324766,
- "missing": 0.0700698048,
- "occluded": 0.2190976739
}, - "predominant_mask": "medical_mask",
- "face_occlusion": {
- "predominant_occlusion": "correct",
- "estimations": {
- "full": 0.019,
- "clear": 0.02,
- "correct": 0.6108324766,
- "partially": 0.31,
- "mouth": 0.0209,
- "chin": 0.019097
}
}
}, - "head_pose": {
- "pitch": 18.6827487945557,
- "roll": -10.3542232513428,
- "yaw": 15.4102487564087
}, - "gaze": {
- "pitch": 9.26744079589844,
- "yaw": -19.4657287597656
}, - "eyes_attributes": {
- "right_eye": {
- "state": "open",
- "iris_landmarks": [
- [
- 152,
- 152
], - [
- 153,
- 153
], - [
- 153,
- 153
], - [
- 154,
- 154
], - [
- 154,
- 154
], - [
- 155,
- 155
], - [
- 157,
- 157
], - [
- 158,
- 158
], - [
- 159,
- 159
], - [
- 161,
- 161
], - [
- 162,
- 162
], - [
- 163,
- 163
], - [
- 164,
- 164
], - [
- 165,
- 165
], - [
- 166,
- 166
], - [
- 166,
- 166
], - [
- 167,
- 167
], - [
- 167,
- 167
], - [
- 166,
- 166
], - [
- 166,
- 166
], - [
- 165,
- 165
], - [
- 164,
- 164
], - [
- 162,
- 162
], - [
- 161,
- 161
], - [
- 160,
- 160
], - [
- 158,
- 158
], - [
- 157,
- 157
], - [
- 156,
- 156
], - [
- 155,
- 155
], - [
- 154,
- 154
], - [
- 154,
- 154
], - [
- 153,
- 153
]
]
}, - "left_eye": {
- "state": "open",
- "iris_landmarks": [
- [
- 92,
- 92
], - [
- 92,
- 92
], - [
- 92,
- 92
], - [
- 93,
- 93
], - [
- 94,
- 94
], - [
- 95,
- 95
], - [
- 96,
- 96
], - [
- 97,
- 97
], - [
- 98,
- 98
], - [
- 100,
- 100
], - [
- 101,
- 101
], - [
- 102,
- 102
], - [
- 103,
- 103
], - [
- 104,
- 104
], - [
- 104,
- 104
], - [
- 105,
- 105
], - [
- 105,
- 105
], - [
- 105,
- 105
], - [
- 104,
- 104
], - [
- 104,
- 104
], - [
- 103,
- 103
], - [
- 103,
- 103
], - [
- 102,
- 102
], - [
- 100,
- 100
], - [
- 99,
- 99
], - [
- 98,
- 98
], - [
- 97,
- 97
], - [
- 95,
- 95
], - [
- 94,
- 94
], - [
- 93,
- 93
], - [
- 93,
- 93
], - [
- 92,
- 92
]
]
}
}
}, - "quality": {
- "light": 0.87,
- "dark": 0.13,
- "illumination": 0.1,
- "specularity": 0.1,
- "blurriness": 0.2
}, - "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}, - "landmarks68": [
- [
- 8,
- 8
], - [
- 14,
- 14
], - [
- 28,
- 28
], - [
- 48,
- 48
], - [
- 72,
- 72
], - [
- 102,
- 102
], - [
- 134,
- 134
], - [
- 168,
- 168
], - [
- 213,
- 213
], - [
- 262,
- 262
], - [
- 306,
- 306
], - [
- 345,
- 345
], - [
- 376,
- 376
], - [
- 392,
- 392
], - [
- 397,
- 397
], - [
- 399,
- 399
], - [
- 394,
- 394
], - [
- 2,
- 2
], - [
- 22,
- 22
], - [
- 50,
- 50
], - [
- 79,
- 79
], - [
- 106,
- 106
], - [
- 165,
- 165
], - [
- 199,
- 199
], - [
- 236,
- 236
], - [
- 278,
- 278
], - [
- 317,
- 317
], - [
- 137,
- 137
], - [
- 136,
- 136
], - [
- 136,
- 136
], - [
- 136,
- 136
], - [
- 119,
- 119
], - [
- 135,
- 135
], - [
- 154,
- 154
], - [
- 174,
- 174
], - [
- 193,
- 193
], - [
- 40,
- 40
], - [
- 57,
- 57
], - [
- 83,
- 83
], - [
- 108,
- 108
], - [
- 84,
- 84
], - [
- 58,
- 58
], - [
- 203,
- 203
], - [
- 222,
- 222
], - [
- 249,
- 249
], - [
- 277,
- 277
], - [
- 258,
- 258
], - [
- 229,
- 229
], - [
- 119,
- 119
], - [
- 130,
- 130
], - [
- 149,
- 149
], - [
- 167,
- 167
], - [
- 185,
- 185
], - [
- 222,
- 222
], - [
- 259,
- 259
], - [
- 232,
- 232
], - [
- 200,
- 200
], - [
- 177,
- 177
], - [
- 155,
- 155
], - [
- 134,
- 134
], - [
- 127,
- 127
], - [
- 152,
- 152
], - [
- 170,
- 170
], - [
- 190,
- 190
], - [
- 250,
- 250
], - [
- 193,
- 193
], - [
- 172,
- 172
], - [
- 152,
- 152
]
], - "landmarks5": [
- [
- 72,
- 72
], - [
- 240,
- 240
], - [
- 154,
- 154
], - [
- 119,
- 119
], - [
- 259,
- 259
]
], - "face_quality": {
- "status": 0,
- "checks": [
- {
- "name": "image_format",
- "object_value": "JPEG",
- "threshold_value": [
- "JPEG",
- "JPEG2000",
- "PNG"
], - "result": 1
}, - {
- "name": "illumination_quality",
- "object_value": 0.6005162000656128,
- "threshold_value": {
- "min": 0.3,
- "max": 1
}, - "result": 1
}, - {
- "name": "specularity_quality",
- "object_value": 0.7662366628646851,
- "threshold_value": {
- "min": 0.3,
- "max": 1
}, - "result": 1
}, - {
- "name": "blurriness_quality",
- "object_value": 0.9429352283477783,
- "threshold_value": {
- "min": 0.61,
- "max": 1
}, - "result": 1
}, - {
- "name": "dark_quality",
- "object_value": 0.9020983576774597,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "light_quality",
- "object_value": 0.7881984114646912,
- "threshold_value": {
- "min": 0.57,
- "max": 1
}, - "result": 1
}, - {
- "name": "head_yaw",
- "object_value": 2.818983316421509,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "head_pitch",
- "object_value": 3.816443920135498,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "head_roll",
- "object_value": 5.434040069580078,
- "threshold_value": {
- "min": -8,
- "max": 8
}, - "result": 1
}, - {
- "name": "gaze_yaw",
- "object_value": -3.773012399673462,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "gaze_pitch",
- "object_value": 0.7140519022941589,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "mouth_smiling",
- "object_value": 0.000290759839117527,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "mouth_occluded",
- "object_value": 0.00009619363845558837,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "mouth_open",
- "object_value": 0.6226108074188232,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "glasses",
- "object_value": "no_glasses",
- "threshold_value": [
- "no_glasses",
- "eyeglasses"
], - "result": 1
}, - {
- "name": "left_eye",
- "object_value": "open",
- "threshold_value": [
- "open"
], - "result": 1
}, - {
- "name": "right_eye",
- "object_value": "open",
- "threshold_value": [
- "open"
], - "result": 1
}, - {
- "name": "head_horizontal_center",
- "object_value": 0.51,
- "threshold_value": {
- "min": 0.45,
- "max": 0.55
}, - "result": 1
}, - {
- "name": "head_vertical_center",
- "object_value": 0.51,
- "threshold_value": {
- "min": 0.3,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "head_width",
- "object_value": 0.61,
- "threshold_value": {
- "min": 0.5,
- "max": 0.75
}, - "result": 1
}, - {
- "name": "head_height",
- "object_value": 0.71,
- "threshold_value": {
- "min": 0.6,
- "max": 0.9
}, - "result": 1
}, - {
- "name": "eye_distance",
- "object_value": 110,
- "threshold_value": {
- "min": 90,
- "max": null
}, - "result": 1
}, - {
- "name": "image_width",
- "object_value": 1000,
- "threshold_value": {
- "min": 200,
- "max": 1100
}, - "result": 1
}, - {
- "name": "image_height",
- "object_value": 2000,
- "threshold_value": {
- "min": 200,
- "max": 1100
}, - "result": 1
}, - {
- "name": "aspect_ratio",
- "object_value": 0.5,
- "threshold_value": {
- "min": 0.1,
- "max": 1
}, - "result": 1
}, - {
- "name": "face_width",
- "object_value": 500,
- "threshold_value": {
- "min": 400,
- "max": 600
}, - "result": 1
}, - {
- "name": "face_height",
- "object_value": 500,
- "threshold_value": {
- "min": 400,
- "max": 600
}, - "result": 1
}, - {
- "name": "indent_left",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_right",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_upper",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_lower",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "image_size",
- "object_value": 100500,
- "threshold_value": {
- "min": 10,
- "max": 100600
}, - "result": 1
}, - {
- "name": "eyebrows_state",
- "object_value": "neutral",
- "threshold_value": [
- "neutral"
], - "result": 1
}, - {
- "name": "smile_properties",
- "object_value": "smile_lips",
- "threshold_value": [
- "none"
], - "result": 0
}, - {
- "name": "headwear_type",
- "object_value": "hat",
- "threshold_value": [
- "none"
], - "result": 0
}, - {
- "name": "natural_light",
- "object_value": 1,
- "threshold_value": 1,
- "result": 1
}, - {
- "name": "radial_distortion",
- "object_value": 0,
- "threshold_value": 0,
- "result": 1
}, - {
- "name": "red_eyes",
- "object_value": 0,
- "threshold_value": 0,
- "result": 1
}, - {
- "name": "face_color_type",
- "object_value": "color",
- "threshold_value": [
- "color"
], - "result": 1
}, - {
- "name": "illumination_uniformity",
- "object_value": 0.7305162000656128,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "dynamic_range",
- "object_value": 0.6605162000656128,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "background_lightness",
- "object_value": 0.5780888795852661,
- "threshold_value": {
- "min": 0.2,
- "max": 1
}, - "result": 1
}, - {
- "name": "background_uniformity",
- "object_value": 0.8874394297599792,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "shoulders_position",
- "object_value": "parallel",
- "threshold_value": [
- "parallel"
], - "result": 1
}
]
}
}, - "url": "/6/samples/faces/a16c8b6c-2818-4bae-9fd5-65acc8d4bb5c"
}
}, - "detect_time": "2018-08-11T09:11:41.674Z",
- "detect_ts": 123.456,
- "image_origin": "/6/images/b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
], - "track_id": "useful_track_id_number_1",
- "meta": {
- "foo": "bar"
}, - "aggregate_estimations": {
- "face": {
- "attributes": {
- "liveness": {
- "prediction": "real",
- "estimations": {
- "quality": 0.9,
- "score": 0.8
}
}
}
}, - "body": {
- "attributes": {
- "upper_body": {
- "headwear": {
- "state": 0,
- "apparent_color": "undefined"
}, - "sleeve": {
- "length": "short"
}, - "upper_clothing": {
- "colors": [
- "white",
- "black"
]
}
}, - "lower_body": {
- "lower_garment": {
- "type": "trousers",
- "colors": [
- "white",
- "black"
]
}, - "shoes": {
- "apparent_color": "black"
}
}, - "accessories": {
- "backpack": {
- "state": 0
}
}
}
}
}
}
], - "filtered_detections": {
- "face_detections": [ ]
}
}
Позволяет получить параметры для ресурса.
handler_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор обработчика. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет сохранить событие, созданное пользователем. Структура события аналогична событию из ответа обработчика. Входящие события также будут отправляться сервису Sender и плагинам. Следовательно, эти события являются теми же событиями, за исключением того, что события были сгенерированы внешним обработчиком. Идентификатор обработчика должен принадлежать динамическому обработчику.
handler_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор динамического обработчика. |
wait_saving | integer Default: 1 Enum: 0 1 Следует ли ждать сохранения событий. Если указано "0", будет ожидаться код состояния 202 в ответ на успешный запрос. Этот код состояния возвращается после того, как событие проверено и добавлено в буфер. Система не ждет, пока событие будет сохранено в базе данных. Событие будет сохранено в базе данных после отправки ответа. Если указано "1", будет ожидаться код состояния 201 в ответ на успешный запрос. Этот код состояния возвращается только после того, как событие сохраняется в базе данных. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
Array of objects <= 100 items Список детекций, связанных с телом и лицом. | |
source | string (source) <= 128 characters Дополнительная информация, которую пользователь предоставляет с событием. |
stream_id | string <uuid> (stream_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Stream ID. |
object (input_event_location) Информация о месте, где произошло событие. | |
external_id | string (event_external_id) <= 36 characters Default: "" Определяемый пользователем внешний идентификатор события. |
user_data | string (event_user_data) <= 128 characters Default: "" Пользовательские данные, связанные с событием. |
track_id | string (track_id) ^[a-zA-Z0-9_\-]{1,36}$ Track ID события. |
object (input_event_face) Лицо, связанное с событием. | |
Array of objects or null <= 30 items Отсортированный список с результатом сравнения для события. | |
object or null (input_event_face_attribute) Извлеченные пользователем атрибуты лица события. | |
object or null (input_event_body_attribute) Атрибуты тела для события, извлеченные пользователем. | |
object (input_event_aggregate_estimations) Агрегированные атрибуты, полученные из биометрических образцов. | |
tags | Array of strings [ 0 .. 1000 ] items [ items <= 36 characters ] Список тегов. |
create_time | string <date-time> Время создания события. |
end_time | string <date-time> Время окончания события. |
object (event_meta_common) Заданная пользователем метаинформация (JSON-объект). |
{- "detections": [
- {
- "filename": "",
- "samples": {
- "body": {
- "sample_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "detection": {
- "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}, - "attributes": {
- "basic_attributes": {
- "apparent_age": 33,
- "apparent_gender": 1
}, - "upper_body": {
- "headwear": {
- "state": 1,
- "apparent_color": "undefined"
}, - "sleeve": {
- "length": "long"
}, - "upper_clothing": {
- "colors": [
- "black",
- "white"
]
}
}, - "lower_body": {
- "lower_garment": {
- "type": "undefined",
- "colors": [
- "black",
- "white"
]
}, - "shoes": {
- "apparent_color": "undefined"
}
}, - "accessories": {
- "backpack": {
- "state": 1
}
}
}
}, - "url": "/6/samples/bodies/45838c8b-04a1-4230-bda0-b5f77609b695"
}, - "face": {
- "sample_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "detection": {
- "quality": {
- "light": 0.87,
- "dark": 0.13,
- "illumination": 0.1,
- "specularity": 0.1,
- "blurriness": 0.2
}, - "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}, - "landmarks5": [ ],
- "landmarks68": [ ],
- "attributes": {
- "mouth_attributes": {
- "occluded": 0,
- "score": 0.999999165534973,
- "smile": 0
}, - "mask": {
- "estimations": {
- "medical_mask": 0.7108324766,
- "missing": 0.0700698048,
- "occluded": 0.2190976739
}, - "predominant_mask": "medical_mask",
- "face_occlusion": {
- "predominant_occlusion": "correct",
- "estimations": {
- "full": 0.019,
- "clear": 0.02,
- "correct": 0.6108324766,
- "partially": 0.31,
- "mouth": 0.0209,
- "chin": 0.019097
}
}
}, - "emotions": {
- "estimations": {
- "anger": 0.00894705578684807,
- "disgust": 0.00000965219624049496,
- "fear": 0.00121302821207792,
- "happiness": 0.00129503419157118,
- "neutral": 0.986027479171753,
- "sadness": 0.00187553185969591,
- "surprise": 0.000632198702078313
}, - "predominant_emotion": "neutral"
}, - "head_pose": {
- "pitch": 18.6827487945557,
- "roll": -10.3542232513428,
- "yaw": 15.4102487564087
}, - "gaze": {
- "pitch": 9.26744079589844,
- "yaw": -19.4657287597656
}, - "glasses": {
- "glasses": "no_glasses"
}, - "liveness": {
- "prediction": "real",
- "estimations": {
- "score": 0.99,
- "quality": 1
}
}
}, - "face_quality": {
- "status": 0,
- "checks": [
- {
- "name": "image_format",
- "object_value": "JPEG",
- "threshold_value": [
- null
], - "result": 0
}
]
}
}, - "url": "/6/samples/faces/45838c8b-04a1-4230-bda0-b5f77609b695"
}
}, - "detect_time": "2018-08-11T09:11:41.674Z",
- "detect_ts": 123.456,
- "image_origin": "/6/images/b668c4a5-2191-476e-a261-3b4f9ce2e25e\n"
}
], - "source": "3rd Avenue",
- "stream_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "location": {
- "city": "string",
- "area": "string",
- "district": "string",
- "street": "string",
- "house_number": "string",
- "geo_position": {
- "longitude": 0,
- "latitude": 0
}
}, - "external_id": "14159261415926",
- "user_data": "some event",
- "track_id": "useful_track_id_number_1",
- "face": {
- "face_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c6",
- "event_id": "f9687459-986b-406d-9c1f-0d6289be5256",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "user_data": "fox1991",
- "lists": [
- "429b0e78-4616-426a-b57f-02baa72d638d",
- "6d037c33-31ec-4d73-b3b3-ec80b09446c2"
], - "url": "/6/faces/426542d6-5509-4e5b-8a01-e2abd5c0a8c6"
}, - "matches": [
- {
- "label": "good guys",
- "candidates": [
- {
- "face": {
- "face_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c6",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "user_data": "fox1991",
- "create_time": "2018-08-11T09:11:41.674Z"
}, - "similarity": 0.5
}
]
}, - {
- "label": "bad guys",
- "candidates": [
- {
- "event": {
- "event_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "user_data": "fox1991",
- "create_time": "2018-08-11T09:11:41.674Z",
- "handler_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
- "source": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
- "stream_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7"
}, - "similarity": 0.3
}
]
}
], - "face_attributes": {
- "attribute_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "basic_attributes": {
- "age": 29,
- "gender": 1,
- "ethnicities": {
- "predominant_ethnicity": "african_american",
- "estimations": {
- "asian": 1,
- "indian": 1,
- "caucasian": 1,
- "african_american": 1
}
}
}, - "score": 1,
- "samples": [ ],
- "descriptor": "string",
- "url": "../dictionary"
}, - "body_attributes": {
- "score": 1,
- "samples": [ ],
- "descriptor": "string"
}, - "aggregate_estimations": {
- "face": {
- "attributes": null
}, - "body": {
- "attributes": {
- "basic_attributes": {
- "apparent_age": 33,
- "apparent_gender": 1
}, - "upper_body": {
- "headwear": {
- "state": 1,
- "apparent_color": "undefined"
}, - "sleeve": {
- "length": "long"
}, - "upper_clothing": {
- "colors": [
- "black",
- "white"
]
}
}, - "lower_body": {
- "lower_garment": {
- "type": "undefined",
- "colors": [
- "black",
- "white"
]
}, - "shoes": {
- "apparent_color": "undefined"
}
}, - "accessories": {
- "backpack": {
- "state": 1
}
}
}
}
}, - "tags": [
- "tag1",
- "tag2"
], - "create_time": "2018-08-11T09:11:41.674Z",
- "end_time": "2018-08-11T09:11:41.674Z",
- "meta": {
- "key": "value"
}
}
{- "event_id": "b5d6fd45-fcca-453d-ac05-3e594054b813",
- "url": "/6/events/b5d6fd45-fcca-453d-ac05-3e594054b813",
}
Позволяет получить параметры для ресурса.
handler_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор динамического обработчика. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить статистику событий по целям с примененными фильтрами.
Поля событий и/или функции (количество, минимум и т. д.) могут быть установлены в качестве целей для агрегирования событий.
Доступна группировка по частоте или по временным интервалам.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
Array of objects (targets) >= 0 items Default: [{"column":"event_id","aggregator":"count"}] Можно указать одно или несколько целевых полей событий и функций для них для агрегирования данных. В таблице представлены целевые поля событий и доступные для них функции:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (filters) >= 0 items Определяет фильтры для событий. Операторы, доступные для каждого фильтра:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (periods) >= 0 items Указывает период создания события. Все события, созданные за этот период, будут включены в статистику. Можно установить начало и конец периода или только одну из границ.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
group_by | string (group_by) Позволяет группировать события по времени создания одним из двух способов:
|
{- "targets": [
- {
- "column": "event_id",
- "aggregator": "count"
}, - {
- "column": "age",
- "aggregator": "group_by"
}, - {
- "column": "gender",
- "aggregator": "group_by"
}
], - "filters": [
- {
- "column": "source",
- "operator": "eq",
- "value": "Main_hall_camera"
}
], - "period": [
- {
- "operator": "gt",
- "value": "2020-02-04T00:00:00Z"
}, - {
- "operator": "lt",
- "value": "2020-02-06T00:00:00Z"
}
], - "group_by": "dayOfWeek"
}
{- "fields": [
- "Group by time: dayOfWeek",
- "gender, aggregator 'group_by'",
- "age, aggregator 'group_by'",
- "event_id, aggregator 'count'"
], - "stats": [
- [
- "Tuesday",
- 0,
- 22,
- 45
], - [
- "Tuesday",
- 0,
- 27,
- 23
], - [
- "Tuesday",
- 1,
- 27,
- 45
], - [
- "Wednesday",
- 0,
- 25,
- 34
], - [
- "Wednesday",
- 1,
- 33,
- 345
]
]
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить события, удовлетворяющие фильтрам.
Фильтры по умолчанию для событий:
create_time__lt
– текущие дата и время;create_time__gte
– текущие дата и время минус месяц.Фильтры по умолчанию не используются, если определен любой из следующих параметров:
- список event_id;
- нижнее пороговое значение идентификатора события (`event_id__gte`);
- верхнее пороговое значение идентификатора события (`event_id__lt`);
- нижнее пороговое значение времени создания (`create_time__gte`);
- верхнее пороговое значение времени создания (`create_time__lt`).
Параметр target
определяет целевое поле, которое будет отображаться для каждого события. Если параметр не установлен, ответ будет содержать все поля.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
target | Array of strings (events_targets) Items Enum: "event_id" "account_id" "create_time" "end_time" "external_id" "handler_id" "stream_id" "source" "top_match" "match_result" "face_detections" "body_detections" "face_id" "attach_result" "gender" "age" "emotion" "ethnic_group" "tags" "user_data" "location" "mask" "liveness" "track_id" "body_basic_attributes" "upper_body" "lower_body" "accessories" "meta" Example: target=create_time,event_id,face_detections Список целевых полей событий, разделенных запятыми. Если параметр задан, каждое событие в результатах запроса будет содержать только указанные поля, в противном случае будут возвращены события со всеми полями. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
create_time__gte | string <date-time> (time) Example: create_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
create_time__lt | string <date-time> (time) Example: create_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
end_time__gte | string <date-time> (time) Example: end_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
end_time__lt | string <date-time> (time) Example: end_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sources | string Example: sources=cam1,cam2 Список источников, разделенных запятыми. Каждое событие в результатах запроса будет содержать один из указанных источников. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stream_ids | string <list of uuid.> Example: stream_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список идентификаторов "stream_id", разделенных запятыми. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cities | string Example: cities=Moscow,New York Список названий городов, разделенных запятыми. Каждое событие в результатах запроса будет содержать в параметре "location" одно из указанных названий городов. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
areas | string Example: areas=CAD,Manhattan Список областей, разделенных запятыми. Каждое событие в результатах запроса будет содержать в параметре "location" одну из указанных областей. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
districts | string Example: districts=Mitino,Midtown Список районов, разделенных запятыми. Каждое событие в результатах запроса будет содержать в параметре "location" один из указанных районов. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
streets | string Example: streets=Arbat,West 48th street Список улиц, разделенных запятыми. Каждое событие в результатах запроса будет содержать в параметре "location" одну из указанных улиц. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
house_numbers | string Example: house_numbers=1,220 Список номеров домов, разделенных запятыми. Каждое событие в результатах запроса будет содержать в параметре "location" один из указанных номеров домов в параметре "location". | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
longitude (number) or null_filter (string) Example: origin_longitude=36.616 Начало отсчета долготы в градусах, часть составного фильтра географического положения или "null" если не задана геопозиция. Фильтр географического положения – это ограничивающий прямоугольник, заданный координатами его центра и некоторой дельтой. Фильтр географического положения считается корректно заданным, если установлены оба параметра origin_longitude и origin_latitude, и считается некорректно заданным, если ни один из параметров origin_latitude, longitude_delta, latitude_delta не установлен. Фильтр "null" применяется только в том случае, если для origin_longitude или origin_latitude задано значение "null", и longitude_delta и latitude_delta не установлены. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
latitude (number) or null_filter (string) Example: origin_latitude=55.752 Начало отсчета широты в градусах, часть составного фильтра географического положения или "null" если не задана геопозиция. Фильтр географического положения – это ограничивающий прямоугольник, заданный координатами его центра и некоторой дельтой. Фильтр географического положения считается корректно заданным, если установлены оба параметра origin_longitude и origin_latitude, и считается некорректно заданным, если ни один из параметров origin_latitude, longitude_delta, latitude_delta не установлен. Фильтр "null" применяется только в том случае, если для origin_longitude или origin_latitude задано значение "null", и longitude_delta и latitude_delta не установлены. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
longitude_delta | number (longitude_delta) [ 0 .. 90 ] Default: 0.01 Example: longitude_delta=0.01 Дельта долготы в градусах, часть составного фильтра географического положения. Фильтр географического положения – это ограничивающий прямоугольник, заданный координатами его центра и некоторой дельтой. Фильтр географического положения считается корректно заданным, если установлены оба параметра origin_longitude и origin_latitude, и считается некорректно заданным, если ни один из параметров origin_latitude, longitude_delta, latitude_delta не установлен. Если оба параметра origin_longitude и origin_latitude установлены, а параметр longitude_delta не установлен, применяется значение по умолчанию. Примечание. Ограничивающие прямоугольники с вершиной или границей на Международной линии перемены дат (IDL), а также на Северном или Южном полюсе не полностью поддерживаются из-за особенностей пространственного индекса базы данных. Результат фильтрации может отличаться от предполагаемого. Настоятельно рекомендуется использовать только в пределах одного города. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
latitude_delta | number (latitude_delta) [ 0 .. 90 ] Default: 0.01 Example: latitude_delta=0.01 Дельта широты в градусах, часть составного фильтра географического положения. Фильтр географического положения – это ограничивающий прямоугольник, заданный координатами его центра и некоторой дельтой. Фильтр географического положения считается корректно заданным, если установлены оба параметра origin_longitude и origin_latitude, и считается некорректно заданным, если ни один из параметров origin_latitude, longitude_delta, latitude_delta не установлен. Если оба параметра origin_longitude и origin_latitude установлены, а параметр longitude_delta не установлен, применяется значение по умолчанию. Примечание. Ограничивающие прямоугольники с вершиной или границей на Международной линии перемены дат (IDL), а также на Северном или Южном полюсе не полностью поддерживаются из-за особенностей пространственного индекса базы данных. Результат фильтрации может отличаться от предполагаемого. Настоятельно рекомендуется использовать только в пределах одного города. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
top_matching_candidates_label | string Example: top_matching_candidates_label=matching_label Метка группы результатов сравнения, к которой относятся кандидаты с самой высокой степенью схожести. Каждое событие в результатах запроса будет содержать данную метку. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
top_similar_object_ids | Array of strings (external_id) [ items <= 36 characters ] Example: top_similar_object_ids=14159261415926 Список наиболее похожих object_id, разделенных запятыми. Каждое событие в результатах запроса будет содержать один из указанных наиболее похожих object_id. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
top_similar_external_ids | Array of strings <uuid> (uuid) Example: top_similar_external_ids=557d54ec-29ad-4f3c-93b4-c9092ef12515 Список наиболее похожих external_id, разделенных запятыми. Каждое событие в результатах запроса будет содержать один из указанных наиболее похожих external_id. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
top_similar_object_similarity__gte | number Example: top_similar_object_similarity__gte=0.5 Верхнее включенное пороговое значение параметра top_similar_object_similarity. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
top_similar_object_similarity__lt | number Example: top_similar_object_similarity__lt=0.5 Нижнее исключенное пороговое значение параметра top_similar_object_similarity. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
age__lt | integer Example: age__lt=50 Верхнее исключенное пороговое значение для параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
age__gte | integer Example: age__gte=50 Нижнее включенное пороговое значение для параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
integer or null_filter (string) Example: gender=1 Пол. "1" - мужской, "0" - женский, "null" - нулевое значение. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emotions | string <list of integer and null (1, 2, 3, 4, 5, 6, 7, null)> Example: emotions=1,2,3,null Список преобладающих эмоций, разделенных запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать одну из заданных эмоций.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
masks | string <list of integer and null (1, 2, 3, null)> Example: masks=1,2,3,null Список преобладающих статусов маски, разделенных запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать один из перечисленных статусов маски.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ethnic_groups | string <list of integer and null (1, 2, 3, 4, null)> Example: ethnic_groups=1,2,null Список преобладающих этнических групп, разделенных запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать одну из перечисленных этнических групп.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
liveness | string <list of integer and null (0, 1 ,2, null)> Example: liveness=1,2,null Список преобладающих состояний Liveness, разделенный запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать одно из перечисленных значений Liveness.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of integers or null_filter (string) Example: apparent_gender=1 Список предполагаемых состояний пола, разделенных запятыми: 0 - женский, 1 - мужской, 2 - неизвестно, "null" - нулевое значение. Каждое событие в результатах запроса будет содержать одно из указанных состояний. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
apparent_age__gte | integer [ 0 .. 100 ] Example: apparent_age__gte=50 Нижнее включенное пороговое значение преполагаемого возраста. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
apparent_age__lt | integer [ 0 .. 100 ] Example: apparent_age__lt=50 Верхнее исключенное пороговое значение преполагаемого возраста. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of integers or null_filter (string) Example: headwear_states=1 Список состояний головного убора, разделенный запятыми: 0 - отсутствует, 1 - присутствует, 2 - неизвестно, "null" - нулевое значение. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of headwear_color (string) or null_filter (string) Example: headwear_apparent_colors=white,undefined,null Список предполагаемых цветов верхней одежды, разделенный запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать один из указанных цветов. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sleeve_lengths | Array of strings Items Enum: "short" "long" "undefined" null Example: sleeve_lengths=short,null Список состояний длины рукавов, разделенный запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать одно из указанных состояний. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of clothing_color (strings) or null_filter (string) Example: upper_clothing_colors=black,white Список цветов верхней одежды, разделенный запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать как минимум одно из указанных цветов. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of clothing_color (strings) or null_filter (string) Example: lower_garment_colors=black,white Список цветов нижней одежды. Каждое событие в результатах запроса будет содержать один из указанных цветов. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lower_garment_types | Array of strings Items Enum: "undefined" "trousers" "shorts" "skirt" null Example: lower_garment_types=trousers,undefined,null Список типов нижней одежды, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать один из указанных типов. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of shoes_color (string) or null_filter (string) Example: shoes_apparent_colors=white,undefined,null Список предполагаемых цветов обуви, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать один из указанных цветов. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of integers or null_filter (string) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
face_ids | string <list of uuid> Example: face_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список face_id, разделенных запятыми. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
event_ids | string <list of uuid.> Example: event_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список event_id, разделенных запятыми. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
event_id__gte | string <uuid.> Example: event_id__gte=8950722f-3fd4-4223-b48f-03f95f0e8dfb Верхнее исключенное пороговое значение для параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
event_id__lt | string <uuid.> Example: event_id__lt=346a5645-ec89-4806-820a-dbcb6e0dc381 Нижнее включенное пороговое значение для параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
handler_ids | string <list of uuid.> Example: handler_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список handler_id, разделенных запятыми. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
external_ids | string Example: external_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список external_id, разделенных запятыми. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
user_data | string Example: user_data=user_data_text Найти все объекты с параметром | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tags | Array of strings (tag) >= 0 items [ items <= 36 characters ] Example: tags=tag_1,tag_2 Список тегов, разделенных запятыми. Каждое событие в результатах запроса будет содержать все указанные теги. Каждый тег может содержать не более 36 символов. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
string or null_filter (string) Example: track_ids=track_id_number_1,track_id_number_2,null Список track_id, разделенных запятыми. Каждое событие в результатах запроса будет содержать один из указанных track_id. Каждый track_id может содержать не более 36 символов. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
string or null_filter (string) Example: meta.field_1__gt:numeric=36.6&meta.field_2.field_3__in=value,none&meta.field_4:integer=5 Заданные пользователем фильтры метаинформации события. Образец синтаксиса обращения к параметру: Путь к полю - это путь до поля JSON метаифнормации события. Для навигации по вложенным объектам используется точка (.). Оператор сравнения полей (опционален). Один из Тип данных поля (опционален). Один из Допустимые фильтры:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
order | string Enum: "asc" "desc" Порядок сортировки. Если задано значение "desc", сначала будут отображаться самые новые события. Если задано значение "asc", самые старые события будут показаны первыми. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
page | integer >= 1 Default: 1 Номер страницы. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
page_size | integer [ 1 .. 1000 ] Default: 10 Количество элементов на странице. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" params = { "age__lt": 90, "cities": "New York,Moscow", "track_ids": "There_and_Back_Again,Around_the_World", "emotions": "3,4,5,6,7", } headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/events" response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json())
{- "events": [
- {
- "create_time": "2020-10-11T09:11:41.674Z",
- "end_time": "2020-10-11T09:11:42.674Z",
- "event_id": "bd6df8ea-1df2-449d-b8e3-d1d40b215dc8",
- "handler_id": "791f002e-919c-459d-b766-cba9f4130853",
- "face_id": "e88b8804-fedb-4dc3-8a59-171caf416571",
- "account_id": "a778c4a5-2191-476e-a261-3b4f9ce2e25e",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "source": "3rd Avenue",
- "stream_id": "a778c4a5-2191-476e-a261-3b4f9ce2e25e",
- "top_match": {
- "face_id": "a3cd6fd9-75c2-47aa-b2cc-82d6f9792072",
- "similarity": 0.67,
- "label": "good guys",
- "external_id": "external_id_1"
}, - "match_result": [
- {
- "candidates": [
- {
- "event": {
- "event_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "create_time": "2018-08-11T09:11:41.674Z",
- "external_id": null,
- "user_data": "user data",
- "handler_id": null,
- "source": "cam_1",
- "stream_id": "a778c4a5-2191-476e-a261-3b4f9ce2e25e"
}, - "similarity": 0.63
}
], - "label": "good guy"
}
], - "face_detections": [
- {
- "sample_id": "a3e8716f-70dc-42ad-8428-7a552e800a37",
- "detection": {
- "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}
}, - "detect_time": "2020-10-11T09:11:41.674Z",
- "detect_ts": 123.456,
- "image_origin": null
}
], - "body_detections": [
- {
- "sample_id": "a3e8716f-70dc-42ad-8428-7a552e800a37",
- "detect_time": "2020-10-11T09:11:41.674Z",
- "detect_ts": 123.456,
- "image_origin": "/6/images/b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
], - "attach_result": [
- "24d405ce-bc56-4bf7-98e1-bdc962b4cf34",
- "6d037c33-31ec-4d73-b3b3-ec80b09446c2"
], - "gender": 1,
- "age": 27,
- "emotion": 5,
- "mask": 1,
- "ethnic_group": 3,
- "tags": [
- "good_event"
], - "user_data": "people are strange",
- "location": {
- "city": "New York",
- "area": "Manhattan",
- "district": null,
- "street": "West 48th street",
- "house_number": "220",
- "geo_position": {
- "latitude": -73.9906401596,
- "longitude": 40.7627248564
}
}, - "track_id": "e3ed4e18-2983-418d-879a-825e4517fc6c",
- "liveness": 1,
- "body_basic_attributes": {
- "apparent_age": 25,
- "apparent_gender": 0
}, - "upper_body": {
- "headwear": {
- "state": 0,
- "apparent_color": "undefined"
}, - "sleeve": {
- "length": "short"
}, - "upper_clothing": {
- "colors": [
- "white",
- "black"
]
}
}, - "lower_body": {
- "lower_garment": {
- "type": "trousers",
- "colors": [
- "white",
- "black"
]
}, - "shoes": {
- "apparent_color": "black"
}
}, - "accessories": {
- "backpack": {
- "state": 0
}
}, - "meta": {
- "foo": "bar"
}
}, - {
- "account_id": "e3ed4e18-2983-418d-879a-825e4517fc6c",
- "create_time": "2021-06-18T21:27:47.500116+03:00",
- "end_time": "2021-06-18T21:27:47.500116+03:00",
- "event_id": "2a7b475f-047a-442f-903f-eb0f632a5f25",
- "external_id": "5d169198-7999-41bc-8233-6f2e752c2b1a",
- "handler_id": "c79134a3-6395-432d-90a1-e877588a9c8f",
- "source": "Zhang_Ziyi",
- "face_id": "665bb0b9-c3d9-400b-86ab-31375e55405a",
- "gender": 0,
- "age": 27,
- "emotion": 4,
- "mask": 3,
- "ethnic_group": 3,
- "user_data": "Zhang_Ziyi",
- "track_id": "42104c78-8983-4ab8-a2ac-24653a7ce66d",
- "attach_result": [
- "35c01353-a71b-4f55-844d-2b4a001f4c5f"
], - "tags": [
- "Rihanna",
- "Top_model"
], - "face_detections": [
- {
- "sample_id": "67487758-fa42-4913-81e1-3750a4a45657",
- "detect_time": "2021-06-18T21:27:47.500116+03:00",
- "detect_ts": 123.456,
- "image_origin": null,
- "detection": {
- "rect": {
- "x": 228,
- "y": 200,
- "width": 413,
- "height": 522
}
}
}
], - "body_detections": null,
- "location": {
- "city": "New York",
- "area": "Manhattan",
- "district": "unknown",
- "street": null,
- "house_number": null,
- "geo_position": {
- "latitude": -73.9906401596,
- "longitude": 40.7627248564
}
}, - "match_result": [
- {
- "label": "11f14560-25c6-4727-b096-7e52a973e350",
- "candidates": [
- {
- "similarity": 0.1134187654,
- "face": {
- "face_id": "af836e01-7f0a-467d-9f91-e69909066f44",
- "user_data": "02e2565a-bd20-46bb-89f4-f7656a8eb0b7",
- "create_time": "2021-06-18T21:27:41.549079+03:00",
- "external_id": "3f8c9b4e-0d96-4617-8698-94b4c7932c0b"
}
}
]
}, - {
- "label": "ac75a600-8bf9-4a02-8bc1-daa8eeb0b41e",
- "candidates": [
- {
- "similarity": 0.0251344983,
- "face": {
- "face_id": "9a27acea-54ec-4f54-8491-12ffa74cc51a",
- "user_data": "851520ac-28d4-445c-8ecd-ced96a949545",
- "create_time": "2021-06-18T21:27:42.374622+03:00",
- "external_id": "77db6ad5-2eac-46eb-9574-52b4cbdeb80c"
}
}
]
}
], - "top_match": {
- "face_id": "af836e01-7f0a-467d-9f91-e69909066f44",
- "label": "11f14560-25c6-4727-b096-7e52a973e350",
- "similarity": 0.1134187654,
- "external_id": "external_id_1"
}, - "liveness": 1,
- "body_basic_attributes": {
- "apparent_age": 25,
- "apparent_gender": 0
}, - "upper_body": {
- "headwear": {
- "state": 0,
- "apparent_color": "undefined"
}, - "sleeve": {
- "length": "short"
}, - "upper_clothing": {
- "colors": [
- "white",
- "black"
]
}
}, - "lower_body": {
- "lower_garment": {
- "type": "trousers",
- "colors": [
- "white",
- "black"
]
}, - "shoes": {
- "apparent_color": "black"
}
}, - "accessories": {
- "backpack": {
- "state": 0
}
}, - "meta": null
}
]
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить событие по его event_id.
Параметр target
определяет целевое поле, которое будет отображаться для указанного события. Если такое поле не указано, ответ будет содержать все поля.
event_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор события. |
target | Array of strings (events_targets) Items Enum: "event_id" "account_id" "create_time" "end_time" "external_id" "handler_id" "stream_id" "source" "top_match" "match_result" "face_detections" "body_detections" "face_id" "attach_result" "gender" "age" "emotion" "ethnic_group" "tags" "user_data" "location" "mask" "liveness" "track_id" "body_basic_attributes" "upper_body" "lower_body" "accessories" "meta" Example: target=create_time,event_id,face_detections Список целевых полей событий, разделенных запятыми. Если задано, событие в результатах запроса будет содержать только указанные поля, в противном случае будет возвращено событие со всеми полями. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests import time baseUri = "http://127.0.0.1:5000/6" headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/handlers" payload = { "description": "non_dynamic_handler", "policies": {}, "handler_type": 0, } handlerId = requests.post(url, json=payload, headers=headers).json()["handler_id"] with open("image.jpg", "rb") as image_file: image = image_file.read() headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", "Luna-Event-Time": "2020-10-10T09:11:41.674Z", } url = f"{baseUri}/handlers/{handlerId}/events" eventId = requests.post( url, headers=headers, data=image, ).json()["events"][0]["event_id"] # We are waiting for the event to be created time.sleep(5) headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/events/{eventId}" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "create_time": "2020-10-11T09:11:41.674Z",
- "end_time": "2020-10-11T09:11:41.674Z",
- "event_id": "bd6df8ea-1df2-449d-b8e3-d1d40b215dc8",
- "handler_id": "791f002e-919c-459d-b766-cba9f4130853",
- "face_id": "e88b8804-fedb-4dc3-8a59-171caf416571",
- "account_id": "a778c4a5-2191-476e-a261-3b4f9ce2e25e",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "source": "3rd Avenue",
- "stream_id": "a778c4a5-2191-476e-a261-3b4f9ce2e25e",
- "top_match": {
- "face_id": "a3cd6fd9-75c2-47aa-b2cc-82d6f9792072",
- "similarity": 0.67,
- "label": "good guys",
- "external_id": "external_id_1"
}, - "match_result": [
- {
- "candidates": [
- {
- "event": {
- "event_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "create_time": "2018-08-11T09:11:41.674Z",
- "external_id": null,
- "user_data": "user data",
- "handler_id": null,
- "stream_id": "a778c4a5-2191-476e-a261-3b4f9ce2e25e",
- "source": "cam_1"
}, - "similarity": 0.63
}
], - "label": "good guy"
}
], - "face_detections": [
- {
- "sample_id": "a3e8716f-70dc-42ad-8428-7a552e800a37",
- "detection": {
- "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}
}, - "detect_time": "2020-10-11T09:11:41.674Z",
- "detect_ts": 123.456,
- "image_origin": null
}
], - "body_detections": [
- {
- "sample_id": "a3e8716f-70dc-42ad-8428-7a552e800a37",
- "detect_time": "2020-10-11T09:11:41.674Z",
- "detect_ts": 123.456,
- "image_origin": "/6/images/b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
], - "attach_result": [
- "24d405ce-bc56-4bf7-98e1-bdc962b4cf34",
- "6d037c33-31ec-4d73-b3b3-ec80b09446c2"
], - "gender": 1,
- "age": 27,
- "emotion": 5,
- "mask": 1,
- "ethnic_group": 3,
- "tags": [
- "good_event"
], - "user_data": "people are strange",
- "location": {
- "city": "New York",
- "area": "Manhattan",
- "district": null,
- "street": "West 48th street",
- "house_number": "220",
- "geo_position": {
- "latitude": -73.9906401596,
- "longitude": 40.7627248564
}
}, - "track_id": "e3ed4e18-2983-418d-879a-825e4517fc6c",
- "body_basic_attributes": {
- "apparent_age": 25,
- "apparent_gender": 0
}, - "upper_body": {
- "headwear": {
- "state": 0,
- "apparent_color": "undefined"
}, - "sleeve": {
- "length": "short"
}, - "upper_clothing": {
- "colors": [
- "white",
- "black"
]
}
}, - "lower_body": {
- "lower_garment": {
- "type": "trousers",
- "colors": [
- "white",
- "black"
]
}, - "shoes": {
- "apparent_color": "black"
}
}, - "accessories": {
- "backpack": {
- "state": 0
}
}, - "meta": {
- "foo": "bar"
}
}
Позволяет проверить существование события по указанному event_id
.
event_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор события. |
target | Array of strings (events_targets) Items Enum: "event_id" "account_id" "create_time" "end_time" "external_id" "handler_id" "stream_id" "source" "top_match" "match_result" "face_detections" "body_detections" "face_id" "attach_result" "gender" "age" "emotion" "ethnic_group" "tags" "user_data" "location" "mask" "liveness" "track_id" "body_basic_attributes" "upper_body" "lower_body" "accessories" "meta" Example: target=create_time,event_id,face_detections Список целевых полей событий, разделенных запятыми. Если задано, событие в результатах запроса будет содержать только указанные поля, в противном случае будет возвращено событие со всеми полями. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests import time baseUri = "http://127.0.0.1:5000/6" headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/handlers" payload = { "description": "non_dynamic_handler", "policies": {}, "handler_type": 0, } handlerId = requests.post(url, json=payload, headers=headers).json()["handler_id"] # emit event with open("image.jpg", "rb") as image_file: image = image_file.read() headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", "Content-Type": "image/jpeg", "Luna-Event-Time": "2020-10-10T09:11:41.674Z", } url = f"{baseUri}/handlers/{handlerId}/events" eventId = requests.post( url, headers=headers, data=image, ).json()["events"][0]["event_id"] # We are waiting for the event to be created time.sleep(5) headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/events/{eventId}" response = requests.head(url, headers=headers) print(response.status_code)
Позволяет получить параметры для ресурса.
event_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор события. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет создать задачу Clustering.
В разделе filters указывается, какие лица (или события) должны быть добавлены в кластер. Фильтры объединяются логическим И.
Доступные фильтры зависят от типа объекта: события или лица.
Отчет о выполненной задаче Clustering можно получить с помощью задачи Reporter.
Используйте GET-запрос к ресурсу "/6/tasks/{task_id}/result" чтобы получить результаты задачи.
Если результатов созданной задачи нет и возвращается ошибка "Object not found", Используйте GET-запрос к ресурсу "/6/tasks/errors/{error_id}" чтобы получить ошибки задачи.
Объекты для обработки должны принадлежать аккаунту пользователя, выполняющего запрос.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Value: "application/json" Тип содержимого – |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
description | string Данные пользователя, предоставленные для текущей задачи. |
required | object (clustering_task_content) Содержимое задачи Clustering. |
{- "description": "clustering faces",
- "content": {
- "filters": {
- "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "external_ids": [
- "14159261415926"
], - "user_data": "info",
- "face_id__gte": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "string",
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2018-08-11T09:11:41.674Z",
- "account_id": "string"
}, - "objects_type": "faces",
- "params": {
- "use_track_info": 0
}, - "threshold": 0.5,
- "descriptor": {
- "type": "face"
}, - "limit": 3
}
}
{- "task_id": 17
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет создать отчет по задаче в формате CSV.
В настоящий момент отчет создается только для задач Clustering.
Отчет содержит дополнительную информацию об объектах кластеризации (лицах или событиях). Можно указать дополнительную информацию, которая будет добавлена в отчет. Первый и второй столбцы в отчете всегда соответствуют номеру кластера и идентификатору объекта.
Используйте GET-запрос к ресурсу "/6/tasks/{task_id}/result" чтобы получить результаты задачи. Результат возвращается в ZIP-архиве, который содержит файл CSV. Если установить параметр save_images
, то в ZIP-архиве также будет находиться папка с изображениями.
Если результатов созданной задачи нет и возвращается ошибка "Object not found", Используйте GET-запрос к ресурсу "/6/tasks/errors/{error_id}" чтобы получить ошибки задачи.
Объекты для обработки должны принадлежать аккаунту пользователя, выполняющего запрос.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Value: "application/json" Тип содержимого – |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
description | string Предоставленные пользовательские данные для текущей задачи. |
required | object (ReporterTaskContent) Содержимое задачи Reporter. |
{- "description": "report clustering events from cam1",
- "content": {
- "columns": [
- "face_id",
- "user_data",
- "create_time"
], - "csv_delimiter": "$",
- "save_images": 1,
- "filters": {
- "task_id": 146,
- "account_id": "string"
}
}
}
{- "task_id": 17
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Собирает данные о событиях и/или лицах и экспортирует их из LP в файл CSV. Строки файла представляют запрошенные объекты. Также возвращаются соответствующие биометрические образцы (если они были запрошены).
Используйте GET-запрос к ресурсу "/6/tasks/{task_id}/result" чтобы получить результаты задачи. Результат возвращается в ZIP-архиве, который содержит файл CSV. Если установить параметр save_images
, то в ZIP-архиве также будет находиться папка с изображениями.
Если результатов созданной задачи нет и возвращается ошибка "Object not found", Используйте GET-запрос к ресурсу "/6/tasks/errors/{error_id}" чтобы получить ошибки задачи.
Объекты для обработки должны принадлежать аккаунту пользователя, выполняющего запрос.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Value: "application/json" Тип содержимого – |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
description | string (task_description) <= 128 characters Описание задачи. |
required | any Содержимое задачи Exporter. |
{- "description": "task description",
- "content": {
- "filters": {
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2018-08-11T09:11:41.674Z",
- "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "external_ids": [
- "14159261415926"
], - "user_data": "info",
- "face_id__gte": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "string",
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515"
}, - "objects_type": "string",
- "columns": [
- "face_id",
- "user_data",
- "create_time"
], - "descriptor": {
- "type": "face"
}, - "csv_delimiter": "$",
- "save_images": 0
}
}
{- "task_id": 31
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет создать задачу Linker.
Задача позволяет присоединять лица к указанному списку в соответствии с фильтрами.
Можно использовать лица или события в качестве объектов для этой задачи. Когда используются события, для каждого из событий создается новое лицо.
Для обработки задачи необходимо наличие списка:
Используйте GET-запрос к ресурсу "/6/tasks/{task_id}/result" чтобы получить результаты задачи.
Если результатов созданной задачи нет и возвращается ошибка "Object not found", Используйте GET-запрос к ресурсу "/6/tasks/errors/{error_id}" чтобы получить ошибки задачи.
Объекты для обработки должны принадлежать аккаунту пользователя, выполняющего запрос.
Если сервис Image Store отключен, результат подзадачи сохранен не будет.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Value: "application/json" Тип содержимого – |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
description | string Данные пользователя, предоставленные для текущей задачи. |
required | object (linker_task_content) Содержимое задачи Linker. |
{- "description": "linker task one",
- "content": {
- "create_list": 1,
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "user_data": "list of good persons",
- "objects_type": "faces",
- "filters": {
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2018-08-11T09:11:41.674Z",
- "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "external_ids": [
- "14159261415926"
], - "user_data": "info",
- "face_id__gte": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "string",
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515"
}
}
}
{- "task_id": 29
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет создать задачу Garbage Collection.
Используйте GET-запрос к ресурсу "/6/tasks/{task_id}/result" чтобы получить результаты задачи.
Если результатов созданной задачи нет и возвращается ошибка "Object not found", Используйте GET-запрос к ресурсу "/6/tasks/errors/{error_id}" чтобы получить ошибки задачи.
Объекты для обработки должны принадлежать аккаунту пользователя, выполняющего запрос.
Примечание: Если задача выполняется для лиц с отключенным флагом
remove_samples
, то единственный способ удалить биометрические образцы будет выполнение запроса "remove face/body sample".
Если сервис Image Store отключен, результат подзадачи сохранен не будет.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Value: "application/json" Тип содержимого – |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
description | string Данные пользователя, предоставленные для текущей задачи. |
required | object (GcEventsTaskContent) Содержимое задачи Garbage collection для удаления событий. |
{- "description": "gc task one",
- "content": {
- "target": "events",
- "filters": {
- "create_time__lt": "2018-08-11T09:11:41.674Z",
- "insert_time__lt": "2018-08-11T09:11:41.674Z",
- "handler_id": "string"
}, - "store_results": true,
- "remove_samples": false,
- "remove_image_origins": false
}
}
{- "task_id": 25
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет создать задачу Cross-Matching.
Задача Cross-matching позволяет сравнивать эталоны (лица, атрибуты или события) с кандидатами (лица, атрибуты или события) в соответствии с указанными фильтрами.
Все эталоны сравниваются со всеми кандидатами.
Можно ограничить количество кандидатов, возвращаемых в результатах сравнения и установить минимально допустимый порог схожести.
Используйте GET-запрос к ресурсу "/6/tasks/{task_id}/result" чтобы получить результаты задачи.
Если результатов созданной задачи нет и возвращается ошибка "Object not found", Используйте GET-запрос к ресурсу "/6/tasks/errors/{error_id}" чтобы получить ошибки задачи.
Объекты для обработки должны принадлежать аккаунту пользователя, выполняющего запрос.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Value: "application/json" Тип содержимого – |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
description | string Данные пользователя, предоставленные для текущей задачи. |
required | object (CrossMatchTaskContent) Содержимое задачи Cross-matching. |
{- "description": "matching visitors with the list of VIP customers",
- "content": {
- "filters": {
- "reference_filters": {
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2018-08-11T09:11:41.674Z",
- "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "external_ids": [
- "14159261415926"
], - "user_data": "info",
- "face_id__gte": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "string",
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "gender": 1,
- "sources": "Main_hall_camera"
}, - "candidate_filters": {
- "create_time__gte": "2018-02-11T09:11:41.674Z",
- "create_time__lt": "2020-02-12T09:11:41.674Z",
- "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "external_ids": [
- "14159261415926"
], - "user_data": "info",
- "face_id__gte": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "string",
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515"
}, - "reference_type": "events",
- "candidate_type": "faces"
}, - "threshold": 0.5,
- "limit": 3
}
}
{- "task_id": 15
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет создать задачу ROC-curve calculating.
ROC (Receiver Operating Characteristic) – это измерение производительности для задачи классификации при различных настройках пороговых значений. ROC-кривая строится используя отношение TPR (True Positive Rate) к FPR (False Positive Rate).
TPR – это количество пар истинно положительных совпадений, деленное на количество ожидаемых пар положительных совпадений, а FPR - количество пар ложно положительных совпадений, деленное на количество пар ожидаемых отрицательных совпадений. Каждая точка (FPR, TPR) ROC-кривой соответствует определенному порогу схожести.
Производительность модели определяется путем рассмотрения площади под ROC-кривой (или AUC), самой ROC-кривой и вторичной главной диагональной точкой пересечения, где частота ошибок типа I и типа II равны. Производительность модели также определяется путем попадания в top-N, то есть вероятностную оценку попадания пары положительных сравнений в top-N для любой группы результатов сравнения, отсортированной по схожести.
Используйте GET-запрос к ресурсу "/6/tasks/{task_id}/result" чтобы получить результаты задачи.
Если результатов созданной задачи нет и возвращается ошибка "Object not found", Используйте GET-запрос к ресурсу "/6/tasks/errors/{error_id}" чтобы получить ошибки задачи.
Объекты для обработки должны принадлежать аккаунту пользователя, выполняющего запрос.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Value: "application/json" Тип содержимого – |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
description | string Данные пользователя, предоставленные для текущей задачи. |
required | object (roc_task_content) Содержимое задачи ROC-curve calculating. |
{- "description": "matching famous people with customers",
- "content": {
- "markup": [
- {
- "face_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "label": 12
}, - {
- "face_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "label": 12
}
], - "filters": {
- "account_id": "string"
}, - "threshold_hit_top": 0.95,
- "limit": 100,
- "key_FPRs": [
- 0.000001,
- 0.001
]
}
}
{- "task_id": 14
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет создать задачу Estimator.
Задача позволяет выполнять пакетную обработку изображений с использованием указанных политик. Политики можно указать в запросе или использовать сохраненные, передав handler_id.
Ресурс может принимать для обработки три типа источников с изображениями:
Используйте GET-запрос к ресурсу "/6/tasks/{task_id}/result" чтобы получить результаты задачи.
Если результатов созданной задачи нет и возвращается ошибка "Object not found", Используйте GET-запрос к ресурсу "/6/tasks/errors/{error_id}" чтобы получить ошибки задачи.
Примечание. Перед использованием задачи необходимо убедиться, что в обработчике включена политика
storage_policy
с подполитикамиnotification_policy
иevent_policy
.
Объекты для обработки должны принадлежать аккаунту пользователя, выполняющего запрос.
Если сервис Image Store отключен, результат подзадачи сохранен не будет.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Value: "application/json" Тип содержимого – |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
description | string Предоставленные пользовательские данные для текущей задачи. |
required | object (estimator_task_content) Содержимое задачи Estimator. |
{- "description": "Задача Estimator с ZIP архивом",
- "content": {
- "handler": {
- "handler_id": "c42ad7cb-9078-4be4-8457-4d3c744477df"
}, - "source": {
- "source_type": "zip",
- "reference": {
- "prefix": "folder_in_archive/some_prefix",
- "postfix": ".jpg"
}, - "recursive": true,
- "authorization": {
- "password": 123456
}, - "image_type": 1
}
}
}
{- "task_id": 123
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить задачи в соответствии с фильтрами.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". | ||||||||||||||||||||||
page | integer >= 1 Default: 1 Номер страницы. | ||||||||||||||||||||||
page_size | integer [ 1 .. 1000 ] Default: 10 Количество элементов на странице. | ||||||||||||||||||||||
create_time__lt | string <date-time> (time) Example: create_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра | ||||||||||||||||||||||
create_time__gte | string <date-time> (time) Example: create_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра | ||||||||||||||||||||||
end_time__lt | string <date-time> (time) Example: end_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра | ||||||||||||||||||||||
end_time__gte | string <date-time> (time) Example: end_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра | ||||||||||||||||||||||
task_ids | string <comma-separate task ids> (taskIds) Example: task_ids=1,2,3 Список task_id, разделенных запятыми. | ||||||||||||||||||||||
task_type | integer (task_type) Enum: 0 1 2 3 4 5 6 7 8 9 Example: task_type=1 Тип задачи.
| ||||||||||||||||||||||
task_status | integer (taskStatus) Enum: 0 1 2 3 4 5 Example: task_status=1 Статус задачи:
| ||||||||||||||||||||||
schedule_id | integer (schedule_id) >= 1 Расписание, в соответствии с которым была создана задача. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/gc" payload = {"content": {"target": "events"}} taskId = requests.post(url, headers=headers, json=payload).json()["task_id"] headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } params = { "task_id": taskId, "task_type": 4, "task_status": 5, "create_time__gte": "2018-08-11T09:11:41.674Z", "page": 1, } url = f"{baseUri}/tasks" response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json())
{- "tasks": [
- {
- "task_id": 27,
- "account_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "create_time": "2018-08-11T09:11:41.674Z",
- "end_time": null,
- "last_update_time": "2018-08-11T09:11:41.674Z",
- "task_type": 6,
- "task_status": 1,
- "result_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "count_task_parts_done": 10,
- "count_task_parts_all": 100,
- "content": {
- "filters": {
- "account_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "reference_type": "events",
- "candidate_type": "faces",
- "reference_filters": {
- "gender": 1,
- "sources": [
- "Main_hall_camera"
]
}, - "candidate_filters": {
- "attribute_ids": [
- "83914110-cba3-46da-8dbe-e6e7a7aa2466",
- "9027e290-db5a-43b0-9454-848ad377d428"
]
}
}, - "threshold": 0.5,
- "limit": 3
}, - "description": "описание задачи",
- "schedule_id": 13
}, - {
- "task_id": 13,
- "create_time": "2018-10-11T09:11:41.755Z",
- "account_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "end_time": "2018-10-11T10:15:41.700Z",
- "last_update_time": "2018-10-11T09:11:41.755Z",
- "task_type": 2,
- "task_status": 5,
- "result_id": "3d69b8c3-8465-4eca-8a27-c5a30cd83e3d",
- "count_task_parts_done": 10,
- "count_task_parts_all": 10,
- "content": {
- "filters": {
- "account_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}, - "objects_type": "events",
- "threshold": 0.61,
- "params": {
- "use_track_info": 1
}, - "descriptor": {
- "type": "face"
}
}, - "description": "описание задачи",
- "schedule_id": 13
}
]
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить количество задач в соответствии с фильтрами.
create_time__lt | string <date-time> (time) Example: create_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра | ||||||||||||||||||||||
create_time__gte | string <date-time> (time) Example: create_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра | ||||||||||||||||||||||
end_time__lt | string <date-time> (time) Example: end_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра | ||||||||||||||||||||||
end_time__gte | string <date-time> (time) Example: end_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра | ||||||||||||||||||||||
task_ids | string <comma-separate task ids> (taskIds) Example: task_ids=1,2,3 Список task_id, разделенных запятыми. | ||||||||||||||||||||||
task_type | integer (task_type) Enum: 0 1 2 3 4 5 6 7 8 9 Example: task_type=1 Тип задачи.
| ||||||||||||||||||||||
task_status | integer (taskStatus) Enum: 0 1 2 3 4 5 Example: task_status=1 Статус задачи:
| ||||||||||||||||||||||
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". | ||||||||||||||||||||||
schedule_id | integer (schedule_id) >= 1 Расписание, в соответствии с которым была создана задача. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/gc" payload = {"content": {"target": "events"}} taskId = requests.post(url, headers=headers, json=payload).json()["task_id"] headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } params = { "task_id": taskId, "task_type": 4, "task_status": 5, "create_time__gte": "2018-08-11T09:11:41.674Z", "page": 1, } url = f"{baseUri}/tasks/count" response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json())
{- "count": 13
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Получить задачу по её идентификатору.
task_id required | integer >= 1 Идентификатор задачи. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/gc" payload = {"content": {"target": "events"}} taskId = requests.post(url, headers=headers, json=payload).json()["task_id"] headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/{taskId}" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "task_id": 13,
- "account_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "create_time": "2018-08-11T09:11:41.674Z",
- "end_time": "2018-08-11T10:11:41.674Z",
- "last_update_time": "2018-08-11T10:11:41.674Z",
- "task_type": 1,
- "task_status": 5,
- "result_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "count_task_parts_done": 10,
- "count_task_parts_all": 10,
- "content": {
- "filters": {
- "account_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}, - "objects_type": "faces",
- "user_data": "some info",
- "list_id": "8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a",
- "create_list": 1
}, - "description": "описание задачи"
}
Позволяет отменить задачу по ее идентификатору.
task_id required | integer >= 1 Идентификатор задачи. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/gc" payload = {"content": {"target": "events"}} taskId = requests.post(url, headers=headers, json=payload).json()["task_id"] headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/{taskId}" response = requests.patch(url, headers=headers) print(response.status_code)
{- "error_code": 12012,
- "desc": "Bad/incomplete input data",
- "detail": "Bad query parameters 'account_id'",
}
Позволяет удалить задачу и её результаты по идентификатору.
task_id required | integer >= 1 Идентификатор задачи. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/gc" payload = {"content": {"target": "events"}} taskId = requests.post(url, headers=headers, json=payload).json()["task_id"] headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/{taskId}" response = requests.delete(url, headers=headers) print(response.status_code)
{- "error_code": 12012,
- "desc": "Bad/incomplete input data",
- "detail": "Bad query parameters 'account_id'",
}
Позволяет получить параметры для ресурса.
task_id required | integer >= 1 Идентификатор задачи. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить результат задачи по её идентификатору.
Помимо результата задачи в ответе могут быть возвращены возникшие ошибки.
task_id required | integer >= 1 Идентификатор задачи. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests import time baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/gc" payload = {"content": {"target": "events"}} taskId = requests.post(url, headers=headers, json=payload).json()["task_id"] # wait for tasks to complete time.sleep(5) headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/{taskId}/result" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "result": [
- {
- "event_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "samples": [
- "ceaef36e-944f-4b80-a110-96b7d82b8b58"
]
}
], - "errors": [ ]
}
Позволяет получить параметры для ресурса.
task_id required | integer >= 1 Идентификатор задачи. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить подзадачи по идентификатору задачи.
task_id required | integer >= 1 Идентификатор задачи. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests import time baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/gc" payload = {"content": {"target": "events"}} taskId = requests.post(url, headers=headers, json=payload).json()["task_id"] # wait for tasks to complete time.sleep(5) headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/{taskId}/subtasks" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "subtasks": [
- {
- "subtask_id": 39,
- "task_id": 39,
- "result_id": "d4dd7ffc-b822-4ed1-88ab-dcce36ae6739",
- "create_time": "2020-06-10T01:09:53.973246+03:00",
- "end_time": "2020-06-10T01:09:54.014438+03:00",
- "subtask_status": 4,
- "content": {
- "target": "events",
- "filters": {
- "account_id": "448f50d1-19cd-4c77-9c2f-f6358b2dd385"
}
}
}, - {
- "subtask_id": 1,
- "task_id": 1,
- "result_id": null,
- "create_time": "2021-06-18T22:02:00.435144+03:00",
- "end_time": "2021-06-18T22:02:00.488094+03:00",
- "subtask_status": 3,
- "content": {
- "filters": {
- "list_id": "d94726c8-55c1-4acb-9ee3-7c40b69e1120",
- "account_id": "448f50d1-19cd-4c77-9c2f-f6358b2dd385"
}, - "objects_type": "faces",
- "descriptor": {
- "type": "face"
}
}
}
]
}
Позволяет получить параметры для ресурса.
task_id required | integer >= 1 Идентификатор задачи. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить ошибки задачи по её идентификатору.
task_id required | integer >= 1 Идентификатор задачи. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
page | integer >= 1 Default: 1 Номер страницы. |
page_size | integer [ 1 .. 1000 ] Default: 10 Количество элементов на странице. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests import time from uuid import uuid4 baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } payload = { "description": "matching famous people with customers", "content": { "markup": [ {"face_id": str(uuid4()), "label": 1}, {"face_id": str(uuid4()), "label": 2}, ], }, } url = f"{baseUri}/tasks/roc" taskId = requests.post(url, headers=headers, json=payload).json()["task_id"] # wait for tasks to complete time.sleep(5) headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/{taskId}/errors" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "errors": [
- {
- "error_id": 5808750,
- "task_id": 14980,
- "subtask_id": 69825,
- "error_code": 28010,
- "description": "Объекты не найдены",
- "detail": "Objects for clustering not found (empty set)",
- "additional_info": null,
- "error_time": "2019-04-29T10:53:42.417396+03:00"
}, - {
- "error_id": 9,
- "task_id": 41,
- "subtask_id": 41,
- "error_code": 13003,
- "description": "Объект не найден",
- "detail": "Image with id 'a75ddc76-e37e-45f5-9a7a-93e4001208fb' not found",
- "additional_info": "f2d470e7-03c1-4cb2-84b5-ea480f00b1f0",
- "error_time": "2020-05-09T04:10:35.279253+03:00"
}
]
}
Позволяет получить параметры для ресурса.
task_id required | integer >= 1 Идентификатор задачи. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить ошибки в соответствии с фильтрами.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". | ||||||||||||||||||||||
page | integer >= 1 Default: 1 Номер страницы. | ||||||||||||||||||||||
page_size | integer [ 1 .. 1000 ] Default: 10 Количество элементов на странице. | ||||||||||||||||||||||
task_ids | string <comma-separate task ids> (taskIds) Example: task_ids=1,2,3 Список task_id, разделенных запятыми. | ||||||||||||||||||||||
error_code | integer (error_code) Код ошибки. | ||||||||||||||||||||||
error_ids | string <comma-separate task ids> (errorIds) non-empty Example: error_ids=4,5,6 Список error_id, разделенных запятыми. | ||||||||||||||||||||||
error_time__lt | string <date-time> (time) Example: error_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра | ||||||||||||||||||||||
error_time__gte | string <date-time> (time) Example: error_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра | ||||||||||||||||||||||
task_type | integer (task_type) Enum: 0 1 2 3 4 5 6 7 8 9 Example: task_type=1 Тип задачи.
| ||||||||||||||||||||||
status_code | integer (status_code) [ 400 .. 599 ] Example: status_code=500 HTTP код состояния. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests import time from uuid import uuid4 baseUri = "http://127.0.0.1:5000/6" # create bad task headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } payload = { "description": "matching famous people with customers", "content": { "markup": [ {"face_id": str(uuid4()), "label": 1}, {"face_id": str(uuid4()), "label": 2}, ], }, } url = f"{baseUri}/tasks/roc" taskId = requests.post(url, headers=headers, json=payload).json()["task_id"] # wait for tasks to complete time.sleep(5) # get tasks error id list headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/{taskId}/errors" response = requests.get(url, headers=headers) errorIds = [ str(error["error_id"]) for error in response.json()["errors"] ] # get error according to the filters headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } payload = { "errors": [ { "error_id": ",".join(errorIds), "task_id": taskId, "error_time__gte": "2018-08-11T09:11:41.674Z", } ] } url = f"{baseUri}/tasks/errors" response = requests.get(url, headers=headers, json=payload) print(response.status_code) print(response.json())
{- "errors": [
- {
- "error_id": 5808750,
- "task_id": 14980,
- "subtask_id": 69825,
- "error_code": 28010,
- "description": "Объекты не найдены",
- "detail": "Objects for clustering not found (empty set)",
- "additional_info": null,
- "error_time": "2019-04-29T10:53:42.417396+03:00"
}, - {
- "error_id": 9,
- "task_id": 41,
- "subtask_id": 41,
- "error_code": 13003,
- "description": "Объект не найден",
- "detail": "Image with id 'a75ddc76-e37e-45f5-9a7a-93e4001208fb' not found",
- "additional_info": "f2d470e7-03c1-4cb2-84b5-ea480f00b1f0",
- "error_time": "2020-05-09T04:10:35.279253+03:00"
}
]
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить количество ошибок в соответствии с фильтрами.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". | ||||||||||||||||||||||
error_time__lt | string <date-time> (time) Example: error_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра | ||||||||||||||||||||||
error_time__gte | string <date-time> (time) Example: error_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра | ||||||||||||||||||||||
task_type | integer (task_type) Enum: 0 1 2 3 4 5 6 7 8 9 Example: task_type=1 Тип задачи.
| ||||||||||||||||||||||
status_code | integer (status_code) [ 400 .. 599 ] Example: status_code=500 HTTP код состояния. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests import time from uuid import uuid4 baseUri = "http://127.0.0.1:5000/6" # create bad task headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } payload = { "description": "matching famous people with customers", "content": { "markup": [ {"face_id": str(uuid4()), "label": 1}, {"face_id": str(uuid4()), "label": 2}, ], }, } url = f"{baseUri}/tasks/roc" taskId = requests.post(url, headers=headers, json=payload).json()["task_id"] # wait for tasks to complete time.sleep(5) # get tasks error id list headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/{taskId}/errors" response = requests.get(url, headers=headers) errorIds = [ str(error["error_id"]) for error in response.json()["errors"] ] # get error count headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } payload = { "errors": [ { "error_id": ",".join(errorIds), "task_id": taskId, "error_time__gte": "2018-08-11T09:11:41.674Z", } ] } url = f"{baseUri}/tasks/errors/count" response = requests.get(url, headers=headers, json=payload) print(response.status_code) print(response.json())
{- "count": 18
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить ошибку по ее идентификатору.
error_id required | integer >= 1 Идентификатор ошибки. |
error_id | integer (errorId) Example: error_id=10 Идентификатор ошибки. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests import time from uuid import uuid4 baseUri = "http://127.0.0.1:5000/6" # create bad task headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } payload = { "description": "matching famous people with customers", "content": { "markup": [ {"face_id": str(uuid4()), "label": 1}, {"face_id": str(uuid4()), "label": 2}, ], }, } url = f"{baseUri}/tasks/roc" taskId = requests.post(url, headers=headers, json=payload).json()["task_id"] # wait for tasks to complete time.sleep(5) # get tasks error id list headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/{taskId}/errors" response = requests.get(url, headers=headers) errorId = [ str(error["error_id"]) for error in response.json()["errors"] ][0] url = f"{baseUri}/tasks/errors/{errorId}" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "error_id": 5808750,
- "task_id": 14980,
- "subtask_id": 69825,
- "error_code": 28010,
- "description": "Объекты не найдены",
- "detail": "Objects for clustering not found (empty set)",
- "additional_info": null,
- "error_time": "2019-04-29T10:53:42.417396+03:00",
}
Позволяет получить параметры для ресурса.
error_id required | integer >= 1 Идентификатор ошибки. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет создать новое расписание задач.
Выполнение запланированных задач будет регулироваться в соответствии с триггером и при необходимости запускает одну задачу немедленно (см. параметр start_immediately в разделе behavior).
Ни одна задача из расписания не будет выполнена, если предыдущая задача еще не была выполнена.
Разрешения для объектов типа "task".
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Value: "application/json" Тип содержимого – |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
required | any (task_schedulable) Расписание задачи. |
required | object (schedule_trigger) Триггер планировщика задач. |
object (schedule_behaviour) Параметры поведения расписания. |
{- "task": {
- "task_type": 1,
- "content": {
- "create_list": 1,
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "user_data": "list of good persons",
- "objects_type": "faces",
- "filters": {
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2018-08-11T09:11:41.674Z",
- "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "external_ids": [
- "14159261415926"
], - "user_data": "info",
- "face_id__gte": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "string",
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515"
}
}
}, - "trigger": {
- "cron": "5 4 * * *",
- "cron_timezone": "utc"
}, - "behaviour": {
- "start_immediately": false,
- "create_stopped": false
}
}
{- "schedule_id": 1
}
Позволяет получить расписания задач в соответствии с фильтрами.
page | integer >= 1 Default: 1 Номер страницы. | ||||||||||||||||||||
page_size | integer [ 1 .. 1000 ] Default: 10 Количество элементов на странице. | ||||||||||||||||||||
task_type | integer (task_type_schedulable_reply) Enum: 1 2 3 4 5 6 7 8 9 Example: task_type=1 Тип задачи.
| ||||||||||||||||||||
create_time__lt | string <date-time> (time) Example: create_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра | ||||||||||||||||||||
create_time__gte | string <date-time> (time) Example: create_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра | ||||||||||||||||||||
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } params = { "create_time__lt": "2018-08-11T09:11:41.674Z", "create_time_gte": "2050-08-11T09:11:41.674Z", "task_type": 1, } url = f"{baseUri}/tasks/schedules" response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json())
[- {
- "schedule_id": 1,
- "task_ids": [
- 1,
- 2,
- 3
], - "account_id": "string",
- "task": {
- "task_type": 1,
- "content": {
- "filters": {
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2018-08-11T09:11:41.674Z",
- "account_id": "string",
- "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "external_ids": [
- "14159261415926"
], - "user_data": "info",
- "face_id__gte": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "string",
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515"
}, - "create_list": 1,
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "user_data": "100-00-12",
- "objects_type": "faces"
}
}, - "trigger": {
- "cron": "5 4 * * *",
- "cron_timezone": "utc"
}, - "status": "running",
- "next_run_time": "2018-08-11T09:11:41.674Z",
- "create_time": "2018-08-11T09:11:41.674Z",
- "last_update_time": "2018-08-11T09:11:41.674Z"
}
]
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить задачи по их идентификатору.
schedule_id required | integer (schedule_id) >= 1 Расписание, в соответствии с которым была создана задача. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" payload = { "task": { "task_type": 1, "content": { "create_list": 1, "objects_type": "faces", "filters": { "create_time__gte": "2018-08-11T09:11:41.674Z" }, }, }, "trigger": {"cron": "5 4 * * *", "cron_timezone": "utc"}, "behaviour": {"start_immediately": False, "create_stopped": False} } headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/schedules" response = requests.post(url, headers=headers, json=payload) scheduleId = response.json()["schedule_id"] url = f"{baseUri}/tasks/schedules/{scheduleId}" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "schedule_id": 1,
- "task_ids": [
- 1,
- 2,
- 3
], - "account_id": "string",
- "task": {
- "task_type": 1,
- "content": {
- "filters": {
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2018-08-11T09:11:41.674Z",
- "account_id": "string",
- "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "external_ids": [
- "14159261415926"
], - "user_data": "info",
- "face_id__gte": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "string",
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515"
}, - "create_list": 1,
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "user_data": "100-00-12",
- "objects_type": "faces"
}
}, - "trigger": {
- "cron": "5 4 * * *",
- "cron_timezone": "utc"
}, - "status": "running",
- "next_run_time": "2018-08-11T09:11:41.674Z",
- "create_time": "2018-08-11T09:11:41.674Z",
- "last_update_time": "2018-08-11T09:11:41.674Z"
}
Позволяет заменить расписание задач:
если выполняется какая-либо задача, созданная по старому расписанию, она будет отменена
параметры расписания будут заменены на новые
задания будут выполняться в соответствии с новым расписанием
schedule_id required | integer (schedule_id) >= 1 Расписание, в соответствии с которым была создана задача. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
required | any (task_schedulable) Расписание задачи. |
required | object (schedule_trigger) Триггер планировщика задач. |
object (schedule_behaviour) Параметры поведения расписания. |
{- "task": {
- "task_type": 1,
- "content": {
- "create_list": 1,
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "user_data": "list of good persons",
- "objects_type": "faces",
- "filters": {
- "create_time__gte": "2018-08-11T09:11:41.674Z",
- "create_time__lt": "2018-08-11T09:11:41.674Z",
- "face_ids": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
], - "external_ids": [
- "14159261415926"
], - "user_data": "info",
- "face_id__gte": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "face_id__lt": "string",
- "list_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515"
}
}
}, - "trigger": {
- "cron": "5 4 * * *",
- "cron_timezone": "utc"
}, - "behaviour": {
- "start_immediately": false,
- "create_stopped": false
}
}
{- "schedule_id": 1
}
Позволяет остановить/запустить расписание задачи.
schedule_id required | integer (schedule_id) >= 1 Расписание, в соответствии с которым была создана задача. |
action required | string Enum: "pause" "start" Позволяет остановить/запустить расписание задачи. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } # create list url = f"{baseUri}/lists" listId = requests.post(url, headers=headers).json()["list_id"] # create face url = f"{baseUri}/faces" faceId = requests.post(url, headers=headers).json()["face_id"] payload = { "task": { "task_type": 1, "content": { "create_list": 0, "objects_type": "faces", "list_id": listId, "filters": { "face_ids": [faceId], }, }, }, "trigger": {"cron": "5 4 * * *", "cron_timezone": "utc"}, "behaviour": {"start_immediately": False, "create_stopped": False} } headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/schedules" response = requests.post(url, headers=headers, json=payload) scheduleId = response.json()["schedule_id"] # Patch schedule params = {"action": "pause"} response = requests.patch(url + f"/{scheduleId}", headers=headers, params=params) print(response.status_code) print(response.json())
{- "error_code": 12012,
- "desc": "Bad/incomplete input data",
- "detail": "Bad query parameters 'account_id'",
}
Позволяет удалить расписание задач.
schedule_id required | integer (schedule_id) >= 1 Расписание, в соответствии с которым была создана задача. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } # create list url = f"{baseUri}/lists" listId = requests.post(url, headers=headers).json()["list_id"] # create face url = f"{baseUri}/faces" faceId = requests.post(url, headers=headers).json()["face_id"] payload = { "task": { "task_type": 1, "content": { "create_list": 0, "objects_type": "faces", "list_id": listId, "filters": { "face_ids": [faceId], }, }, }, "trigger": {"cron": "5 4 * * *", "cron_timezone": "utc"}, "behaviour": {"start_immediately": False, "create_stopped": False} } headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/tasks/schedules" response = requests.post(url, headers=headers, json=payload) scheduleId = response.json()["schedule_id"] # Delete schedule payload = {"action": "pause"} response = requests.delete(url + f"/{scheduleId}", headers=headers, json=payload) print(response.status_code)
{- "error_code": 12012,
- "desc": "Bad/incomplete input data",
- "detail": "Bad query parameters 'account_id'",
}
Позволяет получить параметры для ресурса.
schedule_id required | integer (schedule_id) >= 1 Расписание, в соответствии с которым была создана задача. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет создать верификатор.
Верификатор определяет список правил для обработки и верификации входных изображений.
Можно установить:
Созданный обработчик может использоваться в запросах "raw verification" и "perform verification".
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
description | string <= 128 characters Пользовательское описание верификатора. |
object |
{- "description": "strict verifier",
- "policies": {
- "verification_threshold": 0.9,
- "detect_policy": {
- "multiface_policy": 0,
- "estimate_head_pose": 0,
- "estimate_emotions": 0,
- "estimate_mask": 0,
- "estimate_quality": 0,
- "estimate_gaze": 0,
- "estimate_glasses": 0,
- "estimate_eyes_attributes": 0,
- "estimate_mouth_attributes": 0,
- "detect_landmarks68": 0,
- "extract_exif": 0,
- "yaw_threshold": 180,
- "roll_threshold": 180,
- "pitch_threshold": 180,
- "mask_states": [ ],
- "estimate_liveness": {
- "estimate": 0,
- "liveness_threshold": 0.5,
- "quality_threshold": 0.5
}, - "liveness_states": [ ],
- "face_quality": {
- "estimate": 0,
- "filter": 0,
- "checks": {
- "image_format": {
- "estimate": 0,
- "threshold": [
- "JPEG",
- "JPEG2000",
- "PNG"
]
}, - "illumination_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "specularity_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "blurriness_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "dark_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "light_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "head_yaw": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "head_pitch": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "head_roll": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "gaze_yaw": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "gaze_pitch": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "mouth_smiling": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "mouth_occluded": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "mouth_open": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "glasses": {
- "estimate": 0,
- "threshold": [
- "no_glasses",
- "eyeglasses"
]
}, - "left_eye": {
- "estimate": 0,
- "threshold": [
- "open"
]
}, - "right_eye": {
- "estimate": 0,
- "threshold": [
- "open"
]
}, - "head_horizontal_center": {
- "estimate": 0,
- "threshold": {
- "min": 0.45,
- "max": 0.55
}
}, - "head_vertical_center": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.5
}
}, - "head_width": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 0.75
}
}, - "head_height": {
- "estimate": 0,
- "threshold": {
- "min": 0.6,
- "max": 0.9
}
}, - "eye_distance": {
- "estimate": 0,
- "threshold": {
- "min": 91.1,
- "max": 92.2
}
}, - "image_width": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "image_height": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 1080
}
}, - "aspect_ratio": {
- "estimate": 0,
- "threshold": {
- "min": 0.74,
- "max": 0.8
}
}, - "face_width": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "face_height": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 0
}
}, - "indent_left": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "indent_right": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "indent_upper": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "indent_lower": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "image_size": {
- "estimate": 0,
- "threshold": {
- "min": 5120,
- "max": 2097152
}
}, - "eyebrows_state": {
- "estimate": 0,
- "threshold": [
- "neutral"
]
}, - "headwear_type": {
- "estimate": 0,
- "threshold": [
- "none"
]
}, - "smile_properties": {
- "estimate": 0,
- "threshold": [
- "none"
]
}, - "face_color_type": {
- "estimate": 0,
- "threshold": [
- "color"
]
}, - "natural_light": {
- "estimate": 0,
- "threshold": 0
}, - "red_eyes": {
- "estimate": 0,
- "threshold": 0
}, - "radial_distortion": {
- "estimate": 0,
- "threshold": 0
}, - "illumination_uniformity": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "dynamic_range": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_uniformity": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_lightness": {
- "estimate": 0,
- "threshold": {
- "min": 0.2,
- "max": 1
}
}, - "shoulders_position": {
- "estimate": 0,
- "threshold": [
- "parallel"
]
}
}
}
}, - "extract_policy": {
- "extract_basic_attributes": 0,
- "fd_score_threshold": 0.7
}, - "storage_policy": {
- "attribute_policy": {
- "store_attribute": 0
}, - "face_sample_policy": {
- "store_sample": 0
}
}
}
}
{- "verifier_id": "b5d6fd45-fcca-453d-ac05-3e594054b813",
- "url": "/6/verifiers/b5d6fd45-fcca-453d-ac05-3e594054b813",
}
Позволяет получить верификаторы по фильтрам.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
description | string будут обработаны записи с описаниями схожими с данным. |
page | integer >= 1 Default: 1 Номер страницы. |
page_size | integer [ 1 .. 1000 ] Default: 10 Количество элементов на странице. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/verifiers" payload = { "description": "new verifier", "policies": { "verification_threshold": 0.5, "detect_policy": { "estimate_mask": 1 }, "extract_policy": { "extract_basic_attributes": 1 }, "storage_policy": { "attribute_policy": { "store_attribute": 1 }, "face_sample_policy": { "store_sample": 1 } } } } # create verifier requests.post(url, json=payload, headers=headers) # get verifiers response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
[- {
- "verifier_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "account_id": "0468ca85-f6ca-4841-b30c-5ccc26b6f397",
- "description": "пример простого верификатора",
- "policies": {
- "verification_threshold": 0.99,
- "detect_policy": {
- "multiface_policy": 0,
- "estimate_head_pose": 0,
- "estimate_emotions": 0,
- "estimate_mask": 0,
- "estimate_quality": 0,
- "estimate_gaze": 0,
- "estimate_eyes_attributes": 0,
- "estimate_mouth_attributes": 0,
- "detect_landmarks68": 0,
- "extract_exif": 0,
- "yaw_threshold": 180,
- "roll_threshold": 180,
- "pitch_threshold": 180,
- "mask_states": [
- 1
], - "estimate_liveness": {
- "estimate": 1,
- "quality_threshold": 0.7,
- "liveness_threshold": 0.7
}, - "liveness_states": [
- 1
], - "face_quality": {
- "estimate": 1,
- "filter": 0,
- "checks": {
- "image_format": {
- "estimate": 1,
- "threshold": [
- "JPEG",
- "JPEG2000",
- "PNG"
]
}, - "illumination_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "specularity_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "blurriness_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.61,
- "max": 1
}
}, - "dark_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "light_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.57,
- "max": 0.9
}
}, - "head_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_roll": {
- "estimate": 1,
- "threshold": {
- "min": -8,
- "max": 8
}
}, - "gaze_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "gaze_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "mouth_smiling": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_occluded": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_open": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "glasses": {
- "estimate": 1,
- "threshold": [
- "no_glasses",
- "eyeglasses"
]
}, - "left_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "right_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "head_horizontal_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.45,
- "max": 0.55
}
}, - "head_vertical_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 0.5
}
}, - "head_width": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 0.75
}
}, - "head_height": {
- "estimate": 1,
- "threshold": {
- "min": 0.6,
- "max": 0.9
}
}, - "eye_distance": {
- "estimate": 1,
- "threshold": {
- "min": 90,
- "max": 1920
}
}, - "image_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "image_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1080
}
}, - "aspect_ratio": {
- "estimate": 1,
- "threshold": {
- "min": 0.74,
- "max": 0.8
}
}, - "face_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "face_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "indent_left": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_right": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_upper": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_lower": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "image_size": {
- "estimate": 1,
- "threshold": {
- "min": 5120,
- "max": 2097152
}
}, - "eyebrows_state": {
- "estimate": 1,
- "threshold": [
- "neutral"
]
}, - "smile_properties": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "headwear_type": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "natural_light": {
- "estimate": 1,
- "threshold": 1
}, - "radial_distortion": {
- "estimate": 1,
- "threshold": 0
}, - "red_eyes": {
- "estimate": 1,
- "threshold": 0
}, - "face_color_type": {
- "estimate": 1,
- "threshold": [
- "color"
]
}, - "illumination_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "dynamic_range": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_lightness": {
- "estimate": 1,
- "threshold": {
- "min": 0.2,
- "max": 1
}
}, - "background_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}
}
}
}, - "extract_policy": {
- "extract_basic_attributes": 1,
- "fd_score_threshold": 0.7
}, - "storage_policy": {
- "attribute_policy": {
- "store_attribute": 0
}, - "face_sample_policy": {
- "store_sample": 0
}
}
}, - "create_time": "2019-08-24T14:15:22Z",
- "last_update_time": "2019-08-24T14:15:22Z",
- "version": 111
}, - {
- "verifier_id": "a48609f8-860f-412d-abab-9abfdb517e67",
- "account_id": "0468ca85-f6ca-4841-b30c-5ccc26b6f397",
- "create_time": "2021-06-18T22:05:06.324756+03:00",
- "last_update_time": "2021-06-18T22:05:06.324756+03:00",
- "description": "AAAac93c7fe-cda1-44b3-bcac-2421e3cb5924BBB",
- "policies": {
- "detect_policy": {
- "multiface_policy": 1,
- "estimate_head_pose": 0,
- "estimate_emotions": 0,
- "estimate_mask": 0,
- "estimate_quality": 0,
- "estimate_gaze": 0,
- "estimate_eyes_attributes": 0,
- "estimate_mouth_attributes": 0,
- "detect_landmarks68": 0,
- "extract_exif": 0,
- "pitch_threshold": null,
- "roll_threshold": null,
- "yaw_threshold": null,
- "mask_states": null,
- "estimate_liveness": {
- "estimate": 0,
- "quality_threshold": 0.7,
- "liveness_threshold": 0.7
}, - "liveness_states": null,
- "face_quality": {
- "estimate": 1,
- "filter": 0,
- "checks": {
- "image_format": {
- "estimate": 1,
- "threshold": [
- "JPEG",
- "JPEG2000",
- "PNG"
]
}, - "illumination_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "specularity_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "blurriness_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.61,
- "max": 1
}
}, - "dark_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "light_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.57,
- "max": 0.9
}
}, - "head_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_roll": {
- "estimate": 1,
- "threshold": {
- "min": -8,
- "max": 8
}
}, - "gaze_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "gaze_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "mouth_smiling": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_occluded": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_open": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "glasses": {
- "estimate": 1,
- "threshold": [
- "no_glasses",
- "eyeglasses"
]
}, - "left_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "right_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "head_horizontal_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.45,
- "max": 0.55
}
}, - "head_vertical_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 0.5
}
}, - "head_width": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 0.75
}
}, - "head_height": {
- "estimate": 1,
- "threshold": {
- "min": 0.6,
- "max": 0.9
}
}, - "eye_distance": {
- "estimate": 1,
- "threshold": {
- "min": 90,
- "max": 1920
}
}, - "image_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "image_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1080
}
}, - "aspect_ratio": {
- "estimate": 1,
- "threshold": {
- "min": 0.74,
- "max": 0.8
}
}, - "face_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "face_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "indent_left": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_right": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_upper": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_lower": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "image_size": {
- "estimate": 1,
- "threshold": {
- "min": 5120,
- "max": 2097152
}
}, - "eyebrows_state": {
- "estimate": 1,
- "threshold": [
- "neutral"
]
}, - "smile_properties": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "headwear_type": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "natural_light": {
- "estimate": 1,
- "threshold": 1
}, - "radial_distortion": {
- "estimate": 1,
- "threshold": 0
}, - "red_eyes": {
- "estimate": 1,
- "threshold": 0
}, - "face_color_type": {
- "estimate": 1,
- "threshold": [
- "color"
]
}, - "illumination_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "dynamic_range": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_lightness": {
- "estimate": 1,
- "threshold": {
- "min": 0.2,
- "max": 1
}
}, - "background_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}
}
}
}, - "extract_policy": {
- "extract_basic_attributes": 0,
- "fd_score_threshold": 0
}, - "storage_policy": {
- "attribute_policy": {
- "store_attribute": 0
}, - "face_sample_policy": {
- "store_sample": 0
}
}, - "verification_threshold": 0.9
}, - "version": 0
}
]
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет выполнить проверку входящих биометрических шаблонов.
"Similarity" (схожесть) и "verification status" (статус верификации) возвращаются для каждого кандидата.
"Verification status" имеет значение "true", если полученная схожесть больше, чем "verification_threshold" (указывается в обработчике верификатора). Следовательно, эталон и кандидат считаются одним и тем же лицом.
Для данного запроса необходимо указать биометрические шаблоны в качестве эталонов и кандидатов.
verifier_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор верификатора. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Enum: "application/json" "application/msgpack" Формат данных тела запроса. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
required | Array of xpk_file_entity_base64 (object) or sdk_descriptor_entity_base64 (object) or raw_descriptor_entity_base64 (object) non-empty Список эталонов для верификации. |
required | Array of xpk_file_entity_base64 (object) or sdk_descriptor_entity_base64 (object) or raw_descriptor_entity_base64 (object) non-empty Список кандидатов для верификации. |
{- "references": [
- {
- "data": "string",
- "id": "string",
- "type": "xpk_file"
}
], - "candidates": [
- {
- "data": "string",
- "id": "string",
- "type": "xpk_file"
}
]
}
{- "matches": [
- {
- "reference_id": "123456s",
- "matches": [
- {
- "candidate_id": "31415926",
- "similarity": 0.5,
- "status": true
}
]
}, - {
- "reference_id": "raw-1",
- "matches": [
- {
- "candidate_id": "candidate",
- "similarity": 0.0210287365,
- "status": false
}, - {
- "candidate_id": "sdk",
- "similarity": 0.0210287365,
- "status": false
}, - {
- "candidate_id": "xpk",
- "similarity": 0.0210287365,
- "status": false
}
]
}
]
}
Позволяет получить параметры для ресурса.
verifier_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор верификатора. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет проверифицировать данные изображения и/или биометрические шаблоны с указанным набором объектов: face_id, event_id, external_id.
"Similarity" (схожесть) и "verification status" (статус верификации) возвращаются для каждого кандидата.
"Verification status" имеет значение "true", если полученная схожесть больше, чем "verification_threshold" (указывается в обработчике верификатора). Следовательно, эталон и кандидат считаются одним и тем же лицом.
Входные изображения обрабатываются в соответствии с указанными политиками, а полученная информация возвращается в ответе.
Объекты для обработки должны принадлежать аккаунту пользователя, выполняющего запрос.
Примечания к входящим данным:
verifier_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор верификатора. |
face_ids | string <list of uuid> Example: face_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список face_id, разделенных запятыми. |
event_ids | string <list of uuid.> Example: event_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список event_id, разделенных запятыми. |
attribute_ids | string <list of uuid> Example: attribute_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список attribute_id, разделенных запятыми. |
external_ids | string Example: external_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список external_id, разделенных запятыми. |
image_type | integer Default: 0 Enum: 0 1 Тип входящего изображения. 0 - обычное изображение, 1 - нормализованное изображение лица. |
use_exif_info | integer Default: 1 Enum: 0 1 Example: use_exif_info=1 Следует ли автоматически поворачивать изображение на основе данных EXIF. Обрабатываемое изображение должно иметь EXIF данные, иначе автоматическая ориентация выполняться не будет. Не влияет на изображения в формате tiff (они всегда автоматически ориентированы). Не поддерживается с биометрическими образцами (см. параметры |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Enum: "image/jpeg" "image/png" "image/bmp" "image/x-portable-pixmap" "image/tiff" "multipart/form-data" "application/json" "image/x-jpeg-base64" "image/x-png-base64" "image/x-bmp-base64" "image/x-tiff-base64" "image/x-portable-pixmap-base64" "application/x-sdk-descriptor" "application/x-sdk-descriptor-base64" "application/x-vl-xpk" "application/x-vl-xpk-base64" |
{- "images": [
- {
- "error": {
- "error_code": 0,
- "detail": "Success",
- "desc": "Success",
}, - "status": 1,
- "filename": "penelope.jpeg",
- "exif": {
- "make": "Apple",
- "model": "iPhone 11",
- "gps": {
- "latitude": "55.0, 45.0, 18.29",
- "longitude": "37.0, 39.0, 16.32"
}, - "software": "13.6.1",
- "orientation": 6
}, - "detections": {
- "face_detections": [
- {
- "verifications": [
- {
- "similarity": 0.5,
- "status": true,
- "face": {
- "face_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
}
], - "face_attributes": {
- "attribute_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "basic_attributes": {
- "age": 29,
- "gender": 1,
- "ethnicities": {
- "estimations": {
- "african_american": 1.92238889737406e-12,
- "asian": 0.954671621322632,
- "caucasian": 0.045328326523304,
- "indian": 7.65100649502415e-10
}, - "predominant_ethnicity": "asian"
}
}, - "score": 0,
- "url": "/6/attributes/24d405ce-bc56-4bf7-98e1-bdc962b4cf34",
- "samples": [
- "a3e8716f-70dc-42ad-8428-7a552e800a37"
]
}, - "sample": {
- "face": {
- "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}, - "sample_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "url": "/6/samples/faces/a16c8b6c-2818-4bae-9fd5-65acc8d4bb5c",
- "attributes": {
- "mouth_attributes": {
- "occluded": 0,
- "opened": 0.1,
- "score": 0.999999165534973,
- "smile": 0.2
}, - "emotions": {
- "estimations": {
- "anger": 0.00894705578684807,
- "disgust": 0.00000965219624049496,
- "fear": 0.00121302821207792,
- "happiness": 0.00129503419157118,
- "neutral": 0.986027479171753,
- "sadness": 0.00187553185969591,
- "surprise": 0.000632198702078313
}, - "predominant_emotion": "neutral"
}, - "head_pose": {
- "pitch": 18.6827487945557,
- "roll": -10.3542232513428,
- "yaw": 15.4102487564087
}, - "gaze": {
- "pitch": 9.26744079589844,
- "yaw": -19.4657287597656
}
}, - "quality": {
- "light": 0.87,
- "dark": 0.13,
- "illumination": 0.1,
- "specularity": 0.1,
- "blurriness": 0.2
}, - "landmarks5": [
- [
- 72,
- 72
], - [
- 240,
- 240
], - [
- 154,
- 154
], - [
- 119,
- 119
], - [
- 259,
- 259
]
], - "landmarks68": [
- [
- 8,
- 8
], - [
- 14,
- 14
], - [
- 28,
- 28
], - [
- 48,
- 48
], - [
- 72,
- 72
], - [
- 102,
- 102
], - [
- 134,
- 134
], - [
- 168,
- 168
], - [
- 213,
- 213
], - [
- 262,
- 262
], - [
- 306,
- 306
], - [
- 345,
- 345
], - [
- 376,
- 376
], - [
- 392,
- 392
], - [
- 397,
- 397
], - [
- 399,
- 399
], - [
- 394,
- 394
], - [
- 2,
- 2
], - [
- 22,
- 22
], - [
- 50,
- 50
], - [
- 79,
- 79
], - [
- 106,
- 106
], - [
- 165,
- 165
], - [
- 199,
- 199
], - [
- 236,
- 236
], - [
- 278,
- 278
], - [
- 317,
- 317
], - [
- 137,
- 137
], - [
- 136,
- 136
], - [
- 136,
- 136
], - [
- 136,
- 136
], - [
- 119,
- 119
], - [
- 135,
- 135
], - [
- 154,
- 154
], - [
- 174,
- 174
], - [
- 193,
- 193
], - [
- 40,
- 40
], - [
- 57,
- 57
], - [
- 83,
- 83
], - [
- 108,
- 108
], - [
- 84,
- 84
], - [
- 58,
- 58
], - [
- 203,
- 203
], - [
- 222,
- 222
], - [
- 249,
- 249
], - [
- 277,
- 277
], - [
- 258,
- 258
], - [
- 229,
- 229
], - [
- 119,
- 119
], - [
- 130,
- 130
], - [
- 149,
- 149
], - [
- 167,
- 167
], - [
- 185,
- 185
], - [
- 222,
- 222
], - [
- 259,
- 259
], - [
- 232,
- 232
], - [
- 200,
- 200
], - [
- 177,
- 177
], - [
- 155,
- 155
], - [
- 134,
- 134
], - [
- 127,
- 127
], - [
- 152,
- 152
], - [
- 170,
- 170
], - [
- 190,
- 190
], - [
- 250,
- 250
], - [
- 193,
- 193
], - [
- 172,
- 172
], - [
- 152,
- 152
]
], - "face_quality": {
- "status": 0,
- "checks": [
- {
- "name": "image_format",
- "object_value": "JPEG",
- "threshold_value": [
- "JPEG",
- "JPEG2000",
- "PNG"
], - "result": 1
}, - {
- "name": "illumination_quality",
- "object_value": 0.6005162000656128,
- "threshold_value": {
- "min": 0.3,
- "max": 1
}, - "result": 1
}, - {
- "name": "specularity_quality",
- "object_value": 0.7662366628646851,
- "threshold_value": {
- "min": 0.3,
- "max": 1
}, - "result": 1
}, - {
- "name": "blurriness_quality",
- "object_value": 0.9429352283477783,
- "threshold_value": {
- "min": 0.61,
- "max": 1
}, - "result": 1
}, - {
- "name": "dark_quality",
- "object_value": 0.9020983576774597,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "light_quality",
- "object_value": 0.7881984114646912,
- "threshold_value": {
- "min": 0.57,
- "max": 1
}, - "result": 1
}, - {
- "name": "head_yaw",
- "object_value": 2.818983316421509,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "head_pitch",
- "object_value": 3.816443920135498,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "head_roll",
- "object_value": 5.434040069580078,
- "threshold_value": {
- "min": -8,
- "max": 8
}, - "result": 1
}, - {
- "name": "gaze_yaw",
- "object_value": -3.773012399673462,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "gaze_pitch",
- "object_value": 0.7140519022941589,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "mouth_smiling",
- "object_value": 0.000290759839117527,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "mouth_occluded",
- "object_value": 0.00009619363845558837,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "mouth_open",
- "object_value": 0.6226108074188232,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "glasses",
- "object_value": "no_glasses",
- "threshold_value": [
- "no_glasses",
- "eyeglasses"
], - "result": 1
}, - {
- "name": "left_eye",
- "object_value": "open",
- "threshold_value": [
- "open"
], - "result": 1
}, - {
- "name": "right_eye",
- "object_value": "open",
- "threshold_value": [
- "open"
], - "result": 1
}, - {
- "name": "head_horizontal_center",
- "object_value": 0.51,
- "threshold_value": {
- "min": 0.45,
- "max": 0.55
}, - "result": 1
}, - {
- "name": "head_vertical_center",
- "object_value": 0.51,
- "threshold_value": {
- "min": 0.3,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "head_width",
- "object_value": 0.61,
- "threshold_value": {
- "min": 0.5,
- "max": 0.75
}, - "result": 1
}, - {
- "name": "head_height",
- "object_value": 0.71,
- "threshold_value": {
- "min": 0.6,
- "max": 0.9
}, - "result": 1
}, - {
- "name": "eye_distance",
- "object_value": 110,
- "threshold_value": {
- "min": 90,
- "max": null
}, - "result": 1
}, - {
- "name": "image_width",
- "object_value": 1000,
- "threshold_value": {
- "min": 200,
- "max": 1100
}, - "result": 1
}, - {
- "name": "image_height",
- "object_value": 2000,
- "threshold_value": {
- "min": 200,
- "max": 1100
}, - "result": 1
}, - {
- "name": "aspect_ratio",
- "object_value": 0.5,
- "threshold_value": {
- "min": 0.1,
- "max": 1
}, - "result": 1
}, - {
- "name": "face_width",
- "object_value": 500,
- "threshold_value": {
- "min": 400,
- "max": 600
}, - "result": 1
}, - {
- "name": "face_height",
- "object_value": 500,
- "threshold_value": {
- "min": 400,
- "max": 600
}, - "result": 1
}, - {
- "name": "indent_left",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_right",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_upper",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_lower",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "image_size",
- "object_value": 100500,
- "threshold_value": {
- "min": 10,
- "max": 100600
}, - "result": 1
}, - {
- "name": "eyebrows_state",
- "object_value": "neutral",
- "threshold_value": [
- "neutral"
], - "result": 1
}, - {
- "name": "smile_properties",
- "object_value": "smile_lips",
- "threshold_value": [
- "none"
], - "result": 0
}, - {
- "name": "headwear_type",
- "object_value": "hat",
- "threshold_value": [
- "none"
], - "result": 0
}, - {
- "name": "natural_light",
- "object_value": 1,
- "threshold_value": 1,
- "result": 1
}, - {
- "name": "radial_distortion",
- "object_value": 0,
- "threshold_value": 0,
- "result": 1
}, - {
- "name": "red_eyes",
- "object_value": 0,
- "threshold_value": 0,
- "result": 1
}, - {
- "name": "face_color_type",
- "object_value": "color",
- "threshold_value": [
- "color"
], - "result": 1
}, - {
- "name": "illumination_uniformity",
- "object_value": 0.6305162000656128,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "dynamic_range",
- "object_value": 0.5305162000656128,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}
]
}
}
}
}
], - "filtered_detections": {
- "face_detections": [
- {
- "filter_reasons": [
- {
- "filter_name": "pitch_threshold",
- "object_value": 0,
- "threshold_value": 0
}
], - "detection": {
- "filename": "1.jpg",
- "sample": {
- "detection": {
- "attributes": {
- "mouth_attributes": {
- "occluded": 0,
- "opened": 0.2,
- "score": 0.999999165534973,
- "smile": 0.1
}, - "emotions": {
- "estimations": {
- "anger": 0.00894705578684807,
- "disgust": 0.00000965219624049496,
- "fear": 0.00121302821207792,
- "happiness": 0.00129503419157118,
- "neutral": 0.986027479171753,
- "sadness": 0.00187553185969591,
- "surprise": 0.000632198702078313
}, - "predominant_emotion": "neutral"
}, - "head_pose": {
- "pitch": 18.6827487945557,
- "roll": -10.3542232513428,
- "yaw": 15.4102487564087
}, - "gaze": {
- "pitch": 9.26744079589844,
- "yaw": -19.4657287597656
}
}, - "quality": {
- "light": 0.87,
- "dark": 0.13,
- "illumination": 0.1,
- "specularity": 0.1,
- "blurriness": 0.2
}, - "rect": {
- "height": 240,
- "width": 209,
- "x": 170,
- "y": 198
}, - "landmarks5": [
- [
- 72,
- 72
], - [
- 240,
- 240
], - [
- 154,
- 154
], - [
- 119,
- 119
], - [
- 259,
- 259
]
], - "landmarks68": [
- [
- 8,
- 8
], - [
- 14,
- 14
], - [
- 28,
- 28
], - [
- 48,
- 48
], - [
- 72,
- 72
], - [
- 102,
- 102
], - [
- 134,
- 134
], - [
- 168,
- 168
], - [
- 213,
- 213
], - [
- 262,
- 262
], - [
- 306,
- 306
], - [
- 345,
- 345
], - [
- 376,
- 376
], - [
- 392,
- 392
], - [
- 397,
- 397
], - [
- 399,
- 399
], - [
- 394,
- 394
], - [
- 2,
- 2
], - [
- 22,
- 22
], - [
- 50,
- 50
], - [
- 79,
- 79
], - [
- 106,
- 106
], - [
- 165,
- 165
], - [
- 199,
- 199
], - [
- 236,
- 236
], - [
- 278,
- 278
], - [
- 317,
- 317
], - [
- 137,
- 137
], - [
- 136,
- 136
], - [
- 136,
- 136
], - [
- 136,
- 136
], - [
- 119,
- 119
], - [
- 135,
- 135
], - [
- 154,
- 154
], - [
- 174,
- 174
], - [
- 193,
- 193
], - [
- 40,
- 40
], - [
- 57,
- 57
], - [
- 83,
- 83
], - [
- 108,
- 108
], - [
- 84,
- 84
], - [
- 58,
- 58
], - [
- 203,
- 203
], - [
- 222,
- 222
], - [
- 249,
- 249
], - [
- 277,
- 277
], - [
- 258,
- 258
], - [
- 229,
- 229
], - [
- 119,
- 119
], - [
- 130,
- 130
], - [
- 149,
- 149
], - [
- 167,
- 167
], - [
- 185,
- 185
], - [
- 222,
- 222
], - [
- 259,
- 259
], - [
- 232,
- 232
], - [
- 200,
- 200
], - [
- 177,
- 177
], - [
- 155,
- 155
], - [
- 134,
- 134
], - [
- 127,
- 127
], - [
- 152,
- 152
], - [
- 170,
- 170
], - [
- 190,
- 190
], - [
- 250,
- 250
], - [
- 193,
- 193
], - [
- 172,
- 172
], - [
- 152,
- 152
]
], - "face_quality": {
- "status": 0,
- "checks": [
- {
- "name": "image_format",
- "object_value": "JPEG",
- "threshold_value": [
- "JPEG",
- "JPEG2000",
- "PNG"
], - "result": 1
}, - {
- "name": "illumination_quality",
- "object_value": 0.6005162000656128,
- "threshold_value": {
- "min": 0.3,
- "max": 0.4
}, - "result": 1
}, - {
- "name": "specularity_quality",
- "object_value": 0.7662366628646851,
- "threshold_value": {
- "min": 0.3,
- "max": 1
}, - "result": 1
}, - {
- "name": "blurriness_quality",
- "object_value": 0.9429352283477783,
- "threshold_value": {
- "min": 0.61,
- "max": 1
}, - "result": 1
}, - {
- "name": "dark_quality",
- "object_value": 0.9020983576774597,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "light_quality",
- "object_value": 0.7881984114646912,
- "threshold_value": {
- "min": 0.57,
- "max": 1
}, - "result": 1
}, - {
- "name": "head_yaw",
- "object_value": 2.818983316421509,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "head_pitch",
- "object_value": 3.816443920135498,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "head_roll",
- "object_value": 5.434040069580078,
- "threshold_value": {
- "min": -8,
- "max": 8
}, - "result": 1
}, - {
- "name": "gaze_yaw",
- "object_value": -3.773012399673462,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "gaze_pitch",
- "object_value": 0.7140519022941589,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "mouth_smiling",
- "object_value": 0.000290759839117527,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "mouth_occluded",
- "object_value": 0.00009619363845558837,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "mouth_open",
- "object_value": 0.6226108074188232,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "glasses",
- "object_value": "no_glasses",
- "threshold_value": [
- "no_glasses",
- "eyeglasses"
], - "result": 1
}, - {
- "name": "left_eye",
- "object_value": "open",
- "threshold_value": [
- "open"
], - "result": 1
}, - {
- "name": "right_eye",
- "object_value": "open",
- "threshold_value": [
- "open"
], - "result": 1
}, - {
- "name": "head_horizontal_center",
- "object_value": 0.51,
- "threshold_value": {
- "min": 0.45,
- "max": 0.55
}, - "result": 1
}, - {
- "name": "head_vertical_center",
- "object_value": 0.51,
- "threshold_value": {
- "min": 0.3,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "head_width",
- "object_value": 0.61,
- "threshold_value": {
- "min": 0.5,
- "max": 0.75
}, - "result": 1
}, - {
- "name": "head_height",
- "object_value": 0.71,
- "threshold_value": {
- "min": 0.6,
- "max": 0.9
}, - "result": 1
}, - {
- "name": "eye_distance",
- "object_value": 110,
- "threshold_value": {
- "min": 90,
- "max": null
}, - "result": 1
}, - {
- "name": "image_width",
- "object_value": 1000,
- "threshold_value": {
- "min": 200,
- "max": 1100
}, - "result": 1
}, - {
- "name": "image_height",
- "object_value": 2000,
- "threshold_value": {
- "min": 200,
- "max": 1100
}, - "result": 1
}, - {
- "name": "aspect_ratio",
- "object_value": 0.5,
- "threshold_value": {
- "min": 0.1,
- "max": 1
}, - "result": 1
}, - {
- "name": "face_width",
- "object_value": 500,
- "threshold_value": {
- "min": 400,
- "max": 600
}, - "result": 1
}, - {
- "name": "face_height",
- "object_value": 500,
- "threshold_value": {
- "min": 400,
- "max": 600
}, - "result": 1
}, - {
- "name": "indent_left",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_right",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_upper",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_lower",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "image_size",
- "object_value": 100500,
- "threshold_value": {
- "min": 10,
- "max": 100600
}, - "result": 1
}, - {
- "name": "eyebrows_state",
- "object_value": "neutral",
- "threshold_value": [
- "neutral"
], - "result": 1
}, - {
- "name": "smile_properties",
- "object_value": "smile_lips",
- "threshold_value": [
- "none"
], - "result": 0
}, - {
- "name": "headwear_type",
- "object_value": "hat",
- "threshold_value": [
- "none"
], - "result": 0
}, - {
- "name": "natural_light",
- "object_value": 1,
- "threshold_value": 1,
- "result": 1
}, - {
- "name": "radial_distortion",
- "object_value": 0,
- "threshold_value": 0,
- "result": 1
}, - {
- "name": "red_eyes",
- "object_value": 0,
- "threshold_value": 0,
- "result": 1
}, - {
- "name": "face_color_type",
- "object_value": "color",
- "threshold_value": [
- "color"
], - "result": 1
}, - {
- "name": "illumination_uniformity",
- "object_value": 0.7305162000656128,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "dynamic_range",
- "object_value": 0.6305162000656128,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}
]
}
}
}
}
}
]
}
}
}, - {
- "error": {
- "error_code": 0,
- "desc": "Success",
- "detail": "Success",
}, - "status": 1,
- "filename": "raw image",
- "detections": {
- "face_detections": [
- {
- "sample": {
- "face": {
- "url": "null,",
- "sample_id": null,
- "rect": {
- "x": 70,
- "y": 40,
- "width": 135,
- "height": 181
}
}
}, - "verifications": [
- {
- "similarity": 1,
- "status": true,
- "face": {
- "face_id": "d05dd4eb-05e2-4962-9a91-7a665a2b3d67"
}
}, - {
- "similarity": 0.9951737645,
- "status": true,
- "face": {
- "face_id": "ed654332-f8ab-4030-b9bf-654d6790f865"
}
}, - {
- "similarity": 0.9934924273,
- "status": true,
- "face": {
- "face_id": "14abd41f-6fe6-445d-b9eb-95d010c42ca9"
}
}, - {
- "similarity": 0.9912151812,
- "status": true,
- "face": {
- "face_id": "c3618a84-e854-40a3-a12b-8c817652f941"
}
}, - {
- "similarity": 0.9894505146,
- "status": true,
- "face": {
- "face_id": "280e3988-c26a-4cbd-beeb-4dfa9c6e211c"
}
}
], - "face_attributes": {
- "samples": [ ],
- "attribute_id": null,
- "url": null,
- "score": 0.9952012300491333
}
}
], - "filtered_detections": {
- "face_detections": [ ]
}
}
}
]
}
Позволяет получить параметры для ресурса.
verifier_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор верификатора. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить количество верификаторов, удовлетворяющих фильтрам.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
description | string будут обработаны записи с описаниями схожими с данным. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/verifiers" payload = { "description": "new verifier", "policies": { "verification_threshold": 0.5, "detect_policy": { "estimate_mask": 1 }, "extract_policy": { "extract_basic_attributes": 1 }, "storage_policy": { "attribute_policy": { "store_attribute": 1 }, "face_sample_policy": { "store_sample": 1 } } } } # create verifier requests.post(url, json=payload, headers=headers) url = f"{url}/count" # get verifiers count response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "verifiers_count": 4
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить верификатор по его verifier_id.
verifier_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор верификатора. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/verifiers" payload = { "description": "new verifier", "policies": { "verification_threshold": 0.5, "detect_policy": { "estimate_mask": 1 }, "extract_policy": { "extract_basic_attributes": 1 }, "storage_policy": { "attribute_policy": { "store_attribute": 1 }, "face_sample_policy": { "store_sample": 1 } } } } # create verifier response = requests.post(url, json=payload, headers=headers) verifierId = response.json()["verifier_id"] url = f"{url}/{verifierId}" # get verifier response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "verifier_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
- "account_id": "0468ca85-f6ca-4841-b30c-5ccc26b6f397",
- "description": "пример простого верификатора",
- "policies": {
- "verification_threshold": 0.99,
- "detect_policy": {
- "multiface_policy": 0,
- "estimate_head_pose": 0,
- "estimate_emotions": 0,
- "estimate_mask": 0,
- "estimate_quality": 0,
- "estimate_gaze": 0,
- "estimate_eyes_attributes": 0,
- "estimate_mouth_attributes": 0,
- "detect_landmarks68": 0,
- "extract_exif": 0,
- "yaw_threshold": 180,
- "roll_threshold": 180,
- "pitch_threshold": 180,
- "mask_states": [
- 1
], - "estimate_liveness": {
- "estimate": 1,
- "quality_threshold": 0.7,
- "liveness_threshold": 0.7
}, - "liveness_states": [
- 1
], - "face_quality": {
- "estimate": 1,
- "filter": 0,
- "checks": {
- "image_format": {
- "estimate": 1,
- "threshold": [
- "JPEG",
- "JPEG2000",
- "PNG"
]
}, - "illumination_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "specularity_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 1
}
}, - "blurriness_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.61,
- "max": 1
}
}, - "dark_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "light_quality": {
- "estimate": 1,
- "threshold": {
- "min": 0.57,
- "max": 0.9
}
}, - "head_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "head_roll": {
- "estimate": 1,
- "threshold": {
- "min": -8,
- "max": 8
}
}, - "gaze_yaw": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "gaze_pitch": {
- "estimate": 1,
- "threshold": {
- "min": -5,
- "max": 5
}
}, - "mouth_smiling": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_occluded": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "mouth_open": {
- "estimate": 1,
- "threshold": {
- "min": 0,
- "max": 0.5
}
}, - "glasses": {
- "estimate": 1,
- "threshold": [
- "no_glasses",
- "eyeglasses"
]
}, - "left_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "right_eye": {
- "estimate": 1,
- "threshold": [
- "open"
]
}, - "head_horizontal_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.45,
- "max": 0.55
}
}, - "head_vertical_center": {
- "estimate": 1,
- "threshold": {
- "min": 0.3,
- "max": 0.5
}
}, - "head_width": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 0.75
}
}, - "head_height": {
- "estimate": 1,
- "threshold": {
- "min": 0.6,
- "max": 0.9
}
}, - "eye_distance": {
- "estimate": 1,
- "threshold": {
- "min": 90,
- "max": 1920
}
}, - "image_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "image_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1080
}
}, - "aspect_ratio": {
- "estimate": 1,
- "threshold": {
- "min": 0.74,
- "max": 0.8
}
}, - "face_width": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "face_height": {
- "estimate": 1,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "indent_left": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_right": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_upper": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "indent_lower": {
- "estimate": 1,
- "threshold": {
- "min": 20,
- "max": 1920
}
}, - "image_size": {
- "estimate": 1,
- "threshold": {
- "min": 5120,
- "max": 2097152
}
}, - "eyebrows_state": {
- "estimate": 1,
- "threshold": [
- "neutral"
]
}, - "smile_properties": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "headwear_type": {
- "estimate": 1,
- "threshold": [
- "none"
]
}, - "natural_light": {
- "estimate": 1,
- "threshold": 1
}, - "radial_distortion": {
- "estimate": 1,
- "threshold": 0
}, - "red_eyes": {
- "estimate": 1,
- "threshold": 0
}, - "face_color_type": {
- "estimate": 1,
- "threshold": [
- "color"
]
}, - "illumination_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "dynamic_range": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_lightness": {
- "estimate": 1,
- "threshold": {
- "min": 0.2,
- "max": 1
}
}, - "background_uniformity": {
- "estimate": 1,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "shoulders_position": {
- "estimate": 1,
- "threshold": [
- "parallel"
]
}
}
}
}, - "extract_policy": {
- "extract_basic_attributes": 1,
- "fd_score_threshold": 0.7
}, - "storage_policy": {
- "attribute_policy": {
- "store_attribute": 0
}, - "face_sample_policy": {
- "store_sample": 0
}
}
}, - "create_time": "2019-08-24T14:15:22Z",
- "last_update_time": "2019-08-24T14:15:22Z",
- "version": 111
}
Позволяет обновить параметры верификатора. Нельзя обновить только часть параметров, нужно указать для него все параметры.
verifier_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор верификатора. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Value: "application/json" Тип содержимого – |
description | string <= 128 characters Пользовательское описание верификатора. |
object |
{- "description": "strict verifier",
- "policies": {
- "verification_threshold": 0.9,
- "detect_policy": {
- "multiface_policy": 0,
- "estimate_head_pose": 0,
- "estimate_emotions": 0,
- "estimate_mask": 0,
- "estimate_quality": 0,
- "estimate_gaze": 0,
- "estimate_glasses": 0,
- "estimate_eyes_attributes": 0,
- "estimate_mouth_attributes": 0,
- "detect_landmarks68": 0,
- "extract_exif": 0,
- "yaw_threshold": 180,
- "roll_threshold": 180,
- "pitch_threshold": 180,
- "mask_states": [ ],
- "estimate_liveness": {
- "estimate": 0,
- "liveness_threshold": 0.5,
- "quality_threshold": 0.5
}, - "liveness_states": [ ],
- "face_quality": {
- "estimate": 0,
- "filter": 0,
- "checks": {
- "image_format": {
- "estimate": 0,
- "threshold": [
- "JPEG",
- "JPEG2000",
- "PNG"
]
}, - "illumination_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "specularity_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "blurriness_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "dark_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "light_quality": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "head_yaw": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "head_pitch": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "head_roll": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "gaze_yaw": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "gaze_pitch": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "mouth_smiling": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "mouth_occluded": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "mouth_open": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.9
}
}, - "glasses": {
- "estimate": 0,
- "threshold": [
- "no_glasses",
- "eyeglasses"
]
}, - "left_eye": {
- "estimate": 0,
- "threshold": [
- "open"
]
}, - "right_eye": {
- "estimate": 0,
- "threshold": [
- "open"
]
}, - "head_horizontal_center": {
- "estimate": 0,
- "threshold": {
- "min": 0.45,
- "max": 0.55
}
}, - "head_vertical_center": {
- "estimate": 0,
- "threshold": {
- "min": 0.3,
- "max": 0.5
}
}, - "head_width": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 0.75
}
}, - "head_height": {
- "estimate": 0,
- "threshold": {
- "min": 0.6,
- "max": 0.9
}
}, - "eye_distance": {
- "estimate": 0,
- "threshold": {
- "min": 91.1,
- "max": 92.2
}
}, - "image_width": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "image_height": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 1080
}
}, - "aspect_ratio": {
- "estimate": 0,
- "threshold": {
- "min": 0.74,
- "max": 0.8
}
}, - "face_width": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 1920
}
}, - "face_height": {
- "estimate": 0,
- "threshold": {
- "min": 180,
- "max": 0
}
}, - "indent_left": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "indent_right": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "indent_upper": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "indent_lower": {
- "estimate": 0,
- "threshold": {
- "min": 20,
- "max": 0
}
}, - "image_size": {
- "estimate": 0,
- "threshold": {
- "min": 5120,
- "max": 2097152
}
}, - "eyebrows_state": {
- "estimate": 0,
- "threshold": [
- "neutral"
]
}, - "headwear_type": {
- "estimate": 0,
- "threshold": [
- "none"
]
}, - "smile_properties": {
- "estimate": 0,
- "threshold": [
- "none"
]
}, - "face_color_type": {
- "estimate": 0,
- "threshold": [
- "color"
]
}, - "natural_light": {
- "estimate": 0,
- "threshold": 0
}, - "red_eyes": {
- "estimate": 0,
- "threshold": 0
}, - "radial_distortion": {
- "estimate": 0,
- "threshold": 0
}, - "illumination_uniformity": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "dynamic_range": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_uniformity": {
- "estimate": 0,
- "threshold": {
- "min": 0.5,
- "max": 1
}
}, - "background_lightness": {
- "estimate": 0,
- "threshold": {
- "min": 0.2,
- "max": 1
}
}, - "shoulders_position": {
- "estimate": 0,
- "threshold": [
- "parallel"
]
}
}
}
}, - "extract_policy": {
- "extract_basic_attributes": 0,
- "fd_score_threshold": 0.7
}, - "storage_policy": {
- "attribute_policy": {
- "store_attribute": 0
}, - "face_sample_policy": {
- "store_sample": 0
}
}
}
}
{- "version": 111
}
Позволяет проверить существование верификатора по указанному verifier_id
.
verifier_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор верификатора. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/verifiers" payload = { "description": "new verifier", "policies": { "verification_threshold": 0.5, "detect_policy": { "estimate_mask": 1 }, "extract_policy": { "extract_basic_attributes": 1 }, "storage_policy": { "attribute_policy": { "store_attribute": 1 }, "face_sample_policy": { "store_sample": 1 } } } } # create verifier response = requests.post(url, json=payload, headers=headers) verifierId = response.json()["verifier_id"] url = f"{url}/{verifierId}" # check verifier response = requests.head(url, headers=headers) print(response.status_code)
Позволяет удалить верификатор по его verifier_id.
verifier_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор верификатора. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = {"Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE="} url = f"{baseUri}/verifiers" payload = { "description": "new verifier", "policies": { "verification_threshold": 0.5, "detect_policy": { "estimate_mask": 1 }, "extract_policy": { "extract_basic_attributes": 1 }, "storage_policy": { "attribute_policy": { "store_attribute": 1 }, "face_sample_policy": { "store_sample": 1 } } } } # create verifier response = requests.post(url, json=payload, headers=headers) verifierId = response.json()["verifier_id"] url = f"{url}/{verifierId}" # delete verifier response = requests.delete(url, headers=headers) print(response.status_code)
{- "error_code": 12012,
- "desc": "Bad/incomplete input data",
- "detail": "Bad query parameters 'account_id'",
}
Позволяет получить параметры для ресурса.
verifier_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор верификатора. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
sources | string Example: sources=cam1,cam2 Список источников, разделенных запятыми. Каждое событие в результатах запроса будет содержать один из указанных источников. | ||||||||||||||||
stream_ids | string <list of uuid.> Example: stream_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список идентификаторов "stream_id", разделенных запятыми. | ||||||||||||||||
matching_candidates_labels | string Example: matching_candidates_labels=matching_label_1,matching_label_2 Список меток группы результатов сравнения кандидатов, разделенных запятыми. Каждое событие в результатах запроса будет содержать одну или несколько указанных меток. | ||||||||||||||||
object_similarity__gte | number Example: object_similarity__gte=0.5 Нижнее включенное пороговое значение подобия объекта (пороговое значение для лучшего кандидата сравнения). | ||||||||||||||||
object_similarity__lt | number Example: object_similarity__lt=0.5 Верхнее исключенное пороговое значение подобия объекта (пороговое значение для лучшего кандидата сравнения). | ||||||||||||||||
age__lt | integer Example: age__lt=50 Верхнее исключенное пороговое значение для параметра | ||||||||||||||||
age__gte | integer Example: age__gte=50 Нижнее включенное пороговое значение для параметра | ||||||||||||||||
integer or null_filter (string) Example: gender=1 Пол. "1" - мужской, "0" - женский, "null" - нулевое значение. | |||||||||||||||||
ethnic_groups | string <list of integer and null (1, 2, 3, 4, null)> Example: ethnic_groups=1,2,null Список преобладающих этнических групп, разделенных запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать одну из перечисленных этнических групп.
| ||||||||||||||||
liveness | string <list of integer and null (0, 1 ,2, null)> Example: liveness=1,2,null Список преобладающих состояний Liveness, разделенный запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать одно из перечисленных значений Liveness.
| ||||||||||||||||
tags | Array of strings (tag) >= 0 items [ items <= 36 characters ] Example: tags=tag_1,tag_2 Список тегов, разделенных запятыми. Каждое событие в результатах запроса будет содержать все указанные теги. Каждый тег может содержать не более 36 символов. | ||||||||||||||||
user_data | string Example: user_data=user_data_text Найти все объекты с параметром | ||||||||||||||||
object Example: geo_position=origin_longitude,36.616,origin_latitude,55.752 Geo position filter, i.e. geo bounding box specified by coordinates of its center (origin) and some delta. Each event from result will be covered by bbox specified. | |||||||||||||||||
cities | string Example: cities=Moscow,New York Список названий городов, разделенных запятыми. Каждое событие в результатах запроса будет содержать в параметре "location" одно из указанных названий городов. | ||||||||||||||||
areas | string Example: areas=CAD,Manhattan Список областей, разделенных запятыми. Каждое событие в результатах запроса будет содержать в параметре "location" одну из указанных областей. | ||||||||||||||||
districts | string Example: districts=Mitino,Midtown Список районов, разделенных запятыми. Каждое событие в результатах запроса будет содержать в параметре "location" один из указанных районов. | ||||||||||||||||
streets | string Example: streets=Arbat,West 48th street Список улиц, разделенных запятыми. Каждое событие в результатах запроса будет содержать в параметре "location" одну из указанных улиц. | ||||||||||||||||
house_numbers | string Example: house_numbers=1,220 Список номеров домов, разделенных запятыми. Каждое событие в результатах запроса будет содержать в параметре "location" один из указанных номеров домов в параметре "location". | ||||||||||||||||
handler_ids | string <list of uuid.> Example: handler_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc381 Список handler_id, разделенных запятыми. | ||||||||||||||||
masks | string <list of integer and null (1, 2, 3, null)> Example: masks=1,2,3,null Список преобладающих статусов маски, разделенных запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать один из перечисленных статусов маски.
| ||||||||||||||||
emotions | string <list of integer and null (1, 2, 3, 4, 5, 6, 7, null)> Example: emotions=1,2,3,null Список преобладающих эмоций, разделенных запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать одну из заданных эмоций.
| ||||||||||||||||
Array of integers or null_filter (string) Example: apparent_gender=1 Список предполагаемых состояний пола, разделенных запятыми: 0 - женский, 1 - мужской, 2 - неизвестно, "null" - нулевое значение. Каждое событие в результатах запроса будет содержать одно из указанных состояний. | |||||||||||||||||
apparent_age__gte | integer [ 0 .. 100 ] Example: apparent_age__gte=50 Нижнее включенное пороговое значение преполагаемого возраста. | ||||||||||||||||
apparent_age__lt | integer [ 0 .. 100 ] Example: apparent_age__lt=50 Верхнее исключенное пороговое значение преполагаемого возраста. | ||||||||||||||||
Array of integers or null_filter (string) Example: headwear_states=1 Список состояний головного убора, разделенный запятыми: 0 - отсутствует, 1 - присутствует, 2 - неизвестно, "null" - нулевое значение. | |||||||||||||||||
Array of headwear_color (string) or null_filter (string) Example: headwear_apparent_colors=white,undefined,null Список предполагаемых цветов верхней одежды, разделенный запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать один из указанных цветов. | |||||||||||||||||
sleeve_lengths | Array of strings Items Enum: "short" "long" "undefined" null Example: sleeve_lengths=short,null Список состояний длины рукавов, разделенный запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать одно из указанных состояний. | ||||||||||||||||
Array of clothing_color (strings) or null_filter (string) Example: upper_clothing_colors=black,white Список цветов верхней одежды, разделенный запятыми, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать как минимум одно из указанных цветов. | |||||||||||||||||
Array of clothing_color (strings) or null_filter (string) Example: lower_garment_colors=black,white Список цветов нижней одежды. Каждое событие в результатах запроса будет содержать один из указанных цветов. | |||||||||||||||||
lower_garment_types | Array of strings Items Enum: "undefined" "trousers" "shorts" "skirt" null Example: lower_garment_types=trousers,undefined,null Список типов нижней одежды, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать один из указанных типов. | ||||||||||||||||
Array of shoes_color (string) or null_filter (string) Example: shoes_apparent_colors=white,undefined,null Список предполагаемых цветов обуви, или нулевое значение ("null"). Каждое событие в результатах запроса будет содержать один из указанных цветов. | |||||||||||||||||
Array of integers or null_filter (string) |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
from luna3.lunavl.httpclient import LunaHttpClient EXPECTED_EVENT_COUNT = 1 client = LunaHttpClient(origin='http://127.0.0.1:5000', api=6, login="luna@visionlabs.ru", password="luna") with client.wsConnect() as ws: for _ in range(EXPECTED_EVENT_COUNT): WS_RESP = ws.recv() print(WS_RESP)
{- "event": {
- "face_attributes": {
- "attribute_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
- "basic_attributes": {
- "age": 31,
- "gender": 1,
- "ethnicities": {
- "estimations": {
- "asian": 3.581344942826803e-10,
- "indian": 9.219499295942679e-12,
- "caucasian": 8.45913916691643e-9,
- "african_american": 1
}, - "predominant_ethnicity": "african_american"
}
}, - "score": 0.9883918166160583,
- "url": "/6/attributes/24d405ce-bc56-4bf7-98e1-bdc962b4cf34",
- "samples": [
- "33bc3d2c-3c07-40af-8ee8-9c03e036b0ae"
]
}, - "body_attributes": {
- "score": 1,
- "samples": [
- "4d5766a3-2e39-4909-88c0-ac9f07c426eb"
]
}, - "source": "3rd Avenue",
- "stream_id": "a778c4a5-2191-476e-a261-3b4f9ce2e25e",
- "tags": [
- "tag1",
- "tag2"
], - "event_id": "527fca61-d452-4dd2-ad97-63c5f95c02b1",
- "url": "/6/events/527fca61-d452-4dd2-ad97-63c5f95c02b1",
- "matches": [
- {
- "label": "good guys",
- "candidates": [
- {
- "face": {
- "face_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c6",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "account_id": "904e635f-3a47-4832-b4d6-d2d72ba78451",
- "user_data": "fox1991",
- "create_time": "2021-08-18T02:43:37.196724+03:00",
- "lists": [
- "429b0e78-4616-426a-b57f-02baa72d638d",
- "6d037c33-31ec-4d73-b3b3-ec80b09446c2"
], - "event_id": "f9687459-986b-406d-9c1f-0d6289be5256"
}, - "similarity": 0.5
}
]
}, - {
- "label": "bad guys",
- "candidates": [
- {
- "event": {
- "event_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
- "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
- "user_data": "fox1991",
- "create_time": "2018-08-11T09:11:41.674Z",
- "handler_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
- "source": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7"
}, - "similarity": 0.3
}
]
}
], - "external_id": "external id",
- "user_data": "some event",
- "location": {
- "city": "Moscow",
- "area": "CAO",
- "district": "Mitino",
- "street": "Schepkina",
- "house_number": "1/2str3",
- "geo_position": {
- "longitude": 36.616,
- "latitude": 55.752
}
}, - "detections": [
- {
- "filename": "penelope.jpeg",
- "samples": {
- "face": {
- "sample_id": "33bc3d2c-3c07-40af-8ee8-9c03e036b0ae",
- "detection": {
- "attributes": {
- "liveness": {
- "prediction": "spoof",
- "estimations": {
- "quality": 0.7361597418785095,
- "score": 0.600364089012146
}
}, - "mouth_attributes": {
- "score": 0.3884400725,
- "occluded": 1.4e-8,
- "smile": 0.6115599275,
- "opened": 0.121500025
}, - "eyes_attributes": {
- "left_eye": {
- "iris_landmarks": [
- [
- 92,
- 92
], - [
- 92,
- 92
], - [
- 93,
- 93
], - [
- 93,
- 93
], - [
- 94,
- 94
], - [
- 95,
- 95
], - [
- 96,
- 96
], - [
- 98,
- 98
], - [
- 99,
- 99
], - [
- 100,
- 100
], - [
- 101,
- 101
], - [
- 102,
- 102
], - [
- 103,
- 103
], - [
- 104,
- 104
], - [
- 105,
- 105
], - [
- 105,
- 105
], - [
- 105,
- 105
], - [
- 105,
- 105
], - [
- 105,
- 105
], - [
- 104,
- 104
], - [
- 103,
- 103
], - [
- 102,
- 102
], - [
- 101,
- 101
], - [
- 100,
- 100
], - [
- 99,
- 99
], - [
- 98,
- 98
], - [
- 97,
- 97
], - [
- 96,
- 96
], - [
- 95,
- 95
], - [
- 94,
- 94
], - [
- 93,
- 93
], - [
- 93,
- 93
]
], - "state": "open"
}, - "right_eye": {
- "iris_landmarks": [
- [
- 152,
- 152
], - [
- 153,
- 153
], - [
- 153,
- 153
], - [
- 154,
- 154
], - [
- 154,
- 154
], - [
- 155,
- 155
], - [
- 157,
- 157
], - [
- 158,
- 158
], - [
- 159,
- 159
], - [
- 161,
- 161
], - [
- 162,
- 162
], - [
- 163,
- 163
], - [
- 164,
- 164
], - [
- 165,
- 165
], - [
- 166,
- 166
], - [
- 166,
- 166
], - [
- 166,
- 166
], - [
- 166,
- 166
], - [
- 166,
- 166
], - [
- 165,
- 165
], - [
- 164,
- 164
], - [
- 163,
- 163
], - [
- 162,
- 162
], - [
- 161,
- 161
], - [
- 159,
- 159
], - [
- 158,
- 158
], - [
- 158,
- 158
], - [
- 157,
- 157
], - [
- 156,
- 156
], - [
- 154,
- 154
], - [
- 154,
- 154
], - [
- 153,
- 153
]
], - "state": "open"
}
}, - "emotions": {
- "predominant_emotion": "neutral",
- "estimations": {
- "anger": 0.00894705578684807,
- "disgust": 0.00000965219624049496,
- "fear": 0.00121302821207792,
- "happiness": 0.00129503419157118,
- "neutral": 0.986027479171753,
- "sadness": 0.00187553185969591,
- "surprise": 0.000632198702078313
}
}, - "mask": {
- "predominant_mask": "occluded",
- "estimations": {
- "medical_mask": 0.020060448,
- "missing": 0.3235525191,
- "occluded": 0.6563870311
}, - "face_occlusion": {
- "predominant_occlusion": "correct",
- "estimations": {
- "full": 0.019,
- "clear": 0.02,
- "correct": 0.6108324766,
- "partially": 0.31,
- "mouth": 0.0209,
- "chin": 0.019097
}
}
}, - "head_pose": {
- "pitch": 12.7464532852,
- "roll": -2.9892115593,
- "yaw": 17.7173442841
}, - "gaze": {
- "yaw": -5.9912848473,
- "pitch": -10.2646684647
}
}, - "quality": {
- "blurriness": 0.9769582748000001,
- "dark": 0.9542820454000001,
- "illumination": 0.8248310089,
- "specularity": 0.8472354412,
- "light": 0.8179533482
}, - "rect": {
- "x": 255,
- "y": 101,
- "width": 137,
- "height": 183
}, - "landmarks5": [
- [
- 43,
- 66
], - [
- 106,
- 63
], - [
- 89,
- 105
], - [
- 54,
- 133
], - [
- 116,
- 128
]
], - "landmarks68": [
- [
- 8,
- 8
], - [
- 14,
- 14
], - [
- 28,
- 28
], - [
- 48,
- 48
], - [
- 72,
- 72
], - [
- 102,
- 102
], - [
- 134,
- 134
], - [
- 168,
- 168
], - [
- 213,
- 213
], - [
- 262,
- 262
], - [
- 306,
- 306
], - [
- 345,
- 345
], - [
- 376,
- 376
], - [
- 392,
- 392
], - [
- 397,
- 397
], - [
- 399,
- 399
], - [
- 394,
- 394
], - [
- 2,
- 2
], - [
- 22,
- 22
], - [
- 50,
- 50
], - [
- 79,
- 79
], - [
- 106,
- 106
], - [
- 165,
- 165
], - [
- 199,
- 199
], - [
- 236,
- 236
], - [
- 278,
- 278
], - [
- 317,
- 317
], - [
- 137,
- 137
], - [
- 136,
- 136
], - [
- 136,
- 136
], - [
- 136,
- 136
], - [
- 119,
- 119
], - [
- 135,
- 135
], - [
- 154,
- 154
], - [
- 174,
- 174
], - [
- 193,
- 193
], - [
- 40,
- 40
], - [
- 57,
- 57
], - [
- 83,
- 83
], - [
- 108,
- 108
], - [
- 84,
- 84
], - [
- 58,
- 58
], - [
- 203,
- 203
], - [
- 222,
- 222
], - [
- 249,
- 249
], - [
- 277,
- 277
], - [
- 258,
- 258
], - [
- 229,
- 229
], - [
- 119,
- 119
], - [
- 130,
- 130
], - [
- 149,
- 149
], - [
- 167,
- 167
], - [
- 185,
- 185
], - [
- 222,
- 222
], - [
- 259,
- 259
], - [
- 232,
- 232
], - [
- 200,
- 200
], - [
- 177,
- 177
], - [
- 155,
- 155
], - [
- 134,
- 134
], - [
- 127,
- 127
], - [
- 152,
- 152
], - [
- 170,
- 170
], - [
- 190,
- 190
], - [
- 250,
- 250
], - [
- 193,
- 193
], - [
- 172,
- 172
], - [
- 152,
- 152
]
], - "face_quality": {
- "status": 1,
- "checks": [
- {
- "name": "image_format",
- "object_value": "JPEG",
- "threshold_value": [
- "JPEG",
- "JPEG2000",
- "PNG"
], - "result": 1
}, - {
- "name": "illumination_quality",
- "object_value": 0.6005162000656128,
- "threshold_value": {
- "min": 0.3,
- "max": 1
}, - "result": 1
}, - {
- "name": "specularity_quality",
- "object_value": 0.7662366628646851,
- "threshold_value": {
- "min": 0.3,
- "max": 1
}, - "result": 1
}, - {
- "name": "blurriness_quality",
- "object_value": 0.9429352283477783,
- "threshold_value": {
- "min": 0.61,
- "max": 1
}, - "result": 1
}, - {
- "name": "dark_quality",
- "object_value": 0.9020983576774597,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "light_quality",
- "object_value": 0.7881984114646912,
- "threshold_value": {
- "min": 0.57,
- "max": 1
}, - "result": 1
}, - {
- "name": "head_yaw",
- "object_value": 2.818983316421509,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "head_pitch",
- "object_value": 3.816443920135498,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "head_roll",
- "object_value": 5.434040069580078,
- "threshold_value": {
- "min": -8,
- "max": 8
}, - "result": 1
}, - {
- "name": "gaze_yaw",
- "object_value": -3.773012399673462,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "gaze_pitch",
- "object_value": 0.7140519022941589,
- "threshold_value": {
- "min": -5,
- "max": 5
}, - "result": 1
}, - {
- "name": "mouth_smiling",
- "object_value": 0.000290759839117527,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "mouth_occluded",
- "object_value": 0.00009619363845558837,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "mouth_open",
- "object_value": 0.6226108074188232,
- "threshold_value": {
- "min": 0,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "glasses",
- "object_value": "no_glasses",
- "threshold_value": [
- "no_glasses",
- "eyeglasses"
], - "result": 1
}, - {
- "name": "left_eye",
- "object_value": "open",
- "threshold_value": [
- "open"
], - "result": 1
}, - {
- "name": "right_eye",
- "object_value": "open",
- "threshold_value": [
- "open"
], - "result": 1
}, - {
- "name": "head_horizontal_center",
- "object_value": 0.51,
- "threshold_value": {
- "min": 0.45,
- "max": 0.55
}, - "result": 1
}, - {
- "name": "head_vertical_center",
- "object_value": 0.51,
- "threshold_value": {
- "min": 0.3,
- "max": 0.5
}, - "result": 1
}, - {
- "name": "head_width",
- "object_value": 0.61,
- "threshold_value": {
- "min": 0.5,
- "max": 0.75
}, - "result": 1
}, - {
- "name": "head_height",
- "object_value": 0.71,
- "threshold_value": {
- "min": 0.6,
- "max": 0.9
}, - "result": 1
}, - {
- "name": "eye_distance",
- "object_value": 110,
- "threshold_value": {
- "min": 90,
- "max": null
}, - "result": 1
}, - {
- "name": "image_width",
- "object_value": 1000,
- "threshold_value": {
- "min": 200,
- "max": 1100
}, - "result": 1
}, - {
- "name": "image_height",
- "object_value": 2000,
- "threshold_value": {
- "min": 200,
- "max": 1100
}, - "result": 1
}, - {
- "name": "aspect_ratio",
- "object_value": 0.5,
- "threshold_value": {
- "min": 0.1,
- "max": 1
}, - "result": 1
}, - {
- "name": "face_width",
- "object_value": 500,
- "threshold_value": {
- "min": 400,
- "max": 600
}, - "result": 1
}, - {
- "name": "face_height",
- "object_value": 500,
- "threshold_value": {
- "min": 400,
- "max": 600
}, - "result": 1
}, - {
- "name": "indent_left",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_right",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_upper",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "indent_lower",
- "object_value": 100,
- "threshold_value": {
- "min": 10,
- "max": 500
}, - "result": 1
}, - {
- "name": "image_size",
- "object_value": 100500,
- "threshold_value": {
- "min": 10,
- "max": 100600
}, - "result": 1
}, - {
- "name": "eyebrows_state",
- "object_value": "neutral",
- "threshold_value": [
- "neutral"
], - "result": 1
}, - {
- "name": "smile_properties",
- "object_value": "smile_lips",
- "threshold_value": [
- "none"
], - "result": 0
}, - {
- "name": "headwear_type",
- "object_value": "hat",
- "threshold_value": [
- "none"
], - "result": 0
}, - {
- "name": "natural_light",
- "object_value": 1,
- "threshold_value": 1,
- "result": 1
}, - {
- "name": "radial_distortion",
- "object_value": 0,
- "threshold_value": 0,
- "result": 1
}, - {
- "name": "red_eyes",
- "object_value": 0,
- "threshold_value": 0,
- "result": 1
}, - {
- "name": "face_color_type",
- "object_value": "color",
- "threshold_value": [
- "color"
], - "result": 1
}, - {
- "name": "illumination_uniformity",
- "object_value": 0.7305162000656128,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "dynamic_range",
- "object_value": 0.6605162000656128,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "background_uniformity",
- "object_value": 0.8874394297599792,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}, - {
- "name": "background_lightness",
- "object_value": 0.5780888795852661,
- "threshold_value": {
- "min": 0.5,
- "max": 1
}, - "result": 1
}
]
}
}, - "url": "/6/samples/faces/33bc3d2c-3c07-40af-8ee8-9c03e036b0ae"
}, - "body": {
- "sample_id": "4d5766a3-2e39-4909-88c0-ac9f07c426eb",
- "detection": {
- "rect": {
- "x": 52,
- "y": 65,
- "width": 748,
- "height": 895
}, - "attributes": {
- "basic_attributes": {
- "apparent_age": 25,
- "apparent_gender": 0
}, - "upper_body": {
- "headwear": {
- "state": 0,
- "apparent_color": "undefined"
}, - "sleeve": {
- "length": "short"
}, - "upper_clothing": {
- "colors": [
- "white",
- "black"
]
}
}, - "lower_body": {
- "lower_garment": {
- "type": "trousers",
- "colors": [
- "white",
- "black"
]
}, - "shoes": {
- "apparent_color": "black"
}
}, - "accessories": {
- "backpack": {
- "state": 0
}
}
}
}, - "url": "/6/samples/bodies/4d5766a3-2e39-4909-88c0-ac9f07c426eb"
}
}, - "detect_time": "2021-06-18T02:44:58.653485+03:00",
- "detect_ts": 123.456,
- "image_origin": "/6/images/b668c4a5-2191-476e-a261-3b4f9ce2e25e"
}
], - "meta": {
- "foo": "bar"
}, - "aggregate_estimations": {
- "face": {
- "attributes": {
- "liveness": {
- "prediction": "spoof",
- "estimations": {
- "quality": 0.7361597418785095,
- "score": 0.600364089012146
}
}, - "mask": {
- "estimations": {
- "medical_mask": 0.020060448,
- "missing": 0.3235525191,
- "occluded": 0.6563870311
}, - "predominant_mask": "occluded",
- "face_occlusion": {
- "predominant_occlusion": "correct",
- "estimations": {
- "full": 0.019,
- "clear": 0.02,
- "correct": 0.6108324766,
- "partially": 0.31,
- "mouth": 0.0209,
- "chin": 0.019097
}
}
}, - "emotions": {
- "estimations": {
- "anger": 0.00894705578684807,
- "disgust": 0.00000965219624049496,
- "fear": 0.00121302821207792,
- "happiness": 0.00129503419157118,
- "neutral": 0.986027479171753,
- "sadness": 0.00187553185969591,
- "surprise": 0.000632198702078313
}, - "predominant_emotion": "neutral"
}
}
}, - "body": {
- "attributes": {
- "basic_attributes": {
- "apparent_age": 25,
- "apparent_gender": 0
}, - "upper_body": {
- "headwear": {
- "state": 0,
- "apparent_color": "undefined"
}, - "sleeve": {
- "length": "short"
}, - "upper_clothing": {
- "colors": [
- "white",
- "black"
]
}
}, - "lower_body": {
- "lower_garment": {
- "type": "trousers",
- "colors": [
- "white",
- "black"
]
}, - "shoes": {
- "apparent_color": "black"
}
}, - "accessories": {
- "backpack": {
- "state": 0
}
}
}
}
}, - "track_id": "useful_track_id_number_1",
- "face": {
- "external_id": "external id",
- "face_id": "a9629ef8-148f-4630-8584-dcf52caf8374",
- "url": "/6/faces/a9629ef8-148f-4630-8584-dcf52caf8374",
- "lists": [
- "429b0e78-4616-426a-b57f-02baa72d638d",
- "6d037c33-31ec-4d73-b3b3-ec80b09446c2"
], - "user_data": "top face",
- "avatar": "/6/samples/33bc3d2c-3c07-40af-8ee8-9c03e036b0ae",
- "event_id": "527fca61-d452-4dd2-ad97-63c5f95c02b1"
}
}, - "handler_id": "88c5dd7e-693b-4386-92bc-0c31a150a7d0",
- "event-create-time": "2021-06-18T02:44:58.653485+03:00",
- "event-end-time": "2021-06-18T02:44:58.653485+03:00",
- "Luna-Request-id": "1623984298,375c6d96-09c7-4db3-91cc-f13e66288aa9"
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет прогнозировать вероятностную оценку Liveness во входящих изображениях.
Ответ содержит вероятностную оценку того, что на изображении присутствует реальный человек и это не атака на биометрическое предъявление.
Разделы «meta» и «x_meta» запроса используются для обратной совместимости и в настоящее время устарели.
Поступающие изображения должны соответствовать требованиям используемой версии Liveness. Подробности см. в "Руководстве администратора".
Оценка Liveness не поддерживается для биометрических образцов.
aggregate | integer Default: 0 Enum: 1 0 Example: aggregate=1 Следует ли агрегировать оценки Liveness. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
Content-Type | string Enum: "image/jpeg" "image/png" "image/bmp" "image/x-portable-pixmap" "image/tiff" "multipart/form-data" "application/json" "image/x-jpeg-base64" "image/x-png-base64" "image/x-bmp-base64" "image/x-tiff-base64" "image/x-portable-pixmap-base64" |
object (LivenessMeta) Deprecated Информация об устройстве. Эта информация может значительно снизить общую частоту ошибок. "meta" объект не является обязательным. Если нет уверенности в каком-либо из параметров, нужно установить значение "UNKNOWN" или не передавать метаданные.
| |
x_meta | object Deprecated Строка JSON с любой дополнительной информацией. |
required | Array of image_binary_for_multipart (string) or image_base64_for_multipart (string) (image_list_for_multipart) non-empty |
{- "images": [
- {
- "filename": "succeeded_image.jpg",
- "status": 1,
- "liveness": {
- "prediction": 1,
- "estimations": {
- "probability": 0.93,
- "quality": 0.95
}
}, - "error": {
- "desc": "Success",
- "detail": "Success",
- "error_code": 0,
}
}, - {
- "filename": "succeeded_image_2.jpg",
- "status": 1,
- "liveness": {
- "prediction": 1,
- "estimations": {
- "probability": 0.85,
- "quality": 0.88
}
}, - "error": {
- "desc": "Success",
- "detail": "Success",
- "error_code": 0,
}
}, - {
- "filename": "failed_image.jpg",
- "status": 0,
- "liveness": null,
- "error": {
- "desc": "Failed to decode image data",
- "detail": "File decoding error",
- "error_code": 32010,
}
}
], - "aggregate_estimations": {
- "liveness": {
- "prediction": 1,
- "estimations": {
- "probability": 0.89,
- "quality": 0.915
}
}
}
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить документацию OpenAPI. Если заголовок Accept имеет тип application/x-yaml
,
возвращается документация в формате yaml. Если заголовок Accept имеет значение text/html
, возвращается документация в формате html.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Accept required | string (accept_docs_handler) Enum: "application/x-yaml" "text/html" Приемлемый тип получения данных. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить sphinx документацию – Руководство разработчика. После запроса пользователь будет перенаправлен на страницу /docs/dev/index.html
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить настройки сервиса. Пароли и токены будут скрыты в теле ответа.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Accept | string Enum: "application/json" "text/plain" Приемлемый тип получения данных. |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", "Authorization": "Basic bHVuYUB2aXNpb25sYWJzLnJ1Omx1bmE=", } url = f"{baseUri}/config" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "INFLUX_MONITORING": {
- "SEND_DATA_FOR_MONITORING": 0,
- "VERSION": 2,
- "ORGANIZATION": "ORGANIZATION_NAME",
- "TOKEN": "********",
- "BUCKET": "luna_monitoring",
- "HOST": "127.0.0.1",
- "PORT": 8086,
- "USE_SSL": 0,
- "FLUSHING_PERIOD": 1
}
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить информацию о лицензируемых функциях:
license
)estimations
)components
)Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Luna-Request-Id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a", } url = f"{baseUri}/features" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "license": true,
- "estimations": {
- "people_counter": true,
- "face_quality": true,
- "body_attributes": true,
- "liveness": true,
- "deepfake": true
}, - "components": {
- "events": true,
- "tasks": true,
- "sender": true,
- "image_store": true,
- "handlers": true,
- "lambdas": true
}
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет создать новую lambda.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type required | string Value: "multipart/form-data" Заголовок типа содержимого запроса. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
archive required | string <binary> Архив с расширением ZIP. Тип содержимого должен быть "application/zip". |
required | object Учетные данные lambda. Тип содержимого должен быть "application/json". |
object Параметры lambda. Тип содержимого должен быть "application/json". |
# This example is written using requests library from time import sleep import json from uuid import uuid4 import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } lambdaName = str(uuid4()) url = f"{baseUri}/lambdas/" with open("lambda.zip", "rb") as archive: files = { "archive": ("lambda.zip", archive.read(), "application/zip"), "credentials": ( "credentials", json.dumps( {"lambda_name": lambdaName, "description": "test description"} ), "application/json"), "parameters": ( "parameters", json.dumps( {"lambda_type": "standalone"} ), "application/json"), } response = requests.post(url, headers=headers, files=files) print(response.status_code) print(response.json())
{- "lambda_id": "string"
}
Позволяет получить lambda в соответствии с фильтрами.
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
create_time__lt | string <date-time> (time) Example: create_time__lt=2018-08-11T09:11:41.674Z Верхнее пороговое значение для параметра |
create_time__gte | string <date-time> (time) Example: create_time__gte=2018-08-11T09:11:41.674Z Нижнее включенное пороговое значение для параметра |
page | integer >= 1 Default: 1 Номер страницы. |
page_size | integer [ 1 .. 1000 ] Default: 10 Количество элементов на странице. |
lambda_type | string Enum: "standalone" "handlers" Тип lambda. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library from time import sleep from datetime import datetime, timedelta from uuid import uuid4 import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } accountId = "00000000-0000-4000-a000-000000000156" lambdaId = str(uuid4()) lambdaName = str(uuid4()) timeDelta = timedelta(days=1) params = { "account_id": accountId, "create_time__lt": datetime.utcnow().isoformat("T") + "Z", "create_time__gte": (datetime.utcnow() - timeDelta).isoformat("T") + "Z", "page": 1, "page_size": 100, "lambda_type": "standalone" } url = f"{baseUri}/lambdas/" response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json())
{- "lambdas": [
- {
- "account_id": "string",
- "lambda_id": "string",
- "lambda_name": "first-lambda",
- "description": "very useful lambda",
- "version": 1,
- "info": {
- "status": "running"
}, - "lambda_type": "standalone",
- "create_time": "2019-08-24T14:15:22Z",
- "last_update_time": "2018-08-11T09:11:41.674Z",
- "additional_user_docker_commands": [ ],
- "base_image": {
- "name": "string",
- "tag": "string"
}
}
]
}
Позволяет выполнить валидацию lambda.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type required | string Value: "multipart/form-data" Заголовок типа содержимого запроса. |
archive required | string <binary> Архив с расширением ZIP. Тип содержимого должен быть "application/zip". |
required | object Параметры lambda. |
# This example is written using requests library from time import sleep import json import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } url = f"{baseUri}/lambdas/validator" with open("lambda.zip", "rb") as archive: files = { "archive": ("lambda.zip", archive.read(), "application/zip"), "parameters": ( "parameters", json.dumps({"lambda_type": "standalone"}), "application/json", ) } response = requests.post(url, headers=headers, files=files) print(response.status_code)
{- "errors": [
- "validation_error_one",
- "validation_error_two"
]
}
Позволяет заменить lambda. Нельзя заменить часть lambda, нужно задать все поля для lambda.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор lambda. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type required | string Value: "multipart/form-data" Заголовок типа содержимого запроса. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
archive required | string <binary> Архив с расширением ZIP. Тип содержимого должен быть "application/zip". |
required | object Учетные данные lambda. Тип содержимого должен быть "application/json". |
object Параметры lambda. Тип содержимого должен быть "application/json". |
# This example is written using requests library from time import sleep import json from uuid import uuid4 import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } # Create lambda def wait4start(lambdaId: str) -> None: """ Wait for lambda start Args: lambdaId: lambda id """ for _ in range(150): reply = requests.get(f"{baseUri}/lambdas/{lambdaId}/status", headers=headers).json() if reply["status"] == "running": break if reply["status"] == "terminated": raise Exception(f"Expected successfully lambda running. Lambda id: {lambdaId}") sleep(1) else: raise Exception(f"Lambda execution took more than 150 seconds. Lambda id: {lambdaId}") url = f"{baseUri}/lambdas/" with open("lambda.zip", "rb") as archive: files = { "archive": ("lambda.zip", archive.read(), "application/zip"), "credentials": ( "credentials", json.dumps( {"lambda_name": str(uuid4()), "description": "new lambda description"} ), "application/json"), "parameters": ( "parameters", json.dumps( {"lambda_type": "standalone"} ), "application/json"), } response = requests.post(url, headers=headers, files=files) lambdaId = response.json()["lambda_id"] wait4start(lambdaId) # Put lambda files.update( { "credentials": ( "credentials", json.dumps( {"lambda_name": str(uuid4()), "description": "new lambda description"} ), "application/json") } ) response = requests.put(url + lambdaId, headers=headers, files=files) print(response.status_code) print(response.json())
{- "version": 0
}
Позволяет обновить lambda.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор lambda. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Content-Type | string Value: "application/json" Заголовок типа содержимого запроса. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
lambda_name | string (lambda_name) Имя lambda. Можно создавать lambda только с уникальными именами. |
description | string <= 256 characters Описание Lambda. |
{- "lambda_name": "first-lambda",
- "description": "very useful lambda"
}
{- "error_code": 11066,
- "desc": "Bad/incomplete input data",
- "detail": "Luna-Account-Id header not found",
}
Получить lambda по идентификатору.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор lambda. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library from time import sleep import json import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } lambdaId = "64e61920-f5ca-4caf-8f2e-d0217e2e6c0f" url = f"{baseUri}/lambdas/{lambdaId}" params = { "account_id": "00000000-0000-4000-a000-000000000156", } response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json())
{- "account_id": "string",
- "lambda_id": "string",
- "lambda_name": "first-lambda",
- "description": "very useful lambda",
- "version": 1,
- "info": {
- "status": "running"
}, - "lambda_type": "standalone",
- "create_time": "2019-08-24T14:15:22Z",
- "last_update_time": "2018-08-11T09:11:41.674Z",
- "additional_user_docker_commands": [ ],
- "base_image": {
- "name": "string",
- "tag": "string"
}
}
Позволяет проверить существование lambda по идентификатору.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор lambda. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library from time import sleep import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } lambdaId = "64e61920-f5ca-4caf-8f2e-d0217e2e6c0f" url = f"{baseUri}/lambdas/{lambdaId}" response = requests.head(url, headers=headers) print(response.status_code)
{- "error_code": 12012,
- "desc": "Bad/incomplete input data",
- "detail": "Bad query parameters 'account_id'",
}
Позволяет далить lambda по идентификатору.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор lambda. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library from time import sleep import requests import json from uuid import uuid4 baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } # Create lambda def wait4start(lambdaId: str) -> None: """ Wait for lambda start Args: lambdaId: lambda id """ for _ in range(150): reply = requests.get(f"{baseUri}/lambdas/{lambdaId}/status", headers=headers).json() if reply["status"] == "running": break if reply["status"] == "terminated": raise Exception(f"Expected successfully lambda running. Lambda id: {lambdaId}") sleep(1) else: raise Exception(f"Lambda execution took more than 150 seconds. Lambda id: {lambdaId}") lambdaName = str(uuid4()) url = f"{baseUri}/lambdas/" with open("lambda.zip", "rb") as archive: files = { "archive": ("lambda.zip", archive.read(), "application/zip"), "credentials": ( "credentials", json.dumps( {"lambda_name": lambdaName, "description": "lambda description"} ), "application/json"), "parameters": ( "parameters", json.dumps( {"lambda_type": "standalone"} ), "application/json"), } response = requests.post(url, headers=headers, files=files) lambdaId = response.json()["lambda_id"] wait4start(lambdaId) # Delete lambda url = f"{baseUri}/lambdas/{lambdaId}" response = requests.delete(url, headers=headers) print(response.status_code)
{- "error_code": 12012,
- "desc": "Bad/incomplete input data",
- "detail": "Bad query parameters 'account_id'",
}
Позволяет обновить lambda в соответствии с последним базовым образом.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор плагина. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library from time import sleep import json from uuid import uuid4 import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } # Create lambda def wait4start(lambdaId: str) -> None: """ Wait for lambda start Args: lambdaId: lambda id """ for _ in range(150): reply = requests.get(f"{baseUri}/lambdas/{lambdaId}/status", headers=headers).json() if reply["status"] == "running": break if reply["status"] == "terminated": raise Exception(f"Expected successfully lambda running. Lambda id: {lambdaId}") sleep(1) else: raise Exception(f"Lambda execution took more than 150 seconds. Lambda id: {lambdaId}") lambdaName = str(uuid4()) url = f"{baseUri}/lambdas/" with open("lambda.zip", "rb") as archive: files = { "archive": ("lambda.zip", archive.read(), "application/zip"), "credentials": ( "credentials", json.dumps( {"lambda_name": lambdaName, "description": "lambda description"} ), "application/json"), "parameters": ( "parameters", json.dumps( {"lambda_type": "standalone"} ), "application/json"), } response = requests.post(url, headers=headers, files=files) lambdaId = response.json()["lambda_id"] wait4start(lambdaId) # Update lambda url = f"{baseUri}/lambdas/{lambdaId}/update" response = requests.post(url, headers=headers) print(response.status_code) print(response.json())
{- "version": 0
}
Позволяет получить статус создания образа lambda по идентификатору.
Если статус создания образа в процессе, то статус lambda будет waiting
.
После завершения создания образа lambda задание на создание образа будет удалено, а статус будет not_found
.
См. дополнительную информацию о lambda и статусах образов в руководстве разработчика.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор lambda. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library from time import sleep import json from uuid import uuid4 import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } # Create lambda def wait4start(lambdaId: str) -> None: """ Wait for lambda start Args: lambdaId: lambda id """ for _ in range(150): reply = requests.get(f"{baseUri}/lambdas/{lambdaId}/status", headers=headers).json() if reply["status"] == "running": break if reply["status"] == "terminated": raise Exception(f"Expected successfully lambda running. Lambda id: {lambdaId}") sleep(1) else: raise Exception(f"Lambda execution took more than 150 seconds. Lambda id: {lambdaId}") lambdaName = str(uuid4()) url = f"{baseUri}/lambdas/" with open("lambda.zip", "rb") as archive: files = { "archive": ("lambda.zip", archive.read(), "application/zip"), "credentials": ( "credentials", json.dumps({"lambda_name": lambdaName, "description": "lambda description"}), "application/json", ), "parameters": ("parameters", json.dumps({"lambda_type": "standalone"}), "application/json"), } response = requests.post(url, headers=headers, files=files) lambdaId = response.json()["lambda_id"] wait4start(lambdaId) # Get lambda image creation status url = f"{baseUri}/lambdas/{lambdaId}/image/status" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "status": "not_found"
}
Позволяет получить логи создания образов lambda по идентификатору.
Во время создания образа lambda можно получать логи для отслеживания прогресса.
См. дополнительную информацию о lambda и логах образов в руководстве разработчика.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор lambda. |
tail_lines | integer [ 0 .. 4294967296 ] Количество строк, которые будут возвращены. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library from time import sleep import json from uuid import uuid4 import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } # Create lambda def wait4start(lambdaId: str) -> None: """ Wait for lambda start Args: lambdaId: lambda id """ for _ in range(150): reply = requests.get(f"{baseUri}/lambdas/{lambdaId}/status", headers=headers).json() if reply["status"] == "running": break if reply["status"] == "terminated": raise Exception(f"Expected successfully lambda running. Lambda id: {lambdaId}") sleep(1) else: raise Exception(f"Lambda execution took more than 150 seconds. Lambda id: {lambdaId}") lambdaName = str(uuid4()) url = f"{baseUri}/lambdas/" with open("lambda.zip", "rb") as archive: files = { "archive": ("lambda.zip", archive.read(), "application/zip"), "credentials": ( "credentials", json.dumps({"lambda_name": lambdaName, "description": "lambda description"}), "application/json", ), "parameters": ("parameters", json.dumps({"lambda_type": "standalone"}), "application/json"), } response = requests.post(url, headers=headers, files=files) lambdaId = response.json()["lambda_id"] wait4start(lambdaId) # Get lambda image creation logs url = f"{baseUri}/lambdas/{lambdaId}/image/logs" params = {"tail_lines": 1} response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json())
{- "logs": [
- "string"
]
}
Позволяет получить статус lambda по идентификатору.
Если статус создания образа в процессе, то статус lambda будет waiting
.
См. дополнительную информацию о lambda и статусах образов в руководстве разработчика.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор lambda. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library from time import sleep import json from uuid import uuid4 import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } # Create lambda def wait4start(lambdaId: str) -> None: """ Wait for lambda start Args: lambdaId: lambda id """ for _ in range(150): reply = requests.get(f"{baseUri}/lambdas/{lambdaId}/status", headers=headers).json() if reply["status"] == "running": break if reply["status"] == "terminated": raise Exception(f"Expected successfully lambda running. Lambda id: {lambdaId}") sleep(1) else: raise Exception(f"Lambda execution took more than 150 seconds. Lambda id: {lambdaId}") lambdaName = str(uuid4()) url = f"{baseUri}/lambdas/" with open("lambda.zip", "rb") as archive: files = { "archive": ("lambda.zip", archive.read(), "application/zip"), "credentials": ( "credentials", json.dumps({"lambda_name": lambdaName, "description": "lambda description"}), "application/json", ), "parameters": ("parameters", json.dumps({"lambda_type": "standalone"}), "application/json"), } response = requests.post(url, headers=headers, files=files) lambdaId = response.json()["lambda_id"] wait4start(lambdaId) # Get lambda image creation status url = f"{baseUri}/lambdas/{lambdaId}/status" response = requests.get(url, headers=headers) print(response.status_code) print(response.json())
{- "status": "running"
}
Позволяет получить логи lambda по идентификатору.
После того, как создание lambda было выполнено, доступна возможность получить логи lambda.
См. дополнительную информацию о lambda и логах образов в руководстве разработчика.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор lambda. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
tail_lines | integer [ 0 .. 4294967296 ] Количество строк, которые будут возвращены. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library from time import sleep import json from uuid import uuid4 import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } # Create lambda def wait4start(lambdaId: str) -> None: """ Wait for lambda start Args: lambdaId: lambda id """ for _ in range(150): reply = requests.get(f"{baseUri}/lambdas/{lambdaId}/status", headers=headers).json() if reply["status"] == "running": break if reply["status"] == "terminated": raise Exception(f"Expected successfully lambda running. Lambda id: {lambdaId}") sleep(1) else: raise Exception(f"Lambda execution took more than 150 seconds. Lambda id: {lambdaId}") lambdaName = str(uuid4()) url = f"{baseUri}/lambdas/" with open("lambda.zip", "rb") as archive: files = { "archive": ("lambda.zip", archive.read(), "application/zip"), "credentials": ( "credentials", json.dumps({"lambda_name": lambdaName, "description": "lambda description"}), "application/json", ), "parameters": ("parameters", json.dumps({"lambda_type": "standalone"}), "application/json"), } response = requests.post(url, headers=headers, files=files) lambdaId = response.json()["lambda_id"] wait4start(lambdaId) # Get lambda image creation logs url = f"{baseUri}/lambdas/{lambdaId}/logs" params = {"tail_lines": 1} response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json())
{- "logs": [
- "string"
]
}
Позволяет получить документацию OpenAPI для lambda. Если заголовок запроса Accept имеет тип application/x-yaml
,
то будет возвращена документация в формате yaml
. Если заголовок запроса имеет тип text/html
, то будет возвращена документация в формате html
.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор lambda. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Accept required | string (accept_docs_handler) Enum: "application/x-yaml" "text/html" Приемлемый тип получения данных. |
{- "error_code": 42001,
- "desc": "Object not found",
- "detail": "Lambda with id 'e63e2a1f-f505-441c-8e11-b2dcd0385329' not found",
}
Позволяет выполнить прокси-запрос к lambda.
Заголовки запроса и ответа, параметры запроса и описание тела запроса должны быть предоставлены в документации lambda.
Описанные заголовки будут обрабатываться и приниматься независимо от поведения lambda. В случае Bearer-авторизации токен должен включать разрешения на просмотр, чтобы lambda могли обрабатывать запрос.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор lambda. |
* (any_parameter) | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Любой дополнительный параметр пути будет использоваться в качестве параметра пути к lambda. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
Luna-Account-Id | string <uuid> ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Deprecated Example: 8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Идентификатор аккаунта. Аккаунт накладывает ограничения на все действия пользователя (сравнение, удаление, обновление и другие) с данными, которым не соответствует Luna-Account-Id. Например: невозможно прикрепить лицо с одним Luna-Account-Id к списку с другим Luna-Account-Id. Пользователь может выполнять ограниченный набор запросов без этого заголовка (запросы с методами GET, HEAD, OPTIONS, запросы на сравнение и запросы на получение статистики событий). |
# This example is written using requests library from time import sleep import json from uuid import uuid4 import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } # Create lambda def wait4start(lambdaId: str) -> None: """ Wait for lambda start Args: lambdaId: lambda id """ for _ in range(150): reply = requests.get(f"{baseUri}/lambdas/{lambdaId}/status", headers=headers).json() if reply["status"] == "running": break if reply["status"] == "terminated": raise Exception(f"Expected successfully lambda running. Lambda id: {lambdaId}") sleep(1) else: raise Exception(f"Lambda execution took more than 150 seconds. Lambda id: {lambdaId}") lambdaName = str(uuid4()) url = f"{baseUri}/lambdas/" with open("lambda.zip", "rb") as archive: files = { "archive": ("lambda.zip", archive.read(), "application/zip"), "credentials": ( "credentials", json.dumps({"lambda_name": lambdaName, "description": "lambda description"}), "application/json", ), "parameters": ("parameters", json.dumps({"lambda_type": "standalone"}), "application/json"), } response = requests.post(url, headers=headers, files=files) lambdaId = response.json()["lambda_id"] wait4start(lambdaId) # Post proxy request to lambda path = "main" url = f"{baseUri}/lambdas/{lambdaId}/proxy/{path}" response = requests.post(url, headers=headers) print(response.status_code) print(response.json())
{- "error_code": 11062,
- "desc": "Forbidden",
- "detail": "Specified token corrupted",
}
Позволяет выполнить прокси-запрос OPTIONS к lambda.
Ответ содержит все возможные методы, которые можно проксировать в lambda, но не содержит информации, какие из них реализованы, а какие нет.
lambda_id required | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Идентификатор lambda. |
* (any_parameter) | string <uuid> (uuid) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: 557d54ec-29ad-4f3c-93b4-c9092ef12515 Любой дополнительный параметр пути будет использоваться в качестве параметра пути к lambda. |
account_id | string <uuid> (account_id) ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]... Example: account_id=8950722f-3fd4-4223-b48f-03f95f0e8dfb Фильтр по "account_id". Не будет иметь эффекта, если для авторизации используется заголовок "Luna-Account-Id". |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library from time import sleep import json from uuid import uuid4 import requests baseUri = "http://127.0.0.1:5000/6" headers = { "Authorization": "Basic bHVuYV9sYW1iZGFAdmlzaW9ubGFicy5ydTpsdW5h", } # Create lambda lambdaName = str(uuid4()) url = f"{baseUri}/lambdas/" with open("lambda.zip", "rb") as archive: files = { "archive": ("lambda.zip", archive.read(), "application/zip"), "credentials": ( "credentials", json.dumps({"lambda_name": lambdaName, "description": "lambda description"}), "application/json", ), "parameters": ("parameters", json.dumps({"lambda_type": "standalone"}), "application/json"), } response = requests.post(url, headers=headers, files=files) lambdaId = response.json()["lambda_id"] wait4start(lambdaId) # Put proxy request to lambda path = "main" url = f"{baseUri}/lambdas/{lambdaId}/proxy/{path}" response = requests.options(url, headers=headers) print(response.status_code) print(response.headers)
{- "error_code": 11062,
- "desc": "Forbidden",
- "detail": "Specified token corrupted",
}
Позволяет получить информацию о работоспособности сервиса.
include_luna_services | integer Default: 0 Enum: 0 1 Следует ли выполнять healthcheck для зависимых сервисов LUNA. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library import requests baseUri = "http://127.0.0.1:5000/6" # make request url = f"{baseUri}/healthcheck" response = requests.get(url, params={"include_luna_services": 1}) print(response.status_code) print(response.json())
{- "execution_time": 0.123
}
Позволяет получить параметры для ресурса.
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}
Позволяет получить информацию о работоспособности сервиса (redirect).
include_luna_services | integer Default: 0 Enum: 0 1 Следует ли выполнять healthcheck для зависимых сервисов LUNA. |
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
# This example is written using requests library import requests # make request url = f"http://127.0.0.1:5000/healthcheck" response = requests.get(url, params={"include_luna_services": 1}) print(response.status_code) print(response.json())
{- "execution_time": 0.123
}
Получить параметры ресурса (redirect).
Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4... Example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a Внешний идентификатор запроса. Помогает идентифицировать сообщения в системных логах, соответствующие конкретным запросам. Если параметр не задан, то система установит для него формат по умолчанию ("timestamp, UUID") и вернет его в ответе. |
{- "error_code": 37002,
- "desc": "Request timeout",
- "detail": "Service did not receive a complete request message within 60 seconds",
}