- tocdepth
2
Отправить асинхронный HTTP-запрос к развернутой модели
Асинхронные HTTP-запросы позволяют:
Параллельно обрабатывать несколько запросов.
Обрабатывать «тяжелые» предсказания, для которых требуется больше одной минуты.
Таймауты
С помощью таймаутов можно устанавливать ограничения на время обработки асинхронного запроса.
При отправке асинхронных вызовов возможно задать три вида таймаутов (через заголовок):
X-Health-Timeout
— ограничение на проверку работоспособности сервиса с моделью, созданного при асинхронном запросе (значение устанавливается в секундах, по умолчанию — 120).X-Request-Timeout
— ограничение на время обработки асинхронного запроса (значение устанавливается в секундах, по умолчанию — 300).X-Full-Live-Timeout
— ограничение на общее время жизни сервиса с моделью, созданного при асинхронном запросе (значение устанавливается в секундах, по умолчанию —None
).
В случае неуспешного выполнения вызова он повторяется, пока не исчерпает пять попыток или пока не превысит X-Full-Live-Timeout
, если он был задан.
После превышения одного из этих лимитов вызов помечается завершенным с ошибкой, повторная отправка не производится.
Общее время жизни равно сумме времени на проверку работоспособности и времени на обработку асинхронного запроса.
Особенности асинхронных запросов
Размер данных, получаемых от деплоя через асинхронный запрос, не должен превышать 1 МБ. При необходимости получать данные сверх этого значения рекомендуется загрузить их в какое-либо хранилище, например S3.
Для отправки асинхронного вызова не нужна авторизация, не требуется получать Long API Keys.
Возможно отправлять вызовы с использованием ключа из вкладки Управление ключами.
Асинхронному вызову присваивается уникальный идентификатор Request ID —
c05541b6-882a-4c25-8bba-865907e60c69
. Request ID нужно использовать для получения статуса асинхронного вызова.Для асинхронных запросов создаются отдельные асинхронные экземпляры деплоя.
Отсутствуют ограничения на количество асинхронных экземпляров деплоя, обрабатывающих асинхронные вызовы.
Временно недоступен просмотр логов для асинхронных запросов и их мониторинг.
Отправить асинхронный запрос, используя ключ
В главном меню платформы перейдите в
.Перейдите в карточку нужного деплоя.
Во вкладке Управление ключами нажмите Сгенерировать ключ.
Нажмите cURL, чтобы скопировать запрос.
Добавьте к запросу заголовок вида —
X-Async-Request: true
. В результате запрос примет следующий вид:curl --location --request POST 'https://api.ai.cloud.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"}'
Отправьте запрос.
Проверьте результаты выполнения запроса одним из двух способов.
Работа с асинхронными запросами
Для получения списка асинхронных вызовов используйте метод Get Async Inferences.
Для проверки статуса асинхронного вызова используйте метод Get Async Inference Status.
Для проверки результатов асинхронного вызова:
Перейдите во вкладку Асинхронные вызовы карточки деплоя и в меню и нажмите Получить результат запроса. Результат будет загружен в формате json.
Используйте метод Get Async Inference Result.
для Dev & Test