Модели Azure AI Foundry позволяют клиентам использовать самые мощные модели от флагманов поставщиков моделей с помощью одной конечной точки и учетных данных. Это означает, что можно переключаться между моделями и использовать их из приложения, не изменяя одну строку кода.
В этой статье объясняется, как модели организованы внутри службы и как использовать конечную точку вывода для их вызова.
Развертывания
Azure AI Foundry делает модели доступными с помощью концепции развертывания .
Развертывания — это способ присвоения модели имени в определенных конфигурациях. Затем можно вызвать такую конфигурацию модели, указав ее имя в запросах.
Фиксация развертываний
- Имя модели
- Версия модели
- Тип обеспечения/мощности1
- Конфигурацияфильтрации содержимого 1
- Конфигурация ограничения частоты запросов1
1 Конфигурации могут отличаться в зависимости от выбранной модели.
Ресурс Azure AI Foundry может иметь столько развертываний моделей, сколько необходимо, и расходы не возникают, если не производится вывод данных для этих моделей. Развертывания — это ресурсы Azure, поэтому они подчиняются политикам Azure.
Дополнительные сведения о создании развертываний см. в статье "Добавление и настройка развертываний моделей".
Конечные точки
Службы Azure AI Foundry Services (ранее известные службы ИИ Azure) предоставляют несколько конечных точек в зависимости от типа работы, которую вы ищете:
- Конечная точка вывода искусственного интеллекта Azure (обычно с формой
https://<resource-name>.services.ai.azure.com/models
)
- Конечная точка Azure OpenAI (обычно с формой
https://<resource-name>.openai.azure.com
)
Конечная точка вывода искусственного интеллекта Azure позволяет клиентам использовать одну конечную точку с той же проверкой подлинности и схемой для создания вывода для развернутых моделей в ресурсе. Все модели поддерживают эту возможность. Эта конечная точка следует API вывода модели ИИ Azure.
API OpenAI Azure предоставляет все возможности моделей OpenAI и поддерживает дополнительные функции, такие как помощники, потоки, файлы и пакетное вывод. Модели, отличные от OpenAI, также могут быть представлены в этом маршруте.
Для получения дополнительной информации о том, как применять конечную точку Azure OpenAI, смотрите документацию Azure OpenAI в моделях Azure AI Foundry.
Использование конечной точки вывода искусственного интеллекта Azure
Конечная точка вывода направляет запросы к заданному развертыванию, сопоставляя параметр name
внутри запроса с именем развертывания. Это означает, что развёртывания выполняют функцию псевдонима данной модели в определённых конфигурациях. Эта гибкость позволяет развертывать определенную модель несколько раз в службе, но в разных конфигурациях при необходимости.
Например, если создать развертывание с именем Mistral-large
, такое развертывание можно вызвать следующим образом:
Установите пакет azure-ai-inference
с помощью диспетчера пакетов, например pip:
pip install azure-ai-inference
Затем можно использовать пакет для использования модели. В следующем примере показано, как создать клиент, чтобы использовать завершение чата.
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
client = ChatCompletionsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
)
Ознакомьтесь с нашими примерами и ознакомьтесь со справочной документацией по API, чтобы приступить к работе.
Установите пакет @azure-rest/ai-inference
с помощью npm:
npm install @azure-rest/ai-inference
Затем можно использовать пакет для использования модели. В следующем примере показано, как создать клиент, чтобы использовать завершение чата.
import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { AzureKeyCredential } from "@azure/core-auth";
const client = new ModelClient(
"https://<resource>.services.ai.azure.com/models",
new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);
Ознакомьтесь с нашими примерами и ознакомьтесь со справочной документацией по API, чтобы приступить к работе.
Установите библиотеку вывода искусственного интеллекта Azure с помощью следующей команды:
dotnet add package Azure.AI.Inference --prerelease
Импортируйте такие пространства имен:
using Azure;
using Azure.Identity;
using Azure.AI.Inference;
Затем можно использовать пакет для использования модели. В следующем примере показано, как создать клиент, чтобы использовать завершение чата.
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Ознакомьтесь с нашими примерами и ознакомьтесь со справочной документацией по API, чтобы приступить к работе.
Добавьте пакет в проект:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-inference</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
Затем можно использовать пакет для использования модели. В следующем примере показано, как создать клиент, чтобы использовать завершение чата.
ChatCompletionsClient client = new ChatCompletionsClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("https://<resource>.services.ai.azure.com/models")
.buildClient();
Ознакомьтесь с нашими примерами и ознакомьтесь со справочной документацией по API, чтобы приступить к работе.
Используйте раздел справки для изучения структуры API и доступных параметров. Например, в разделе справки по на основе инструкций, отформатированных в чате. Обратите внимание, что путь /models
включен в корневой каталог URL-адреса:
Запросить
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
api-key: <api-key>
Content-Type: application/json
Для модели чата можно создать запрос следующим образом:
from azure.ai.inference.models import SystemMessage, UserMessage
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="Explain Riemann's conjecture in 1 paragraph"),
],
model="mistral-large"
)
print(response.choices[0].message.content)
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "Explain Riemann's conjecture in 1 paragraph" },
];
var response = await client.path("/chat/completions").post({
body: {
messages: messages,
model: "mistral-large"
}
});
console.log(response.body.choices[0].message.content)
requestOptions = new ChatCompletionsOptions()
{
Messages = {
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("Explain Riemann's conjecture in 1 paragraph")
},
Model = "mistral-large"
};
response = client.Complete(requestOptions);
Console.WriteLine($"Response: {response.Value.Content}");
List<ChatRequestMessage> chatMessages = new ArrayList<>();
chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant"));
chatMessages.add(new ChatRequestUserMessage("Explain Riemann's conjecture in 1 paragraph"));
ChatCompletions chatCompletions = client.complete(new ChatCompletionsOptions(chatMessages));
for (ChatChoice choice : chatCompletions.getChoices()) {
ChatResponseMessage message = choice.getMessage();
System.out.println("Response:" + message.getContent());
}
Запросить
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
api-key: <api-key>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"model": "mistral-large"
}
Если указать имя модели, не соответствующее определенному развертыванию модели, вы получите сообщение об ошибке, что модель не существует. Вы можете управлять тем, какие модели доступны пользователям, создавая развертывания моделей, как описано при добавлении и настройке развертываний моделей.
Проверка подлинности без ключа
Модели, развернутые в моделях Azure AI Foundry в Службах ИИ Azure, поддерживают авторизацию без ключей с помощью идентификатора Microsoft Entra. Авторизация без ключей повышает безопасность, упрощает взаимодействие с пользователем, снижает операционную сложность и обеспечивает надежную поддержку соответствия современным разработкам. Это делает его надежным выбором для организаций, внедряющих безопасные и масштабируемые решения по управлению удостоверениями.
Чтобы использовать проверку подлинности без ключей, настройте ресурс и предоставьте пользователям доступ к выводу. После настройки можно выполнить проверку подлинности следующим образом:
Установите пакет azure-ai-inference
с помощью диспетчера пакетов, например pip:
pip install azure-ai-inference
Затем можно использовать пакет для использования модели. В следующем примере показано, как создать клиент для работы с завершениями чата с Entra ID.
import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import DefaultAzureCredential
client = ChatCompletionsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=DefaultAzureCredential(),
credential_scopes=["https://cognitiveservices.azure.com/.default"],
)
Установите пакет @azure-rest/ai-inference
с помощью npm:
npm install @azure-rest/ai-inference
Затем можно использовать пакет для использования модели. В следующем примере показано, как создать клиент для работы с завершениями чата с Entra ID.
import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { DefaultAzureCredential } from "@azure/identity";
const clientOptions = { credentials: { "https://cognitiveservices.azure.com" } };
const client = new ModelClient(
"https://<resource>.services.ai.azure.com/models",
new DefaultAzureCredential(),
clientOptions,
);
Установите библиотеку вывода искусственного интеллекта Azure с помощью следующей команды:
dotnet add package Azure.AI.Inference --prerelease
Установите пакет Azure.Identity
.
dotnet add package Azure.Identity
Импортируйте такие пространства имен:
using Azure;
using Azure.Identity;
using Azure.AI.Inference;
Затем можно использовать пакет для использования модели. В следующем примере показано, как создать клиент для работы с завершениями чата с Entra ID.
TokenCredential credential = new DefaultAzureCredential();
AzureAIInferenceClientOptions clientOptions = new AzureAIInferenceClientOptions();
BearerTokenAuthenticationPolicy tokenPolicy = new BearerTokenAuthenticationPolicy(credential, new string[] { "https://cognitiveservices.azure.com/.default" });
clientOptions.AddPolicy(tokenPolicy, HttpPipelinePosition.PerRetry);
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
credential,
clientOptions.
);
Добавьте пакет в проект:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-inference</artifactId>
<version>1.0.0-beta.4</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.15.3</version>
</dependency>
Затем можно использовать пакет для использования модели. В следующем примере показано, как создать клиент, чтобы использовать завершение чата.
TokenCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
ChatCompletionsClient client = new ChatCompletionsClientBuilder()
.credential(defaultCredential)
.endpoint("https://<resource>.services.ai.azure.com/models")
.buildClient();
Ознакомьтесь с нашими примерами и ознакомьтесь со справочной документацией по API, чтобы приступить к работе.
Используйте раздел справки для изучения структуры API и доступных параметров и указания маркера проверки подлинности в заголовке Authorization
. Например, в разделе справки по на основе инструкций, отформатированных в чате. Обратите внимание, что путь /models
включен в корневой каталог URL-адреса:
Запросить
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
Токены должны быть выданы с областью https://cognitiveservices.azure.com/.default
.
Для тестирования самый простой способ получить действительный маркер для учетной записи пользователя — использовать Azure CLI. В консоли выполните следующую команду Azure CLI:
az account get-access-token --resource https://cognitiveservices.azure.com --query "accessToken" --output tsv
Ограничения
- Пакетная обработка Azure OpenAI не может использоваться с конечной точкой Foundry Models. Необходимо использовать выделенный URL-адрес развертывания, как описано в документации по пакетному API Azure OpenAI.
- API в режиме реального времени не поддерживается в конечной точке инференции. Используйте URL-адрес специального развертывания.
Следующие шаги