Справочник по REST API для вывода модели ИИ Azure
Вывод модели искусственного интеллекта Azure — это API, предоставляющий общий набор возможностей для базовых моделей и который может использоваться разработчиками для использования прогнозов из различных наборов моделей в единообразном и согласованном режиме. Разработчики могут взаимодействовать с различными моделями, развернутыми на портале Azure AI Foundry, не изменяя базовый код, который они используют.
Преимущества
Базовые модели, такие как языковые модели, действительно добились замечательных успехов в последние годы. Эти улучшения изменили различные области, включая обработку естественного языка и компьютерное зрение, и они включили такие приложения, как чат-боты, виртуальные помощники и службы перевода языка.
Хотя базовые модели excel в определенных доменах, они не имеют единого набора возможностей. Некоторые модели лучше подходят для конкретной задачи и даже в одной задаче, некоторые модели могут подходить к проблеме одним способом, а другие — в другой. Разработчики могут воспользоваться этим разнообразием, используя правильную модель для правильного задания позволяя им:
- Повышение производительности в конкретной нижней задаче.
- Используйте более эффективные модели для более простых задач.
- Используйте небольшие модели, которые могут выполняться быстрее при определенных задачах.
- Создание нескольких моделей для разработки интеллектуальных интерфейсов.
Использование базовых моделей позволяет разработчикам реализовать все эти преимущества, не жертвуя переносимостью или изменением базового кода.
Поддержка пакета SDK для вывода
Пакет вывода ИИ Azure позволяет использовать все модели, поддерживающие API вывода модели ИИ Azure, и легко изменять их. Пакет вывода искусственного интеллекта Azure входит в состав пакета SDK для Azure AI Foundry.
Язык | Документация | Пакет | Примеры |
---|---|---|---|
C# | Справочник | azure-ai-inference (NuGet) | примеры C# |
Ява | Справочник | azure-ai-inference (Maven) | примеры Java |
JavaScript | Справочник | @azure/ai-inference (npm) | примеры JavaScript |
Питон | Справочник | azure-ai-inference (PyPi) | примеры Python |
Возможности
В следующем разделе описаны некоторые возможности, предоставляемые API.
Условия
API указывает, как разработчики могут использовать прогнозы для следующих модальностей:
- получить сведения: возвращает сведения о модели, развернутой в конечной точке.
- внедрения текста: создает вектор внедрения, представляющий входной текст.
- завершения чата: создает ответ модели для заданной беседы чата.
- внедрения изображений: создает вектор внедрения, представляющий входной текст и изображение.
Растяжимость
API вывода модели ИИ Azure задает набор модальности и параметров, на которые модели могут подписаться. Однако некоторые модели могут иметь дополнительные возможности, которые указывает API. В этих случаях API позволяет разработчику передавать их в качестве дополнительных параметров в полезных данных.
Задав заголовок extra-parameters: pass-through
, API попытается передать любой неизвестный параметр непосредственно базовой модели. Если модель может обработать этот параметр, запрос завершится.
В следующем примере показан запрос, передавающий параметр safe_prompt
поддерживаемый Mistral-Large, который не указан в API вывода модели ИИ Azure.
запроса
POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
extra-parameters: pass-through
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"temperature": 0,
"top_p": 1,
"response_format": { "type": "text" },
"safe_prompt": true
}
Заметка
Значение по умолчанию для extra-parameters
равно error
, которое возвращает ошибку, если дополнительный параметр указан в полезных данных. Кроме того, можно задать extra-parameters: drop
, чтобы удалить любой неизвестный параметр в запросе. Используйте эту возможность, если вы будете отправлять запросы с дополнительными параметрами, которые вы знаете, что модель не будет поддерживаться, но вы хотите, чтобы запрос завершился в любом случае. Типичным примером этого является seed
параметр.
Модели с разнородным набором возможностей
API вывода модели ИИ Azure указывает общий набор возможностей, но каждая из моделей может решить реализовать их или нет. Определенная ошибка возвращается в тех случаях, когда модель не может поддерживать определенный параметр.
В следующем примере показан ответ на запрос завершения чата, указывающий параметр reponse_format
и запрос ответа в формате JSON
. В примере, так как модель не поддерживает такую возможность, пользователю возвращается ошибка 422.
запроса
POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"temperature": 0,
"top_p": 1,
"response_format": { "type": "json_object" },
}
ответа
{
"status": 422,
"code": "parameter_not_supported",
"detail": {
"loc": [ "body", "response_format" ],
"input": "json_object"
},
"message": "One of the parameters contain invalid values."
}
Кончик
Вы можете проверить свойство details.loc
, чтобы понять расположение неуправляющего параметра и details.input
, чтобы увидеть значение, переданное в запросе.
Безопасность содержимого
API вывода модели ИИ Azure поддерживает безопасности содержимого ИИ Azure. При использовании развертываний с безопасностью содержимого ИИ Azure входные и выходные данные проходят через ансамбль моделей классификации, направленных на обнаружение и предотвращение вывода вредного содержимого. Система фильтрации содержимого (предварительная версия) обнаруживает и принимает меры по определенным категориям потенциально вредного содержимого как в запросах ввода, так и в завершениях выходных данных.
В следующем примере показан ответ на запрос завершения чата, который активировал безопасность содержимого.
запроса
POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
}
],
"temperature": 0,
"top_p": 1,
}
ответа
{
"status": 400,
"code": "content_filter",
"message": "The response was filtered",
"param": "messages",
"type": null
}
Начало работы
API вывода модели ИИ Azure доступен в ресурсах Служб искусственного интеллекта Azure. Вы можете приступить к работе с ним так же, как и любой другой продукт Azure, где вы создать и настроить ресурс для вывода модели искусственного интеллекта Azureили экземпляр службы в подписке Azure. Вы можете создать столько ресурсов, сколько необходимо, и настроить их независимо, если у вас несколько команд с различными требованиями.
После создания ресурса Служб искусственного интеллекта Azure необходимо развернуть модель, прежде чем начать вызовы API. По умолчанию на нем нет моделей, поэтому вы можете управлять тем, с чего начать. Ознакомьтесь с руководством Создание первого развертывания модели в модели ИИ Azure.