Отправить асинхронный HTTP-запрос к развернутой модели
Асинхронные HTTP-запросы позволяют:
Параллельно обрабатывать несколько запросов.
Обрабатывать «тяжелые» предсказания, для которых требуется больше одной минуты.
С помощью таймаутов можно устанавливать ограничения на время обработки асинхронного запроса.
При отправке асинхронных вызовов возможно задать три вида таймаутов (через заголовок):
X-Health-Timeout
— ограничение на проверку работоспособности сервиса с моделью, созданного при асинхронном запросе (значение устанавливается в секундах, по умолчанию — 120).X-Request-Timeout
— ограничение на время обработки асинхронного запроса (значение устанавливается в секундах, по умолчанию — 300).X-Full-Live-Timeout
— ограничение на общее время жизни сервиса с моделью, созданного при асинхронном запросе (значение устанавливается в секундах, по умолчанию —None
).
В случае неуспешного выполнения вызова, он повторяется до превышения пяти попыток, либо до превышения X-Full-Live-Timeout
, если он был задан.
После превышения одного из этих лимитов вызов помечается завершенным с ошибкой и повторная отправка больше не производится.
Общее время жизни равно сумме времени на проверку работоспособности и времени на обработку асинхронного запроса.
Асинхронному вызову присваивается уникальный идентификатор Request ID —
c05541b6-882a-4c25-8bba-865907e60c69
. Request ID нужно использовать для получения статуса асинхронного вызова.Для получения списка асинхронных вызовов используйте метод Get Async Inferences.
Для проверки статуса асинхронного вызова используйте метод Get Async Inference Status.
Для отправки асинхронного вызова не нужна авторизация. Не требуется получать Long API Keys.
Возможно отправлять вызовы с использованием ключа из вкладки Управление ключами.
Для асинхронных запросов создаются отдельные асинхронные экземпляры деплоя.
Отсутствуют ограничения на количество асинхронных экземпляров деплоя, обрабатывающих асинхронные вызовы.
Временно недоступен просмотр логов для асинхронных запросов и их мониторинг.
Для проверки результатов асинхронного вызова:
Перейдите во вкладку Асинхронные вызовы карточки деплоя и в меню
и нажмите Получить результат запроса. Результат будет загружен в формате json.
Используйте метод Get Async Inference Result.
Отправить асинхронный вызов, используя ключ
Получите ключ во вкладке Управление ключами.
Добавьте к запросу заголовок вида —
X-Async-Request: true
. В результате запрос примет следующий вид:curl --location --request POST 'https://api.aicloud.sbercloud.ru/public/v2/async_inferences/v1/{cluster}/{inference_name}/{predict}' \ --header 'x-workspace-id: {workspace_id}' \ --header 'x-api-key: {key}' \ --header 'X-Async-Request: true' \ --header 'Content-Type: application/json' \ --data-raw '{"key": "value"}'
Отправьте запрос.
Проверьте результаты выполнения запроса одним из двух способов.