Отправка HTTP-запросов к сервису
После разворачивания образа на указанной конфигурации можно отправлять запросы на хост для целевого использования модели. REST API сервиса использует протокол HTTP для отправки данных и ответы в формате JSON. HTTP-запросы можно исполнить из консоли с помощью инструмента командной строки curl. Для проверки корректности запросов с клиента на сервис и получения ответа от бэкенда рекомендуется использовать набор инструментов Postman.
Стандартный HTTP-запрос состоит из следующих частей:
Конечная точка. URL, который клиент использует для связи с сервисом.
Метод HTTP. Он сообщает сервису, какое действие хочет выполнить клиент. В примере ниже метод POST используется для создания ресурса на сервисе. Если ресурс существует, он переопределяется.
Заголовок (header). Используется для передачи дополнительной информации между сервисом и клиентом.
Тело. Данные, которые отправляются на сервис.
Отправка HTTP-запросов через Postman
Рассмотрим как отправлять HTTP-запросы к модели. Используем для этой цели Postman.
Скачайте и установите приложение с сайта https://www.postman.com/downloads/. Если приложение уже установлено на вашем компьютере, переходите к шагу 2.
В интерфейсе Postman откройте вкладку Import. В открывшемся диалоговом окне выберите опцию Raw text. В поле ниже вставьте следующий текст.
curl --location --request POST 'https://api.aicloud.sbercloud.ru/public/v2/service_auth' \ --header 'Content-Type: application/json' \ --data-raw '{ "client_id": "user-xxxxx", "client_secret": "xxxxx" }'
Где
client_id
,client_secret
— это Long API Keys, которые находятся в параметрах разработчика. Подробнее см. Параметры разработчика.В интерфейсе программы это выглядит так:
Нажмите кнопку
.Для отправки запроса на авторизацию нажмите кнопку Send. В ответ придет access token, который можно использовать для отправки запросов к модели.
Для отправки запроса к модели на сервис необходимо указать
x-api-key
,access_token
иx-workspace-id
в соответствующих полях. Обратите внимание на то, чтоx-api-key
— это клиентский ключ доступа к API. Он индивидуален для каждого аккаунта пользователя. Его можно узнать несколькими способами:Выполните в терминале Jupyter Notebook команду
set
для вывода всех переменных окружения пользователя. Используйте значение переменнойGWAPI_KEY
.Перейдите в параметры разработчика.
Выполните в терминале Jupyter Notebook следующий блок:
import os print(os.environ['GWAPI_KEY'])
x-workspace-id
— это идентификатор workspace. Он индивидуален для каждого workspace, созданного пользователем. Порядок получения идентификатора приведен в разделе Параметры разработчика.Нажмите кнопку Code на правой панели диалога для генерации кода запроса.
Итоговый запрос может выглядеть следующим образом:
curl --location --request POST 'https://api.aicloud.sbercloud.ru/public/v2/inference/v1/predict/{name}/{predict}/' \ --header 'X-Api-Key: <your GWAPI key>' \ --header 'authorization: <your access token>' \ --header 'x-workspace-id: <your workspace id> \ --header 'Content-Type: application/json' \ --data-raw '{ "instances": [ { "text": "Hello world!" } ] }'
В ответ на запрос придет результат выполнения метода predict
.
Отправка HTTP-запросов с использованием ключа
Благодаря этим ключам появляется возможность отправлять запросы к развернутому деплою, минуя этап авторизации, пользуясь только сгенерированными ранее ключами. Создание ключа осуществляется по кнопке
. Создаваемый ключ является уникальным.Для ключей можно создать описание, нажав на значок плюса в столбце Описание.
В качестве примера можно выполнить Базовый сценарий использования сервиса AutoML до этапа отправки HTTP-запросов к модели на сервисе Deployments.
Для отправки запроса к деплою по ключу:
Нажмите
.Задайте описание ключа (например,
тестовый ключ для проверки функции
).Нажмите Скопировать как cURL.
В результате копирования получится запрос, имеющий следующий вид:
curl 'https://mlspace.aicloud.sbercloud.ru/deployments/dgx2-inf/kfserving-1629374788/v1/models/kfserving-1629374788:predict' \ -H 'content-type: application/json' \ -H 'cookie: authservice_session=MTYzMjMRV2pZek4' \ -H 'x-workspace-id: ee8cd85f-1886-4bbe-a2db-12ce69206a26' \ --data-raw '{ "instances": [ { "records": { "Id" : ["0"], } } ] }'
Скопируйте требуемый ключ.
Замените значение
cookie: authservice_session=MTYzMjMRV2pZek4
наx-api-key: 116708e901aa481a9c9d4200357ed31d
, где116708e901aa481a9c9d4200357ed31d
— ключ, который был сгенерирован по кнопке Сгенерировать ключ.В результате запрос примет следующий вид:
curl 'https://mlspace.aicloud.sbercloud.ru/deployments/dgx2-inf/kfserving-1629374788/v1/models/kfserving-1629374788:predict' \ -H 'content-type: application/json' \ -H 'x-api-key: 116708e901aa481a9c9d4200357ed31d' \ -H 'x-workspace-id: ee8cd85f-1886-4bbe-a2db-12ce69206a26' \ --data-raw '{ "instances": [ { "records": { "Id" : ["0"], } } ] }'
Отправьте запрос.
После отправки запроса счетчик в поле Предсказания увеличится на 1.
Для удаления ключа:
Выберите ключ, который необходимо удалить, отметив чекбокс.
Нажмите на иконку
в соответствующей строке списка.
В появившемся диалоговом окне подтвердите действие нажатием на кнопку Подтвердить.